Jeremy Schulman, Global Solutions Architect at Juniper Networks, is responsible for developing the Puppet for Junos OS netdev module. This post originally appeared on his blog on the Juniper Networks website on April 2, 2013. It has been reprinted with permission.
The role of Junos technology is to address the problems of today's networks in a way that is aligned with broader challenges facing IT infrastructure automation as a whole. We all know that managing networks is complex, hard, costly, and requires highly trained engineers. This post is going to talk about managing networks in a whole new way. The concepts in it will change your life. They changed mine.
There is no doubt that something big is happening. Our industry is going through a paradigm shift. Everyone is excited about the idea of "programming" the network. People want to build network solutions independent of hardware vendors; to use open APIs, open software, to collaborate, and to innovate. But most importantly, they need to deliver a network focused on the needs of the consumer of the network. A similar paradigm shift happened a while ago for the IT system administrators (sysadmins) and DevOps – you know, the guys in the data center deploying all those servers or virtual machines driving the need for more networking. As we look forward to how the networking industry may evolve let's take a quick look back at the history of the sysadmins.
At one point, sysadmins were manually deploying servers, configuring services, and managing the installation of applications – applications that ultimately drive their business. These sysadmins may have had some simple Bash- or Perl- based scripting tools they created themselves, but it was largely ad-hoc. Fast forward to today: sysadmins now use sophisticated configuration management products like Puppet or Chef to fully automate large-scale data center deployments. They write programs to "glue" together these tools with APIs from other vendors like VMware, Amazon, Google, or from other software they download from the open source community. These sysadmins, who were not formally trained software engineers, picked up new programming skills and began focusing on automation as a key business driver, and as a personal asset. They use open APIs and open software. They collaborate. They innovate. They are driving the success of their business. They can (and will) become key influencers in deciding which vendor is deployed in the network.
We should talk to the sysadmins and DevOps, but why would they care? They will care because Junos technology is the bridge between their world and the networking world:
- Junos products are built for programming automation. Junos provides a standards-based and secure XML API. It has been in the OS "DNA" for almost a decade. It is field proven is some of the largest service provider network.
- Junos provides explicit and granular Role Based Access Control (RBAC) for "who can do what," both in terms of operations and changing the configuration. This is key as you'll see shortly.
- The Junos cross-compiler toolkit ("SDK") can be used to build and deploy standard software onto networking equipment.
So let's consider how Junos technology can be applied to solve a considerable pain-point in the data center.
Sysadmins need to interact with the networking team any time they need to do basic changes at the top-of-rack switch, such as port/VLAN assignment. While these changes are simple enough, at a large scale it becomes a "pinprick of death" problem. The pain becomes especially acute when changes in the network need to be coordinated with changes with the servers/virtual machines; for example, at the time of a new application rollout. When they are not coordinated (or unusually delayed), applications that drive business don't get online, the business loses money, and the "network" is the problem.
The networking admins want to automate these simple tasks. They envision, for example, a "self-service" user portal for the sysadmins. These portals could leverage the Junos XML API and authenticate to the Junos devices using credentials that explicitly define what the portal can do (points one and two from above). They are effectively saying, "We're OK handing over limited and scoped control of configuration changes" because Junos can guarantee at the OS level that the portal won't harm the network.
While the "user-portal" is one approach, there are challenges for the networking team. Sometimes the networking team doesn't have the resources, time, or skill to build these portals or automation system. The needs of the sysadmins are again dependent on the networking team to update and maintain this user-portal. So again, there is opportunity for friction, delay, and blame.
The sysadmins write automation programs, and they are used to writing code to open APIs, or using sophisticated tools to enable their business needs. So on one occasion when I was talking with the networking team about how they could build a user-portal, they said I should talk with the sysadmins because the sysadmins would have to build the portal for the networking team.
As we were talking with the sysadmins, they asked me: What if Juniper could put a tool we use, say Puppet, as a native agent on Junos? Then when we roll out our server changes, the network just rolls with it. Our puppet master would treat it like any other managed puppet node. If we ever had to roll back our changes, the network would just roll back with it. In our world, we call this software defined infrastructure.
This is possible because the Junos SDK technology can be used to cross compile and package the necessary software. With the Junos SDK, it is possible to create a runtime loadable package for a puppet agent.
I then had an epiphany. There are *two* customers for networking equipment at these "intersection" points in the network like ToR switches (or firewalls): the sysadmins and the networking team. We need tools for both, and these tools are very different.
The IT industry is very focused on automation. The networking industry is waking up to this need, and Juniper Networks has products and technologies today that can be used to solve network management issues. All you need to do is start developing your programming skill sets, like the sysadmins. Are you ready to begin? Have you started and need help? Let us know. We're committed to driving innovation and working with our customers – both networking and sysadmins.
Here are some resources to get you started:
- See the Puppet for Junos OS solution in action next Tuesday, April 16. Register for the live webinar, co-hosted by Jeremy Schulman from Juniper Networks, and Kelsey Hightower, Head of IT Ops at Puppet Labs.
- Get an in-depth Puppet for Junos OS overview
- Check out the Puppet Labs and Juniper Networks integration solutions page
- Read the Automate Network Configuration with Puppet for Junos blog post