Building a Global CI/CD Infrastructure

Why Cisco Chose JFrog Artifactory as its Universal Artifact Repository Manager

Diagram

Prathibha Ayyappan
Software Engineer, Build Management Services, Cisco

Cisco, 30,000 Network Engineers in Every Corner of the World

Founded in 1984, Cisco is the world’s largest networking company. Its wide variety of hardware and software products and services are used by all market segments in every industry, from corporate enterprises through small businesses and startups to mass-market consumers. Of its over 70,000 employees, 30,000 are engineers spread out in development centers around the globe Cisco’s Build Management Services Team provides CI/CD tools and services to the company’s engineers. The team was tasked with creating a common CI/CD environment which could serve the company’s complete development workforce. However, in the spirit of Cisco’s policy of operational freedom, the company would not force anyone to come on board.

Quote1

Why Cisco Chose JFrog Artifactory

In the initial stages of the project in 2014, Cisco conducted a stringent evaluation process, and eventually selected Artifactory over its competitors. The main reason was Artifactory’s universal nature, supporting all major build tools, CI servers and packaging formats. As a company strongly based in embedded software using RPMs for its networking hardware, Cisco especially needed Artifactory’s extensive support for YUM repositories.

Quote2

The Evolution of a Global CI/CD Service

The initial rollout of the CI/CD service included a standalone installation of Artifactory Pro operating from the company’s Raleigh-Durham (RTP) site. To provide better performance at Cisco’s main engineering site, the service’s primary installation was migrated to San Jose (SJC) data center. Thanks to Artifactory’s replication capabilities, setting up in San Jose as the main site, failing over to the original location in RDP as its DR site was easy.

However, Cisco’s international sites were still not getting optimal performance, so the team set up additional installations, again using Artifactory’s replication and read through caches to synchronize all repositories with the main installation at San Jose. At this point all customers were happy and getting excellent performance from their CI/CD pipeline…until there was an outage. The outage itself was not a problem; customers continued to get service, however, once the outage had been fixed, it took hours to restore the main site since Artifactory was already being heavily used and bandwidth was limited. This made it clear that having only one master node was an unacceptable single point-of-failure and outages that required cross-country replication in order to recover from could not be tolerated.

To remove the threat of outages, Artifactory on the main site in San Jose was set up in a High Availability configuration. With the promise of up to five-nines availability, Cisco’s Build Management Services Team knew that they could provide a robust, reliable and highly performant service to all its customers in the US and in its remote sites around the globe. But there was still one problem. Between the US and international sites and setting up the repositories and replication and proxy relationships between them, the complex manual configuration process meant that it could take anywhere from 60 to 90 minutes to provision a repository to a development team. As the project’s popularity grew, the lengthy and error-prone manual provisioning process became a bottleneck. So the team built an app that automated the complete provisioning process. Relying heavily on Artifactory’s REST API, the app created repositories, users, permission targets, replication relationships and anything else that was needed to provision a repository to a customer. This automation reduced provisioning time to an average of about 2 minutes which constituted a 98% reduction in time, and an automated error-free process.
Within One Year

 

Summary

Summary

Artifactory Universal Repository Manager was selected by Cisco for its CI/CD infrastructure serving the company’s 30,000 strong engineering workforce. Artifactory’s support for all major packaging formats, and in particular, YUM repositories, made it a natural choice for Cisco whose engineers are strongly based in RPMs for their embedded software. The infrastructure evolved through several stages until it reached its current architecture with four sites connected by replication relationships and virtual and remote repositories. To meet the growing demand by different teams around the globe to use the infrastructure, the team used Artifactory’s REST API to dramatically reduce provisioning time by 98% through automation. It became clear that Artifactory was the right choice for Cisco. Within a year, over 4500 engineers were using the system to manage their builds and artifacts. Thanks to automation using Artifactory’s REST API, over 1800 hours of manual work in provisioning repositories was saved, with the projected savings in man-hours for the following year reaching 4400.

Release Fast Or Die