How Cisco IT Developed a Self-Service Model for Build and Deploy

Similar documents
Developer Cloud Service. Transform Your Development Experience

Mit Werkzeugen den DevOps Konflikt auflösen

Development Operations in the Cloud: A Use Case and Best Practices

CA Release Automation Continuous Delivery Edition and CA Agile Central

The Challenge: Balancing Change and Control of Continuous Delivery at Scale

Conclusion.

The Oracle DevOps Portfolio

A 7-STEP FRAMEWORK TO IMPLEMENT CICD IN ETL TESTING

RELEASING HIGH-QUALITY APPLICATIONS AND INFRASTRUCTURE FASTER WHITE PAPER OCTOBER 2017

Cisco IT Automates Workloads for Big Data Analytics Environments

DevOps architecture overview

Cisco IT Methods How Cisco Simplifies Application Monitoring

Five DevOps CM Practices

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Cisco ONE Enterprise Cloud Suite

E-BOOK. Five signs you need a modern DevOps solution

GDPR COMPLIANCE: HOW AUTOMATION CAN HELP

Today s businesses are complex organizations that must be agile across highly competitive global Agile Software Framework (DevOps):

MANAGEMENT CLOUD. Leveraging Your E-Business Suite

Continuous Integration and Delivery. Services Catalog

REDUCING TIME TO MARKET WITH DEVOPS

WHITE PAPER. Getting started with Continuous Integration in software development. Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Making the most of your SRE Toolbox

What is Continuous Integration. And how do I get there

An End-to-End Platform for Global DevOps

10 Steps to Mainframe Agile Development. Mark Schettenhelm, Sr. Product Manager September 28, 2017

Intelligence, Automation, and Control for Enterprise DevOps

Customer Challenges SOLUTION BENEFITS

A DIVISION OF. DevOps Automation. Service Catalogue

Trevor Quinn PaaS and DevOps Practice Lead, North America Red Hat Consulting

How Cisco IT Modernizes Shopping for IT Services with estore

DevOps Certification Training Course

Oracle Management Cloud

Zero to Federated at the Speed of Jenkins. A Case Study of Success in DevOps

CONTINUOUS DELIVERY EBOOK SERIES: Chapter 1. Four Critical Software Delivery Challenges in the Application Economy

Oracle Banking Enterprise Collections

DevOps. Changing the way you deliver software

COGNITIVE QA: LEVERAGE AI AND ANALYTICS FOR GREATER SPEED AND QUALITY. us.sogeti.com

ORACLE TASK MANAGEMENT CLOUD

Integrating Configuration Management Into Your Release Automation Strategy

Achieving Balance: The New Pivotal Points of Software Development

Closing the Agile Loop Continuous Integration, Continuous Information. Darryl Bowler Senior Systems Architect CollabNet

Building Microsoft Cloud Solutions: A DevOps Perspective

What is your definition of DevOps?

Cisco s Digital Transformation Supply Chain for the Digital Age

Cloud Security at Scale via DevSecOps

1. Balance Tech Debt. 2. Automate Security. 3. Provide Self-Service Resources. 4. Implement Success Metrics. 5. Automate Continuous Delivery

DevOps E m p o w e r Q u a l i t y A s s u r a n c e b e n e f i t s f o r y o u r p r o j e c t s

DevOps E m p o w e r Q u a l i t y A s s u r a n c e b e n e f i t s f o r y o u r p r o j e c t s

HP Operations Orchestration 10.00

A GUIDE TO FRICTIONLESS DELIVERY

Scalr empowers enterprises to safely and rapidly deploy to the cloud by addressing the four major problem areas:

DevOps: BPMLinks Approach. White Paper

FUJITSU Cloud Service K5 "GitHub Enterprise" Introduction

5 Metrics You Should Know to Understand Your Engineering Efficiency

July Business Transformation: Ness Technology Makes DevOps and Continuous Integration Reality with DevTestOps Center of Excellence

Onward and Upward. Three Ways Application Release Automation Can Give Lift to Your Continuous Delivery Journey

DevOps with IBM Integration Bus and mdash for Leading Healthcare Firm. Case Study DevOps and Automation

Product Overview. Dan Goerdt Flexagon

SCALED CONTINUOUS INTEGRATION & DELIVERY DELIVER WHAT CUSTOMERS WANT, FASTER, WITH AN INTEGRATED CI/CD TOOL

CONTINUOUS DELIVERY AT SOLEIL

FUJITSU Cloud Service K5 "GitHub Enterprise" Introduction

1. Introduction. Page - 2

Server Configuration Monitor

Server Configuration Monitor

New and noteworthy in Rational Asset Manager V7.5.1

Dramatically Improve Service Availability Prioritize issues and prevent problems with consolidated event monitoring and service automation.

Enterprise cloud control plane planning

Case Study: United Airlines Transforms Release Management for Its Modern Software Factory

Benefits of Deploying Oracle E-Business Suite on Oracle Cloud At Customer O R A C L E W H I T E P A P E R D E C E M B E R 2017

Seamless Application Security: Security at the Speed of DevOps

A Guide to Calculating the ROI of Application Lifecycle Management Tools

Jenkins. The coded business. open source

Oh No, DevOps is Tough to Implement!

On various testing topics: Integration, large systems, shifting to left, current test ideas, DevOps

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 2

Agile & DevOps Security & Audit

Cisco ONE Enterprise Cloud Suite Automates Infrastructure, Cloud, and Application Lifecycles

Oracle Enterprise Manager 13c Cloud Control

Service Virtualization

ACP-100 JIRA Administration

E-BOOK. Automated Treasury Onboarding: Can you afford to wait?

Enable your Agile Team with Continuous Delivery Pipelines

CI/CD and transition to the cloud for a medical app

MANAGEMENT CLOUD. Manage the Modern Cloud with Oracle Management Cloud

Achieving a Continuous State of Compliance and Readiness on AWS Unlock GRC Innovation on Public Cloud

DevOps. Deploy. Code Plan. Release. Operate. Build CI. Monitor. Identify

CD - Continuous Delivery / Deployment

Oracle Enterprise Manager Middleware as a Service Overview

Today I am going to talk about whoi am and who Autotraderand what Autotraderhas achieved in the last 4 years with agile & continuous delivery Crash

Attaining True Agility Through Continuous Integration

SESSION 408 Tuesday, November 3, 10:00am - 11:00am Track: Service Support and Operations

A Day in the Life of a Migrated ClearCase User. A Sneak Preview

How to Choose an Enterprise Agile Platform

Fueled with ALM Octane

E-BOOK. Automated Treasury Onboarding: Can you afford to wait?

WHITE PAPER. Reducing Audit Fatigue in Five Steps

CloudShell Pro. Self-Service Sandbox Environments for Physical, Virtual, and Hybrid-Cloud D ATA SHEET. The Need for Cloud Sandboxing

BUILD SE R VICES Application lifecycle management

When It Needs to Get Done at 2 a.m., That s when you can rely on CA Workload Automation

Transcription:

Cisco IT Case Study Self-Service Build and Deploy How Cisco IT Developed a Self-Service Model for Build and Deploy Automating application delivery speeds up the pace of innovation and saves 32 developer hours daily. It s fast IT. Challenge The Cisco Cloud and Software IT (CSIT) team had been using the same build and deployment processes for years. Developers sent an email to inform Quality Assurance (QA) when applications were ready for test. QA opened a case and emailed IT operations to request a build. IT operations sent an email confirming the build was ready. The delays were slowing us down, stifling our goal of fast IT. The previous build and deploy process was too complex, says Jingmin Ding, Cisco IT manager. Email, remedy tickets, manifest files, and wiki updates are boring and take too much manual effort. The amount of time spent on routine tasks also affected job satisfaction for Development and Operations (DevOps) and QA engineers. Standard continuous delivery (CD) tools and processes wouldn t fully meet our needs because of our diverse application environment. Deliverables include Java programs, web content, and data objects. Compilation tools include Ant, Maven, and Make. To continue on our CD journey, we decided to develop a self-service system to automate build and deploy processes. 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 1 of 7

Solution Now CSIT application-delivery teams release code into production without any help from IT operations. Our new self-service model automates much of the process. It s based on: A code commit and branching model in Jenkins Automated build pipeline and workflow Automated build tracking A metrics dashboard, used to continually identify new areas for improvement Code Commit and Branching Model Jenkins is our open-source continuous integration (CI) tool. Previously we used a Jenkins Git server plugin for version control. Developers entered all changes through a Concurrent Versions System (CVS) repository. Later we switched to a Git Stash repository. Stash makes it easy to review code using pull requests, which encourages peer review and team conversations about code. To define our build pipelines, we created the three types of Jenkins branches (Figure 1): Feature branch: Developers develop each feature in its own branch. When developers are ready for their teams to review the feature, they push the branch to the remote Stash repository. With this approach, developers can share a feature without touching the official code. Release branch: After completing a feature, developers merge their changes to a release branch by filing a pull request. The Jenkins job pulls code from the release branches during build. The advantage of this approach is that the release branch contains reviewed and stable code. Production branch: To release the code to production, we merge the release branch to the production branch. The production branch always contains the latest code in the production environment. If we update the code in the production branch, we also update it in the release branch. Figure 1 shows our two development stacks: CD and long project (LP). The CD stack is for features introduced throughout the year. The LP stack is for features introduced in our major, twice-yearly releases. Figure 1. Build Pipeline Branches: Feature, Release, and Production 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 2 of 7

Automated Build Pipeline and Workflow To deploy an application, developers and QA engineers visit a web dashboard to trigger the Jenkins build, which initiates the automated process (Figure 2). Jenkins begins by compiling and packaging the code. Then it automatically deploys the package to the development, QA, and production environments. IT operations engineers don t have to get involved. Figure 2. Self-Service Model for Application Deployment We ve defined three types of Jenkins jobs: Build job: Only developers can start a build job. The job compiles the source code from a release branch. Jenkins assigns a unique build number to the generated artifacts and automatically uploads them to the artifact repository. When complete, the build job creates the deploy job. Deploy job: Both QA and DevOps teams can start a deploy job. (QA can deploy only to the QA environment, not production.) Before starting a deploy job, the user specifies the target environment and the build number in the artifact repository. The job retrieves the specified build number and deploys it to the target environment. Test automation (TA) job: The TA job begins automatically after the deploy job is complete. The job invokes the automated testing scripts provided by the DevOps and QA teams. 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 3 of 7

Tracking and Monitoring Builds Developers check out code and retrieve artifacts from the development build. Before, developers had to manually enter the build number in Jenkins jobs and on our Configuration Management wiki page. But manual entry is timeconsuming. Errors can cause deployment failures. We ve automated build tracking using this process: The development build generates a build number, for example, IOMS-LP_150824_31. Our naming convention is name of project; whether it s a CD or LP release; build date; and Jenkins job number. All artifacts in the development build are compressed in a tar.gz file. Jenkins uploads the compressed file to the artifact repository. The build number is the same as the version number. The development build passes the build number to the deploy job, which can then retrieve the correct version of the compressed artifacts file. A custom Jenkins plugin saves the build information (parameters and more) to our configuration management database (CMDB). This process completely eliminated build errors. We also developed a portal to track the status of each build. The portal shows who deployed the build, when, and in which environment (Figure 3). To notify the QA team that a build is ready for testing, the developer simply sets a flag on the portal. There s no longer any need to send emails. Figure 3. Real-Time Build Status Dashboard 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 4 of 7

Tracking Metrics We collect metrics from the CMDB and present them on a dashboard in graph form (Figure 4). Tracking these metrics helps us discover ways to continually improve the process. We monitor successful builds by month, deployment frequency, and build duration. The build duration graph also shows whether builds succeeded, failed, or were aborted. Figure 4. Easy-to-Read Graphs Help Track Success 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 5 of 7

Test Automation The TA job generates a report that appears in the dashboard (Figure 5). Team members find out the test results immediately. They don t have to wait until someone sends an email. Figure 5. Test Automation Report Results All CSIT developers and QA engineers now use the self-service platform for source-code management, continuous build, and storing artifacts. The self-service process speeds up the pace of innovation and lowers costs: Fast IT: Before we could deploy a maximum of 32 builds daily. Now there are no limits to the speed of innovation. There is no more dependency on other teams, says Manjunath Nanjappa, CSIT software engineer. A simpler delivery process means we can introduce more features, faster. The number of feature branches has quadrupled. Lower development costs: Builds finish at least 60 minutes faster, which saves 32 developer hours every day. Engineers can use this time either for work or to reduce overtime, improving work-life balance. We saved 1648 hours in the first 6 months, says Kyo Song, Cisco DevOps service lead. Higher productivity for developers and QA: The self-service process cuts QA workload by about half, says Ding. We receive automated email confirmation when a build is ready, and then just click to deploy. We execute tests after we receive the automated email that the build is complete. Supporting CSIT daily build and deployment tasks used to take DevOps staff away from more critical activities, says Jagdish Bhandary, program manager for the QA team. The self-service model frees time for developers and QA to focus on activities with higher value for the business. Improved quality: By reducing opportunities for human error, automation has increased the rate of successful builds. Developers and QA engineers can detect defects sooner thanks to TA integration and real-time feedback. Continual improvement: We can see as code moves between tests and build environments. Collecting and analyzing near-real-time application lifecycle management [ALM] data helps the CSIT team measure success, says Song. 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 6 of 7

Next Steps Now we re working to automate more of the application and infrastructure lifecycle. That includes automating infrastructure provisioning, orchestration, and deployment. Our next initiative will be infrastructure as code. Lessons Learned The CSIT application delivery team offers the following tips for other organizations that want to introduce selfservice build and deployment: Create a dashboard with real-time updates on build and deployment status. This step is especially important in the early stages of adoption. If a process fails, resolve the issue quickly. This practice, too, encourages adoption. Encourage communication and collaboration between DevOps and QA. Set up a feedback loop with the goal of continuous improvement. Create a FAQ document. For More Information To read Cisco IT case studies about a variety of business solutions, visit Cisco on Cisco: Inside Cisco IT http://www.cisco.com/go/ciscoit. To view Cisco IT webinars and events about related topics, visit Cisco on Cisco Webinars & Events. Note 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. 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. January 2016 Page 7 of 7