network programmability app development

4
Network Programmability App Development BY JOEL W. KING, ENGINEERING AND INNOVATIONS - NETWORK SOLUTIONS, WORLD WIDE TECHNOLOGY, INC. World Wide Technology recently contributed to vendor sponsored contests and initiatives focused on application development for network programmability. This article offers observations on how to best enable a development community. The contributors at WWT were not part of any formal team and whose primary focus is network engineering, not software developers. Empowering the Community In a Software-Defined world, community edition, subscription based, extensible frameworks will be in demand by the user base, while proprietary, licensed off-the-shelf software will increasingly see market declines. Hardware and software vendors must enlist their customer base to become a member of the community, contributing and reusing code shared by the vendor and other community members. Demographics The contest sponsors ranged from startup to well established, using freely available community edition software, licensed software capable to running in a VM, to proprietary hardware and software requiring multiple physical servers and switches. Contests and Initiatives WWT submitted solutions for these contests and initiatives May-August 2016: F5 Codeshare Challenge $10,000 Phantom App & Playbook Contest Cisco APIC App Center The Cisco initiative was limited to selected partners, not a contest open to the public. The F5 and Phantom contests were open to all interested in contributing to the community; prizes were awarded. Winning Entries World Wide Technology was awarded first place entries in both the F5 and Phantom contests. There were two separate apps for the Phantom contest; integration of Phantom and F5 and Phantom and Cisco Meraki. The F5 contest used Ansible playbooks and modules to install an initial configuration to F5 BIG-IP virtual appliances. The solution architecture for the APIC App Center integrated Phantom, Ansible Tower, and Cisco ACI to identify data exfiltration from the enterprise. All solutions incorporated Python code developed by WWT as well as playbooks written in Python for Phantom and YAML for Ansible. The source code and playbooks, along with documentation for downloading and installing the applications, are available to the community on GitHub. Timeframes The length of time allocated, and the communication of the schedule to the participants is critical for success. The F5 contest duration was one month, the Cisco initiative two months, and the Phantom contest was initially three months, but was extended an additional six weeks.

Upload: joel-king

Post on 13-Apr-2017

64 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Network Programmability App Development

Network Programmability App Development BY JOEL W. KING, ENGINEERING AND INNOVATIONS - NETWORK SOLUTIONS, WORLD WIDE TECHNOLOGY, INC.

World Wide Technology recently contributed to vendor sponsored contests and initiatives focused on

application development for network programmability. This article offers observations on how to best

enable a development community.

The contributors at WWT were not part of any formal team and whose primary focus is network

engineering, not software developers.

Empowering the Community

In a Software-Defined world, community edition, subscription based, extensible frameworks will be in

demand by the user base, while proprietary, licensed off-the-shelf software will increasingly see market

declines. Hardware and software vendors must enlist their customer base to become a member of the

community, contributing and reusing code shared by the vendor and other community members.

Demographics

The contest sponsors ranged from startup to well established, using freely available community edition

software, licensed software capable to running in a VM, to proprietary hardware and software requiring

multiple physical servers and switches.

Contests and Initiatives

WWT submitted solutions for these contests and initiatives May-August 2016:

F5 Codeshare Challenge

$10,000 Phantom App & Playbook Contest

Cisco APIC App Center

The Cisco initiative was limited to selected partners, not a contest open to the public. The F5 and

Phantom contests were open to all interested in contributing to the community; prizes were awarded.

Winning Entries

World Wide Technology was awarded first place entries in both the F5 and Phantom contests. There

were two separate apps for the Phantom contest; integration of Phantom and F5 and Phantom and

Cisco Meraki. The F5 contest used Ansible playbooks and modules to install an initial configuration to F5

BIG-IP virtual appliances. The solution architecture for the APIC App Center integrated Phantom,

Ansible Tower, and Cisco ACI to identify data exfiltration from the enterprise.

All solutions incorporated Python code developed by WWT as well as playbooks written in Python for

Phantom and YAML for Ansible. The source code and playbooks, along with documentation for

downloading and installing the applications, are available to the community on GitHub.

Timeframes

The length of time allocated, and the communication of the schedule to the participants is critical for

success. The F5 contest duration was one month, the Cisco initiative two months, and the Phantom

contest was initially three months, but was extended an additional six weeks.

Page 2: Network Programmability App Development

All contributors have higher priority workload, their ‘day job’, which will need to be balanced with the

time required to develop the app. The duration of the contest must consider the difficulty of enabling a

development environment. If the contributor requires specialized hardware or licensed software, 1-2

months is too short a duration. If the development environment can be instantiated with Vagrant, a

Docker container, or by importing an OVA to a VM, then the duration can be shorter.

Because contributors are balancing other workloads, defining the contest schedule dates is critical.

Don’t assume the community exists solely to support one vendor’s initiatives. Consider the time of year.

People take vacations and holidays, which impacts availability, especially for team submissions.

Developer Resources

To enable community application development, the target audience needs access to resources,

including documentation, sample apps, as well as any necessary hardware and software to enable the

development environment. If the development environment can run on a laptop using Vagrant and

VirtualBox, there is a much broader base than if $300,000 of equipment and chilled raised floor is

required. When determining your schedule, consider how long it will take to stand up a development

environment. Remember in many environments, it takes weeks to rack equipment.

Do not assume that the prospective developer will have similar knowledge as the sponsor’s engineers. In

cross platform integrations, it is unlikely the developer will be fluent in all components. For example,

they may be an expert in F5 BIG-IP, but a novice at Python programming or mark-up languages. They

may have experience with APIs but not front-end web development. There is a very shallow pool of

engineers who have the skill, aptitude and time to focus on network programmability and app

development. Most are learning as they go and responsible for teaching others.

To encourage broad participation in your contest / initiative, it is necessary to provide learning resources

to your community. Don’t make this difficult and cumbersome.

Access to Learning Resources

Use a Slack channel, email for Q and A, biweekly tech webinars, and publish all past webinars on a

developer portal. Schedule one on one ‘office hours’ with engineers to assist with playbook and app

development issues. Throughout the contest, used video clips and blogs to describe the submissions by

the community. This level of communication allows the developer community insight into the work of

others. F5 uses the DevCentral portal, where submissions are ‘tagged’ to identify them as contest

submissions. The other community members can draw inspiration from the early submissions.

Documentation

Focus on the clarity of your documentation. Provide basic, working examples of all aspects of your

framework. Documentation should be edited by a technical writer. The version number of

documentation should not be “Work in Progress”. Documentation is the reflection of your framework.

If it appears sloppy or incomplete, the developer will assume that about your product.

Also, it may seem basic, but be able to produce documentation. There are vendors who will reference a

production deployment of their offering, but are unable to produce documentation on their API. You

can’t drive adoption without good documentation.

Page 3: Network Programmability App Development

Shipping the documentation as a link off the product has become increasingly popular and well received

by the developer. The Swagger ‘Try it Now’ API documentation greatly facilitates development,

minimizing the need for tools like Chrome Postman.

Tips for Developers

One of the Phantom contest winners demonstrated how PyCharm Professional could be used to provide

a remote IDE environment to facilitate debugging. Any tip to facilitate development will enable the

community. Don’t hide, or assume everyone knows about, the easy button.

Who Benefits?

The Value-Added Reseller (VAR) / Channel Partner benefits by being ‘First to Educate’ their customer

and as a demonstration of technical competency with the solution. There is also an intangible benefit of

creating a closer working relationship with the sponsor. Additionally, providing automation and

orchestration as a ‘value add’, enables the customer to more quickly consume the product or solution.

For example, this is a quote regarding the F5 contest solution:

As a deployment engineer who is not well versed with the F5 platform this is an awesome

solution! I can easily stand up a new F5 and bring it up online without having to wait for an F5

savvy engineer to do so. I can have basic L2 & L3 functionality operational and verified saving

time on our projects.

At WWT, we call this Simplifying the Complex IT technology.

Marketing

Intel’s top 5 technical marketing best practices include: “go where the people hang out”, don’t expect

people to find your website and linger. F5 is actively promoting programmability solutions through F5

DevCentral and Phantom promotes the community involvement through social media- Twitter, LinkedIn

through their bi-weekly technical webinars and conferences like Black Hat and RSA.

Because these are integrated solutions, involving multiple partners, the potential user community

includes the developing partner and the followers of each solution component. For example, this

content can be cross-posted by WWT, Phantom, Ansible (Redhat) and Cisco.

Cross system integration is a technical marketing force multiplier. However, the respective marketing

departments need to be engaged and aware.

Page 4: Network Programmability App Development

Recognizing the Contributors

Prize money garners attention but is not the main motivation for contributing to the community.

Industry recognition of both the individuals and the organization they work for is equally important.

Recognizing all community contributors by writing a LinkedIn recommendation is as valuable as a check.

However, a photo of the winners and the big check will draw traffic to your trade show booth and

through social media.

Donating the award to a charity is another way to generate positive marketing exposure.

Summary

As Software-Defined Networking become more mainstream and infrastructure APIs more prevalent, the

need for custom solution integration through user community involvement becomes a key component

to the success of the customer, the partner/reseller and the hardware and software vendor.

References

Automate F5 Initial Setup - iControl & Ansible

https://devcentral.f5.com/codeshare/automate-f5-initial-setup-icontrol-amp-ansible-

930?tag=programmability+contest

Phantom Playbook and App Contest

https://github.com/joelwking/Phantom-Cyber

# # #