Since 2014, enterprise software development and delivery within Cisco IT has transformed from the traditional, phased, “waterfall” approach to a rapid-release agile model. Much of the foundation for this transformation can be attributed to a DevOps toolchain that is part of the Cisco IT continuous delivery (CD) program. The toolchain gives our application teams a centralized set of tools to use throughout the software development lifecycle. (Figure 1)
Tools and Processes in the Cisco IT DevOps Toolchain
The tools are installed on Cisco IT’s standard computing infrastructure, which is based on Cisco Unified Computing System™(Cisco UCS®) servers. Developers also use the Cisco Spark™ team messaging app to view log information from toolchain processes, which simplifies project communications within global teams.
Creating the Toolchain
“To help us build and deliver the toolchain at an accelerated pace, we looked at what the teams were already using and identified the best tools and practices for each development process,” says Kory Nguyen, manager, Cisco IT.
To create the toolchain platform, Cisco IT sponsored a “scrum of scrum” effort involving five teams of technical enterprise architects and engineers who had extensive knowledge of the individual tools. Each team had a scrum master and worked in parallel development sprints to create their designated part of the toolchain. A separate team integrated the work of the five tool teams into the single toolchain platform.
“As the scrum of scrum leader, I saw the power of bringing together each team while building out the CD toolchain. During this effort, we quickly addressed any impediments and cross-track dependencies in each part of the toolchain so we could make continuous progress in building it at an accelerated rate,” says Ramki Baratam, manager, Cisco IT.
Throughout the process for building the CD toolchain, we shared progress with the Cisco IT development community through regular forum discussions among tool providers and application developers (called consumers). The provider forums allowed the toolchain team to showcase new developments as the toolchain was being developed. The consumers forum provided an opportunity for Cisco IT application developers to demonstrate how they were using the toolchain, spread knowledge to other consumers, and gain feedback from providers on best practices for application development under this new model.
Using the CD toolchain allowed the Cisco IT Commerce team to move from a waterfall development model to an agile model and increase the number of releases per quarter from one to three. More frequent releases allows for a quicker response time when optimizing software.
For example, the Commerce team is leveraging the CD toolchain as part of their work on the Cisco ONE software. The flexibility offered by the CD toolchain also benefits application users when software developers can respond to user needs faster because it is easier to release revised applications to production.
“Leveraging the CD toolchain allows our team to centralize software releases using a standard but flexible process,” says Yogesh Zope, senior engineer, Cisco IT. “Overall, the toolchain capabilities help our team be more agile and respond faster and more efficiently to users, which was the case for the Cisco ONE development project.”
The CD toolchain has become such a success within Cisco IT that it is increasingly used by other Cisco development teams. Today the CD toolchain is available as a production service from Cisco IT for use in any Cisco software development project.
The CD toolchain helps Cisco IT realize the benefits of its adoption of agile development and DevOps models.
Faster software releases. In the fourth quarter of FY2014, Cisco IT released 63 waterfall software projects and 36 agile software releases. As of late 2016, Cisco IT handles over 300 agile releases each quarter, an increase of more than 830 percent in only two years.
Reduced development costs. By providing a common set of development and testing tools, Cisco IT avoids the extra costs that can arise when each application group chooses and licenses different tools. And because the toolchain centralizes the tools and supports the automation features of continuous delivery, Cisco IT gains economies of scale for developing and releasing applications.
Higher-quality and more secure applications. The toolchain simplifies development, which allows developers to focus on delivering higher quality in their applications. Developers can also validate application security during the development process instead of waiting for the testing stage, which helps reduce or avoid a common area of needed rework in application code.
Broader tool availability. The toolchain provides a single place for internal Cisco DevOps tools, many of which were previously isolated in silos maintained by different development teams.
Improved productivity. The unique ability to integrate developers and the toolchain processes via Cisco Spark supports productivity and collaboration among teams working on a project, especially when developers are located around the world.
For More Information
Cisco solutions mentioned in this article:
· Cisco Unified Computing System (Cisco UCS)
· Cisco Spark
· Cisco ONE software
To read additional Cisco IT case studies about a variety of business solutions, visit Cisco on Cisco: Inside Cisco IT.
To view Cisco IT webinars and events about related topics, visit Cisco on Cisco webinars & Events.
This publication describes how Cisco has benefited from the deployment of its own products. Many factors may have contributed to the results and benefits described. Cisco does not guarantee comparable results elsewhere.
CISCO PROVIDES THIS PUBLICATION AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Some jurisdictions do not allow disclaimer of express or implied warranties; therefore, this disclaimer may not apply to you.