Devops for Digital Enterprises
Total Page:16
File Type:pdf, Size:1020Kb
WHITE PAPER DEVOPS FOR DIGITAL ENTERPRISES Abstract DevOps is fast assuming greater importance in deciding the agility of an enterprise. A robust DevOps setup is crucial for successful agile delivery and minimal risks. It greatly optimizes release management costs and team productivity, resulting in reduced time to market. At the same time, DevOps enables organizations to make rapid product releases with increased quality and manage customers’ expectations. In this paper we explore various aspects of DevOps. We look at key success attributes, main processes, tools, and frameworks that play an elementary role in DevOps. Brief Introduction to DevOps Scope DevOps is a practice of optimizing development and operations activities through structured processes, automation, and collaboration. It aims to synergize processes between development and operations teams to make them more efficient. External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited The main factors that enable the development of effective DevOps are listed below: • Continuous and iterative delivery: interfaces should be done iteratively Processes should enable iterative to reduce integration risks. delivery such that business capabilities • Robust source control processes: are delivered in iterations and each Processes related to source control iteration is thoroughly tested. management (such as check in, check • Strong collaboration: All teams out, locking, etc.) should enable should successfuly collaborate during geographically distributed teams to development, testing, and release collaborate successfully. managment activities. • Governance: Standard set of Key factors that • Automation: A majority of release well-defined processes should be managment activities such as established for release management drive efficiencies development, static code analysis, and deployment. testing (unit, functional, integration, • Metrics: Suitable metrics and KPIs load, performance), and deployment to track the impact and success of should be automated using tools and DevOps processes should be defined. scripts. This would greatly enhance These metrics could include overall team productivity and improve the release time, time per release, etc. quality of the deliverable. • Consistent and standard processes: • Early and iterative testing: Each Common goals, SLAs, tools, uniform release should be tested iteratively policies, and well-defined in early stages. This would reduce processes for DevOps activities the defect rate and risk involved in should be established. regression testing. • Agility: All processes related to • Continous integration (CI): Carrying development, integration, testing, out frequent, integrated builds from and release and deployment should a centralized source control system be agile so that it is easy to absorb, is key. Integrations with enterprise test, and deploy changes. Key challenges that come in the way of successful DevOps are listed below: • Inconsistent release management • Technology ecosystem: In some processes: If various development scenarios the tools, frameworks, teams have distinct release technology, and infrastructure management processes, then we components used may not be would not be able to fully realize mutually compatible. This poses the potential of DevOps. We need to challenges during integration and establish a standard set of processes comes in the way of setting up a across the board standard infrastructure. Challenges for • Lack of team collaboration: Culture • Non-standard tracking metrics: differences, lack of collaborative If various teams involved adopt successful DevOps ecosystem would come in the way of different goals and SLAs, or if the a DevOps success. Each team having processes are not agile in nature, it different metrics, policies would come would not be possible to establish a in the way of successful DevOps standard DevOps governance. External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited Implementing a successful DevOps setup Let us look at the various steps in implementing successful DevOps for an organization. In the process, we will also understand various phases in the DevOps transformation journey. The diagram below depicts the key phases of a DevOps implementation program. Assessment Implementation Monitoring and phase phase maintenance • Review current processes • Standardize processes, metrics, and SLAs • Continuously monitor and measure the metrics and SLAs • Gap analysis • Automate the build, release, and deployment processes using tools, frameworks, and • Implement continuous improvement • Analysis of current challenges and pain points in release management, build, and scripts framework deployment processes • Adopt agile delivery model Activities • Identification of opportunities for continuous • Adopt DevOps best practices such as improvement and agile delivery continuous integration • Identification of automation opportunities and • Execution of PoCs and pilot setups to assess • Metrics-based monitoring process improvement opportunities feasibility and improvements • Adoption of continuous improvement • Identification of tools and scripts for automation • Automated build, release, and deployment framework setup • Definition of common metrics, processes, goals, • Adoption of DevOps across enterprise-wide and SLAs • Reports related to build, code quality, release, programs and deployment • Defining continuous improvement plans • Establishment of centralized knowledge Key Outcomes • Defining DevOps roadmap • Establishment of DevOps dashboard repository Essentially the transformation journey to a successful DevOps consists of three phases: Assessment Implementation Monitoring and maintenance During this phase we assess the We begin this phase with feasibility This is an ongoing phase current state of the organization, and effectiveness checks through wherein we regularly monitor its capabilities, processes, and proof-of-concepts (PoCs) and pilot the defined SLAs and KPIs technologies with respect to runs to understand the impact of of DevOps processes using development and operations. implementation. Once these checks continuous improvement plans We focus on identifying existing give us the green signal, we roll out and governance models. challenges and gaps, and identifying process improvements and automate opportunities for automation to processes that have been identified create standardization. Therefore, in the assessment phase. Both we lay out the DevOps roadmap for development and operations teams future phases by identifying all the work in collaboration using newly tools, technologies, and frameworks defined processes and best practices needed for automation and for such as agile delivery model (to deliver implementing various processes. in iterations), continuous integration, and more. At the end of this phase, we set up a comprehensive DevOps dashboard to monitor various activities and overall condition of the project. External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited The table below lists typical transformations that occur post successful DevOps implementation: Category Before implementation After implementation Nonstandard, disjointed, and Organized and standardized technology fragmented stack Infrastructure Automated, on-demand, infrastructure Manual infrastructure setup and provisioning with metrics-based provisioning monitoring tools Development and operations team Development and operations teams with working as a single global team with different goals and processes common set of goals, metrics, and processes. Teams Increased collaboration across all Each team spends considerable, manual teams using automated processes and effort to execute, develop, test, and consistent goals. This leads to increased release management activities. team productivity and lowered operations cost. Agile and iterative delivery model based Big bang or waterfall model on user stories leading to shorter time to market Delivery model Longer release cycles Incremental releases Iterative / agile development and testing Traditional with incremental releases Development and testing Automated testing and continuous Manual processes validation Reduced cost and risk due to continuous Costly and error prone integration and testing Integration model In advanced project phases only Continuous and frequent Inability to overcome challenges Higher effectiveness of change requests, Effectiveness of end user in handling change requests and feedback, and enhancements due to feedback and change requests enhancements leads to longer change agile delivery implementation period External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited The key tenets and goals of successful DevOps are depicted in the following diagram: Automation DevOps goals Increased Reduced cost, eort, automation and time to market Agiliity Standard processes Standardized Increased tolerance processes for change requests Devops Continuous improvement Team Collaborated Common goals, collaboration teams metrics, and SLAs Agile delivery Continuous models improvement Reduced Reduced risk time to market Increased quality Metrics and tools • % reduction in overall release time • % increase in automation of testing, static code analysis, and • % reduction in defects detected in deployment UAT / preproduction testing • % increase in code coverage • % reduction in manual effort for Metrics overall release management • % increase in testing automation We could