Sergey Nivens - Fotolia
When Barclaycard U.S. decided to launch a consumer lending program two years ago, the global digital financial services organization known for its credit card offerings knew it couldn't be competitive without a new software development approach.
Senior leadership acknowledged there was a problem with the way IT was deploying software, according to Prem Chandrasekaran, vice president of software engineering at Barclaycard. "We knew we could not sustain this type of process." So instead of building consumer lending on top of its existing credit card business, Barclaycard built a new online platform using a DevOps approach.
Barclaycard implemented its new consumer lending product using DevOps because it was building the platform from scratch. The approach worked so well that the company is looking at how to use DevOps for networking as well for other aspects of IT. As part of its DevOps project, Barclaycard is shifting workloads to a public cloud to take advantage of the scalability and automated provisioning services offered by cloud providers. Chandrasekaran said this shift will help the company integrate its network infrastructure into the DevOps approach.
The goal of DevOps is to boost brainstorming and collaboration among software development and software operations teams and to create a more efficient software update and deployment process. Barclaycard developed its consumer lending online platform using a continuous integration/continuous delivery (CI/CD) pipeline that included automated design and application processes. As a result, its software update process went from days to minutes, and the time it takes for the business to bring an idea to production, which typically had been a few months, now can be completed in a few weeks.
Enterprises increasingly are using a DevOps approach for software development, driven by Agile principles and growth in mobile and web applications, according to Christopher Little, DevOps analyst at Gartner. But while DevOps for software developers has become almost mainstream, few companies have incorporated DevOps for networking engineers, who still update their networks using heavily manual processes. Yet as networks become more software-driven and organizations see the benefits from greater communication among IT teams, a shift toward greater collaboration and use of DevOps will take place.
Most enterprises are still struggling with efforts to virtualize their networks, let alone incorporate automation. More than 70% of enterprises are still using manual, command-line interface (CLI)-driven mechanisms to deploy and manage networks, according to Gartner networking analyst Andrew Lerner. Some high-tech companies including cloud and SaaS providers and e-commerce companies are beginning to adopt DevOps methodologies to update their networks, but it's not widespread yet.
"Ironically, while DevOps should, by definition, include networking, in practice, the network has been isolated," Lerner said.
DevOps for networking
Barclaycard sees the importance of being able to bring the network and more of its IT department into the DevOps framework, Chandrasekaran said. Continuous integration across all IT teams looking for ways to automate software deployment is crucial to a successful DevOps approach.
"During all our modernization efforts, it is probably fair to say that it has been the hardest to get [buy in for] the physical network tier," he said. "With the thrust toward the cloud, this has changed very quickly, because we're leveraging network concepts largely through software and virtualization."
The shift to network virtualization is slowly eroding how infrastructure interacts and communicates with other IT teams, according to Johna Till Johnson, CEO of Nemertes Research in Mokena, Ill. The manual approach to network infrastructure management is changing because network elements are becoming more software-driven. About one-third of organizations -- typically, those in data-driven, high-tech industries like manufacturing, financial and engineering -- have a DevOps framework in place for software deployment. In the last few years, network infrastructure teams have begun looking at a CI/CD approach as well, she said.
It makes sense for infrastructure to begin taking this approach, Johnson said. Because the network is built using code rather than physical machines, network managers can use DevOps principles to improve and deploy them. "That is significantly transformative."
But what slows down the transformation process is economics and education, Johnson said. As networks become automated and virtualized, companies don't need as many people watching over every switch and router. The choice for many network engineers is to learn how to code or risk unemployment. "This is a really tough challenge for everyone to decide whether to retrain or retire," she said.
DevOps training for networking pros
F5 Networks Inc., an application delivery management company based in Seattle, is focused on educating its customers about DevOps. To help network managers understand the transition to DevOps, F5 created Super-NetOps, a free DevOps framework and network automation online training course available to anyone, not just F5 customers.
Network engineers are taught CLI, but network automation is the exact opposite of that repetitive approach, according to Nathan Pearce, F5 product development solutions architect. The Super-NetOps training is designed to help network engineers get into a mindset where they're using common language and principles with developers, so they can start automating processes and feel comfortable that they're making progress, he said.
The course includes 12 hours of video classwork and tutorials covering DevOps methodologies, along with the concepts of automation, orchestration and infrastructure-as-code. Participants also join in hands-on labs to build automated processes through GitHub's software-development platform.
The company started developing its training program two years ago. Since its launch in early 2018, F5 has noticed more network engineers paying attention to the need to understand DevOps for networking, according to Hitesh Patel, director of product management and global solutions architect for DevOps and cloud at F5. Ultimately, the company hopes network professionals feel confident in how their roles affect the business. "We want to link network pros to innovation."
Having the right automation tools
In addition to having the right mindset, being innovative and creative requires having the right tools in place to accelerate the pace of software development, testing and deployment. Organizations also must focus on how their automation tools interact with other IT tools, Gartner's Little said. "An automated CI/CD pipeline for every product is a prominent goal" for companies that want to improve their business, he said.
Barclaycard uses a range of tools along its entire DevOps pipeline, Chandrasekaran said. It uses JUnit for unit testing, Cucumber for functional testing and Gatling for performance and scale testing. For automated provisioning, it uses Chef, Terraform, shell scripts and others. To deploy, it uses GoCD and Jenkins.
Organizations beginning to integrate some DevOps methodologies into their networks are typically using Python scripting language and automation tools like Puppet, Chef or Ansible, Gartner's Lerner said. Advanced networking teams might also include templating tools for the Python programming language as well as Jenkins for continuous integration and GitHub for version control, he added.
DevOps for networking is still in nascent form, but that's slowly changing as software development is used increasingly to help create and automate networks. And as networks become more software-driven, enterprise networking teams will see improvements to deployment and management by collaborating across software development and operations.