When you hear ‘DevOps’, what does it mean to you? Quite often people complain that DevOps is difficult to define. I think the reason for the confusion is DevOps is a concept that uses a set of tools and techniques collectively to enable continuous delivery (CD). It also serves to increase collaboration between Development, Ops, QA, Network, Business and any interface team involved in the Software Development Lifecycle (SDLC). To me, DevOps means transforming a software development process into that one that accelerates time to market with better quality and reduced cost. It’s about listening to customers and delivering features faster. DevOps is a journey that fundamentally changes the way IT is done.
Why DevOps? Let’s take a look into the past and where we started here at Cisco. Application delivery teams were applying an Agile development processes to accelerate the delivery of new software features and functionality. While adopting Agile methods is a huge step forward for delivery teams, Agile alone doesn’t ensure a reduced time to market. To ensure a reduced time to market our answer was to bring in automation in software development along with Agile, DevOps with collection of automation tools and techniques was the answer. Implementing standardized DevOps tools and techniques at an enterprise level is more complex than implementing Agile. A DevOps solution requires a shift in the overall organizational culture. The Cisco leadership team had complete faith in the DevOps vision and created a culture to enable implementation and adoption.
In my experience, I saw the power of DevOps when working with tool chain platform. The evolution was founded on the principles to automate a large majority of manual activities of SDLC starting from Plan to Operate as illustrated in the below image. We wanted to “shift left” and automate all the possible activities in SDLC in order to identify defects as early as possible, when they are typically the easiest to fix. Orchestration of the end-to-end automation of information flow and features enablement in SDLC is done using different tools as represented in tools layers. These tools are then integrated with interface layer using Translation/API layer.
While implementing DevOps CD tools, we had to overcome few challenges:
- Platform Adoption: We had to encourage teams to adopt the DevOps CD platform. We overcame this by organizing a “Train the Trainer” program and awarding teams that adopted the platforms the fastest from continuous integration to continuous deployment. This was a huge success! Development teams that adopted the platforms started realizing the many benefits in delivering the features faster.
- Continuous Feedback: Feedback is essential to frequent, automated releases. Jez Humble, author of Continuous Delivery says, “Any change, of whatever kind, needs to trigger the feedback process. The feedback must be delivered as soon as possible. The delivery team must receive feedback and then act on it.” The challenge with the DevOps tools pipeline was lack of real time feedback in a common team’s virtual room. We overcame this by integrating DevOps CD tools with Cisco Spark. Cisco Spark integration allows teams to stay up-to-date with all DevOps CD tools notifications. For example, when a change is committed by a team member in the source code management tool or when a build is executed in a continuous integration platform members are notified.
- Software Analytics: As Peter Drucker said, “If you can’t measure it, you can’t manage it.” The majority of the DevOps tools have nice dashboards to present key metrics. However, there isn’t a commercial or open source tool available that provides comprehensive an end-to-end, real-time view of the state of a delivery pipeline passing thru DevOps tools. To overcome, Cisco developed an Analytics dashboard, which provides three different views; Software Analytics, Developer Analytics, and Platform Analytics. The DevOps CD Analytics dashboard provided visibility and increased the transparency into the SDLC.
I loved being part of the DevOps CD journey working closely with development teams to improve their time to market. If you’re interested in integrating Cisco Spark with your DevOps tools pipeline to establish real-time continuous feedback loop, check out the Cisco Spark API in DevNet.
Questions or want to share your DevOps journey? Find me @YadavYogesh. Thanks for reading!