Introducing Cisco DevNet Exchange

This blog co-authored by Chloe Kauffman and Charles Eckel

The core concept of Cisco DevNet has been to empower developers. From open, programmable platforms to learning labs, sandboxes, and documentation – DevNet helps developers acquire the skills and tools they need to innovate, customize, and deliver business outcomes in ways that they haven’t been able to in the past. Now, DevNet is introducing DevNet Exchange, bringing solutions, and the code to create them, under one roof. DevNet Exchange is comprised of two components: Code Exchange and Ecosystem Exchange. Through Code Exchange, developers and Independent Software Vendors (ISVs) can work together to learn and share code where this collaborative innovation can happen. Through Ecosystem Exchange, there is now a centralized location for consumers and innovators to discover and market solutions that deliver business outcomes. We want to see everyone in our ecosystem thrive, from individual developers to our partners and customers.

What is Ecosystem Exchange?

DevNet Ecosystem Exchange is a growing catalog of over 1500 business solutions created by the
Cisco ecosystem covering all of Cisco’s technology platforms. For individual developers and ISVs, it is a place to amplify and market their built solutions to Cisco sellers and buyers. For Cisco customers, it is a place to discover and consume packaged solutions that drive real business outcomes.

So, can you give me some examples of ‘business solutions’?

I’m so glad you asked. While ‘business solution’ is a tad generic of a term, some real examples may help illustrate how partners have innovated on different Cisco technology platforms to solve business needs on Ecosystem Exchange.

Eximprod has worked to modernize the energy utilities space, ensuring a secure and reliable grid. They have created a virtualized software application which is an upgrade from physical boxes, saving utilities time and cost for device and maintenance updates. This is made possible due to Cisco IOx components and network infrastructure. Bonus: check out the new Eximprod DevNet Learning Lab and Sandbox for hands-on experience.

Local Measure integrates with multiple Cisco Products to allow businesses to receive real-time customer intelligence. One aspect of their solution uses Cisco Meraki’s Wi-Fi splash page to ask for user’s social media accounts to build customer profiles and build social feeds. Another aspect uses
Cisco CMX to receive Wi-Fi user’s real-time data for analytics. All of this allows for businesses to gain intelligence on their customers to improve experiences. This solution is available on Cisco’s global price list.

M.io is a personal favorite example of mine. They noticed a gap and potential market of Cisco customers who needed interoperability between collaborative messaging products, such as Cisco Webex Teams and others. They built a solution utilizing Webex Teams APIs. This solution is available on Cisco’s global price list.

This sounds great, how do I get started with Ecosystem Exchange?

As a consumer, you can get started immediately by heading to the DevNet Ecosystem Exchange website. Explore the catalog for solutions relevant to the Cisco technologies that you use.

As a creator, once you’ve built a solution that utilizes a Cisco technology and integrates through APIs, we want you to share it with us! At the bottom of the Ecosystem Exchange main page there is a “Share your solution” button. Fill out the details, submit, and we will then list and share your
solution with our global ecosystem.

Final Note: These developed applications and solutions may ultimately end up in the DevNet
SolutionsPlus catalog on Cisco’s price list, making it easier and more cost-effective for customers to procure and deploy solutions.

What is Code Exchange?

Code Exchange is an online, curated set of code repositories that help you develop applications
using Cisco platforms and solutions. In Code Exchange, you will find hundreds of code repositories
containing code created and maintained by Cisco engineering teams, ecosystem partners, technology and open source communities, and individual developers. Anyone can use this code to jumpstart their application development with Cisco and partner platforms, products, application programming interfaces (APIs), and software development kits (SDKs).

Many people have already taken advantage of this opportunity to get their code in front of
the talented set of over 500,000 developers within the DevNet community. Within DevNet, we
work with the Cisco product teams to create sample code and applications that illustrate how
to use product APIs and build on top of Cisco platforms and solutions. Similarly, Cisco partners
are leveraging Code Exchange to provide code that enables their developer community to get
up and running with their products and solutions more quickly and easily.

Case in point, Joel King from World Wide Technology contributed this repository to Code
Exchange, explaining how to use Ansible to interface to Cisco Tetration. The repository includes
an Ansible module that retrieves enforcement policy from Tetration and exposes it as variables
to an Ansible playbook. Subsequent tasks within the playbook can apply the policy to the
configuration of network devices.

World Wide Technology has supported and contributed to DevNet since its inception and views the DevNet Code Exchange as instrumental in demonstrating to our customers and OEM partners our competency in software development and systems integration using the Advanced Technology Center (ATC), an incubator for IT innovation.  – Joel W. King

Finding the code that you need

The biggest challenge for many developers is zeroing in on exactly the code they need. There is a large and growing amount of sample code and applications, helpful tools and libraries, and open source projects related to Cisco technologies on GitHub. With so much code out there, it can be difficult to find up-to-date content best suited for your immediate needs. Code Exchange helps you tackle this challenge.

Every repository in Code Exchange has been reviewed by DevNet Developer Advocates for quality, accuracy, and easy of use. While we do not actively maintain all of the code, we provide confirmation that the code is a worthwhile investment of your time. Code Exchange provides
filters for technology space and programming language. These may be used independently or in combination with keywords you provide to zero in on the set of repositories most relevant to your immediate needs. Want more guidance? Sort results by those most recommended by DevNet Developer Advocates, or by the date the repo was last updated, to be presented with the best and
freshest projects. Let’s say you need help with a networking project involving to NETCONF and YANG. Your programming language of choice is Python and you want code that has been updated recently. Plug that info into the Code Exchange and get a helpful set of results.

Using the code that you find

When reviewing submissions to Code Exchange, two requirements we check very closely are the presence of a comprehensive README and a clear LICENSE. After all, what good is code if you cannot figure out how to install and start using it. Perhaps even worse, what value is there in code if you are not allowed to use it or if terms of use are not clear.

The majority of the repositories in Code Exchange are licensed under well-known open source
licenses. This makes using the corresponding code straightforward, as those responsible for the
legal review will likely be familiar with the terms under which it is licensed. Code Exchange also
contains some repositories licensed under the Cisco Sample Code License (CSCL). The CSCL is
relatively permissive, but it is not an open source license. Why this exception? Why not
mandate that all repositories have open source licenses? The reality is that we could not get
approval for some repositories to be licensed under an open source license. When left with the choice of not providing access to the code or providing access to it under the CSCL license, we
opted for the latter. Another reality is that getting approval to open source a repository can
take a long time. Alternatively, there is a process in place for trained Cisco employees to release
software under the CSCL relatively quickly. Here is well, we opted to share more code with you
more quickly. If you want to use code in a repository licensed under the CSCL but you are unable to use it due to the terms of the license, let us know, and we will see if there is something we can do about it.

Contributing to Code Exchange

We welcome and encourage you to contribute to Code Exchange. Getting your code published
in Code Exchange is a great way to not only help others use products and technology of interest
to you, but also to build up your personal clout and reputation. Submitting your repository is
easy, just make sure it meets the following requirements:

Related to Cisco technologies or partner solutions

Is publicly available on GitHub

Includes a good README (learn about importance of a good README)

Includes a clear LICENSE

Shows evidence of being maintained

Then fill out the form and DevNet Developer Advocates will take a look!

Cisco Live EMEA 2019

The next Cisco Live is January 28–February 1 in Barcelona, Spain. Here you will find the
following sessions dedicated to Cisco DevNet Exchange,

Ecosystem Exchange: The App Store for the Network – DEVNET-2804
Monday, 3:00PM–3:45PM

An Open Software Approach to Network Automation – DEVNET-2805
Tuesday, 2:00PM–2:45PM

Go from Zero to Market Fast with Code Exchange – DEVNET-1920
Thursday, 11:00AM–11:45AM

In addition to these, we have many more presentations and workshops in the DevNet Zone that
provide immediate access to relevant code through Code Exchange. A well structure presentation
by a talented speaker is great, but what if in addition to jotting down a few good ideas you also
leave with access to code that helps you implement those ideas and deploy them in your network? A workshop that provides hands-on experience with some new technology is terrific, but what if you are also given the code to take with you and use on your own network? This is one of the benefits Code Exchange provides, making it easier to find, share, and use code to become more productive and more impactful.