network programmability app development
TRANSCRIPT
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.
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.
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.
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
# # #