100% found this document useful (1 vote)
356 views

DevOps Textbook

DevOps Note Book And very important for engineering students, and very useful for your exams.

Uploaded by

Vamshi Laggani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
100% found this document useful (1 vote)
356 views

DevOps Textbook

DevOps Note Book And very important for engineering students, and very useful for your exams.

Uploaded by

Vamshi Laggani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 162
DevOps Tools from Practitioner's Viewpoint Deepak Gaikwad Viral Thakkar suit , = Preface v Acknowledgements vit List of Figures and Tables ee Chapter 1 BUCA SCR tants DevOps, Really? 1 1 ew 1.2. Problem Case Definition 13 of Fixing Application Development Challenges ‘ 1.4 DevOps Adoption Approach through Assessment 4 1.5 Solution Dimensions 5 1.6 Structure of the Book 6 Your Understanding ¢ Assignment to Strengthen Your Understanding 7 KEEEIEY Agile Methodology and DevOps 9 2.1 Before Agile —Waterfall : 2.2 Agile Development = 2.3) What is Deve Ips? 24 1 *vOps Importance and Benefits 25 DevOps Principles and Practices 2.6 7 Cs of Deve ps Lifecycle for Business Agility 2.6.1 Continuous Planning 2.6.2 Continuous Development 2.6.3 Continuous Integration 2.6.4 Continuous Deployment 2.6.5 Continuous Testing 2.6.6 Continuous Delivery and Monitoring 2.6.7 Continuous Feedback 2.7. DevOps and Continuous Testing 2.7.1. Reference Architecture with CI Server 2.8 How to Choose Right DevOps Tool? 2.8.1 7 Steps to be Followed to Choose the Right DevOps Tools 2.8.2 Selecting the Right Tools 2.9 Challenges with DevOps Implementation 2.10. Must Do Things for DevOps ‘Test Your Understanding Assignment to Strengthen Your Understanding 3s 3.1 Assessment 36 3.2. Definition 8 3.3 Implementation 9 3.4 Measure and Feedback 4 ‘Test Your Understanding 4 Assignment to Strengthen Your Understanding 2 4.1 Atlassian Tools “ 4.1.1 Key Features 5 4.1.2 Competitors of Athisian 6 4.1.3, Where can Atlassian be Best Utilized? 46 4.1.4 Pros and Cons of Adassian 4.1.5 Example of Reference Architecture 4.2, Phabricator 4.2.1 Key Features 4.2.2 Competitors 4.2.3, Where can Phabricator be Best Utilized? 4.2.4 Pros and Cons of Phabricator 4.2.5 Example of Reference Architecture 5.1 Jenkins 5.1.1 Features 5.1.2 Example of Reference Architecture 5.2. Microsoft TFS 5.2.1 Features 5.2.2 Example of Reference Architecture 5.3 TeamCity 5.3.1 Why Choose TeamCity as CI Server? 5.3.2 Key Features 5.3.3 Popular Competitors 5.3.4 Where can TeamCity be Best Utilized? 5.3.5 Example of Reference Architecture 5.4 Ansible 5.4.1 Why Ansible? 5.4.2, What can Ansible Do? 5.4.3 Key Features 5.4.4 Pros and Cons 5.4.5 Example of Reference Architecture 5.5 Bamboo 5.5.1 Features 5.5.2 Popular Competitors 5.5.3 Where can Bamboo be Best Unilized? 5.5.4 Pros and Cons 5.5.5 Example of Reference Architecture ‘Test Your Understanding Assignment to Strengthen Your Understanding, 61 JIRA 6.1.1 Key Features 6.1.2 Popular Competitors of JIRA 6.1.3 Where can JIRA be Best Utilized? S14 Pros 61s 55 56 56 56 58 58 58 60 60 60 60, 61 61 61 62 63 63 64 oF 64 66, 66 66 66, 7.1 Bitbucket 7.1.1 Key Features 7.4.2 Popular Competitors ’ 7.1.3 Where can Bitbucket be Best Utilized? 7.1.4 Prov and Cons 7.4.5 Example of Reference Architectu 7.2 Crucible 7.2.1 Key Features 7.2.2. Where can crucible be Best Utilized? 7.2.3. Popular Competitors 7.2.4 Pros and Cons 7.2.5. Example of Reference Architecture Test Your Understanding Assignment to Strengthen Your Understanding 8.1 Liquibase 8.1.1 Key Features 8.1.2 Popular Competitors 541.3 Where can Liquibase be Best Utilized? 8.14 Pros and Cons 9. 93 94 95 9.6 Chapter 9 9.1. DevOps and Cloud Adoption 914 9.1.2 9.1.3 DevOps in IBM Cloud ~ Bluemix 9.2.1 92.2 9.2.3 DevOps with VSTS and Azure 931 93.2 9.3.3 9.3.4 9.3.5 9.3.6 Benefits of using DevOps along with Cloud Few Best Practices for DevOps in tht Cloud Reference DevOps Pipeline IBM Cloud DevOps Competitors Pros and Cons IBM Cloud DevOps Architecture VSTS Feavures Competitors Where can VSTS be Best Utilized? 1 Pros and Cons 1 Example of Reference Architecture 102 Why Azure? 103 Pivotal Cloud Foundry 103 94.1 9.4.2 9.4.3 944 AWS 95.1 9.5.2 9.5.3 9.5.4 956 9.5.6 Openshift 964 9.6.2 9.6.3 Key Competitors 104 Pros and Cons 105 Example of Reference Architecture 105 Concourse: CI-CD Tool by Pivotal 105 Reasons for Selecting AWS for DevOps 106 Features of AWS "1 107 AWS Tools and Services for Orchestrating DevOps —<—— Key Competitors i Pros and Cons Example of Reference Architecture OpenShift Flavors Why OpenShift in DevOps? Key Competitors Contents EEE ison sey 10.1. Security with HP Fortify 10.1.1. Key 10.1.2, Where can HP Security be Best Utilized? 10.1.3. Key Competitors 10.1.4 Pros and Cons 10.1.5 Example of Reference Architecture Features Test Your Understanding Assignment to Strengthen Your Understanding 11-1 What is DevOps Governance and Controls? 11.2 How to Implement DevOps Governance? 11.3 What are DevOps Governance Benefits? 114 Implementing DevOps Controls ‘Test Your Understanding Assignment to Strengthen Your Understanding What is a DevOps Playbook? 12.2 Developing a Playbook 12.2.1 Identify Target State from Current State 12.2.2 Preparing DevOps Playbook 12.3 Implementing DevOps Playbook 12.3.1 Playbook Implementation in New Application Development 12.3.2 Playbook Implementation for Existing Application Test Your Understanding i Assignment to Strengthen Your Understanding 43.2. Custom Frameworks 49.3. Separating Unit Test Code from Main Code Ao 13.4 Choosing Correct Branching Strategy 139 43.5 Check-in and Check-out Practices 140 13.6 Checkstyle Integration with IDEs = 13.7. Standardize Code Review Checks pd 13.8 Externalize Unit Test Data 12 13.9. Shift Left bine 13.10 Externalize Environment-Specific Properties o 13.11. Libraries Management pees 13.12. Right Mindset of Testung Team 144 13.13 Ensure Collaboration amongst Stakeholders 144 13.14 Give Weightage to Tool Selection 145 13.15. Avoid Over-Automation 145 14.1. Strategy Trends “7 14.1.1. Independent Teams to Full Stack Developer Teams ur 14.1.2. DevOps to No-Ops 148 14.1.3 DevOps Resilience 148 14.1.4 Site Reliability Engineering (SRE) 9 14.1.5. SecOps HS 14.2 Technology Trends ™ 14.2.4 Al and DevOps = 14.2.2 ChatBors = 14.2.3. Tools Moving Forward Appendix: A i Appendix: B . go List of ile [gor and Tables Figure it SI application maintenance activity view Figure 1.2. Application assessment process Figure 2.1. Waterfall methodology Figure 2.2 Agile methodology Figure 2.3 Dev plus Ops. Figure 2.4 Development stages and activities, 2 Figure 2.5. DevOps layers. Figure 2.6 Practices for DevOps culture. 7 Figure 2.7 7 C’s of DevOps 8 Figure 2.8 Continuous testing reference architecture Figure 2.9 Selecting the right DevOps tool. Figure 2.10 Popular DevOps tools. 2 Figure 2.11 Tools periodic table Source: https://xebialabs.com/periodic-table-of-devops-tools/(see color image 2 vailable at this source for clarity). Figure 3.1 DevOps assessment process. Figure 3.2 DevOps maturity levels. Figure 3.3 Sample assessment report. i Figure 3.4 Definition phase = Figure 3.5 Implementation 2 Figure 4.1 Adasian toolset. ri Source: Atlassian; https://wwwatlasian. com /blog/dewops/haweto-ehoase-evops ooks 48 Figure 4.2 Reference architecture using Adassian tools. 50 Figure 4.3 Phabri ols landscape Figure 4.4 Phabricator reference architect Piste 5.1. Ci orchasration using Jenkiot Figure .2 Capabilities of Jenkins. Bowe 5.3 Reference architecture using Jenkins Figure 5.4 Microsoft'TES reference architecture. Development using TeamCity. Reference architecture of CI using TeamCity. Ansible features. Reference architecture using Ansible. CL-CD using Bamboo. Role of ALM tool in development. Delivery lifecycle with JIRA. Asks from an SCM tool. Distributed version control with bitbucket. Delivery lifecycle with Bitbucket, Effective Cl with crucible, Role of a deployment tool. Liguibase reference architecture. ‘Chef deployment technology landscape. DevOps with Chef Puppet setup model. Reference architecture for DevOps with Puppet. Infrastructure types overview. Reference DevOps pipeline on Azure. IBM Cloud DevOps architecture, Source: https://wwwiibm. com/blogs/bluemix/2016/11/devops-architecture-available- 100 on-bluemix-garage-method-site/ VSTS in CCD. 102 Atlassian too! pipeline with PCE 106 CI-CD using Concourse, 106 DevOps with AWS tools. AWS DevOps reference architecture, OpenShift DevOps reference architecture, Security using Fortify. Typical governance structure, DevOps governance benefits, Systematic approach to DevOps adoption. Sample assessment findings, Module-wise projects, Figure 13-2 Projects according to layers in architecture. 138 igore 13.3 Test classes separation from main classes 138 Figure 13.4 Branching strategy for parallel development = igure 13.5. Branching strategy for bug fixes ie Figure 13.6 Shift-lft testing, a Figure 13.7 Test pyramid. 1S Figure 14.1. Full stack developer teams a Table 9.1 IBM Cloud - Table 9.2. PCF rational and features Fn Table 11.1 DevOps controls 121 ‘Technology trends 150 The World without DevOps, Really? EEE overview Before we dive deep into the ocean of DevOps to find an answer to what it is necessiry to understand the applications and organizations without DevOps. How are application ¢ ppment and maintenance carried out in this world? What is the team composition? What are t hallenges that different stakeholders in these application teams face? What are the applications? And so on, In addition to these ind how it works, it is ¢ typical key concerns that questions, the next important aspect we must understand is How are delivery teams currently trying to find answers to these questions? How much success are they bagging currently? Which are the concerns still not having concrete answers? Finally; we must understand shat will be the impact of these open questions on the business functions supported by Atthe end of the day, everything is translating into business and business decisions these applications. Let us start with an example We are picking a case from capital markets domain. You may have the question, wh reasons ~ first, we assume that share mark ‘or two simple ind trading is a topic that most of us have heard about, and ‘oncepts during our discussion. Second, most of the authors are from banking and financial services domain, Hence, it will be easy for both, readers and authors, to relate and unde the twill be easy to visuali erstand oncepts discussed here. However, if share market and trading is a jinx for you, it does not matte The discussion in this book will not make you feel out of the world. You can just look at the considered ‘pplication from a technology point of view to deliver certain functionality EES Prostem case EFINITION we considering online share trading application as a case for our further discussion. We would dis us how the world of this application and people around it are currently, i.e application technology, ‘akcholders and processes followed to deliver functionality, and then get into discussion of changing it for better. For the benefit of those who know nothing about shares and tr Jing, let us have a brief discussion ut the business and functionality of this domain. There are libraries filled with books on capital marker ‘Pic, but we will try to condense basics of it into a few sentences abou 1. Shares are commoditized share in the ownership of a company 2 Shareholders can own shares by buying those directly from the company 6H 3. Place where buying and selling or trading of shares is done is called exel 4 Not only shares, but Products derived from shares are also traded at exel 5. Exchanges provide Bi & Many brokers offer different channels to shareowners to perform trading, activity, such as call centers, DevOps Tools from Practitioner's Viewpoint cility to shareowners to perform this activity of | buying-selling shares and products through brokers. desktop application, mobile application, ete 7. Shareowners can perform trading activity using these fa during exchange business hours, ; Online share trading appheatic ‘which is our case for discussion, is one such channel provided by the broker or investment bank to its customers, who are or want to be shareowners. ities provided by the broker on the exchange % This is an internet-based application that the traders (or investors) can use fromm anywhere using 3 esktop or any other device that supports it, What are the highlights of this trading activity that influence application development and maintenance? Here are few that would be of interest to us: 1. Trading is done during business/working hours of exchange. 2. The number of people trading is continuously varying and can surge due to any external event 3. There are frequent minor or major modifications to the way trading is done. 4 Trading activity needs co be very secure, Now let us come to the application that facilitates thie trading activity online. This is an existing applica book nny it Production and serving customers. We name it a Tradelive for further references in this book. Figure 1.1 is a detail view of this maintenance activity along with different tools used also showing whether the process is manual (human figure next to the stage) or automated. Requirement Analysis 8 Design The development/maintenance team of this ap pres. However, following are the unit stops end user plication has recently adopted Agile as its delivery constituting an iteration of functionality delivery to 4, Requirement Analysis: Business users provide functional and development team in a certain format. : Designers outline the structure of the program and document it to a certain extent. # Developers write code as per design, perform peer code review followed by unit testing, Testing: There are four types of testing cycles, in most of the cases, before software is ready for pro- duction deployment ~ integration testing, functional testing, user aceptance testing and performance testing. Multiple teams perform these testing cycles. The operational team ensures that the software is pack- aged and deployed on a test environment for testing, 5, Deployment: TradeLive application is packaged and deployed on production environments and monitored. non-functional requirements to the ae All these steps are followed as applicable to the fianctional piece being delivered as per product backlog for the sprint Mos common interpretation of DevOps is Dev + Ops, that is, Development + Operation. DevOps eo There are multiple challenges in this application development life cycle which affect the business and stakeholders both. Let us list a few key challenges here which have been collated through discussion with the development team and business users: ~ As highly manual release/deployment process starts post market closure on Frid ‘eum works late night and over the weekend to accomplish it. Quality is a concern at most of the stages in the development process. There are multiple environments, and it takes a very long time to provision thos oS after making changes to TradeLive. This requires advance planning and ‘yele due to delays in provisioning activity. ; . Taceaiiy of requirement chrough the development lfcycle sage i ed + Repeatability of testing cycles is very costly. : As the team is new to agile methodology, there are concerns that it will | There are many steps involving manual actions leading to dependency on individuals an the Asliverables, and agile benefits may not be realized fully. ‘en ct eS use Maen pea ey ae aad does not have the insight of deliverable quality due to un {RSS 2 many more challenges in the delivery DevOps Tools from Practitioners Viewpoint BENEFITS OF FIXING APPLICATION DEVELOPMENT CHALLENGES) One might wonder why are we talking about problems that the development process has? For this, we need to see the benefits of solving these problems in actual business context. The application is to facilitate a business function; hence, itis imperative that by fixing these problems, we must gain business benefits in ‘one or other way, directly or indirectly, What are the key business benefits? 1. Time to Market: How quickly can a change reach end users? When end users or business users semand certain functionality change in the application, how fast can IT turn it around and deliver it £0 production. In today’s highly competitive world, where business keeps on changing every minute, time to market has gained huge importance. In addition, IT inffastructure is the backbone of many services; hence, the ability of IT systems to align with the business creates a huge impact. 2 Implementation Cost: Can we reduce the implementation cost? Cost has been a key player in software delivery: There has always been a focus to reduce the development cost of certain business function. Cost reduction can occur by actually reducing the development effort or by reducing the waste in the development process. 3. Quality: Docs it improve and become predictable? There are two important parameters: actual deliv= cred quality of software product and end quality predictability in early stages of development. Fixing application development challenges must improve product quality.Along with improvement in prod- uct quality, it should make product quality predictable, that is, the delivery team should be able to quantify the quality of product in the early stages of development. EEE] vevors apoprion APPROACH THROUGH ASSESSMENT ai Now that we know there are challenges, what do we do next? We have a few problems reported, but there can be more issues. How can we find out all or most of the istues? The answer is — Experts cam tell by reviewing application, processes, tools, etc. This process of reviewing the application and related processes to identity the status of DevOps, challenges in unit processes and coming up with the recomeneadae tion is called assessment, to be precise maturity assessment. Assessment is Just the first step, but to address all the issues, we need a comprehensive methodology. In the following discussion, we detail this iterative approach end to end, that i, assessment to implementation methodology, There is 4 five-step process to identify and fix application challenges. These steps are intuitive (Figure 1.2) 1. Assess to identify gaps. 2. Define solutions. 3. Implement solutions. 4. Measure benefits 5. Feedback benefits and challenges, ‘ext iteration we implement abit more about these is Figure 1.2 Application assessment proces. 2. Define solutions to the issues as per priority. Definition phase also comprises solutions as per organization's DevOps strategy. 3, Implement solutions in a step-by-step manner by taking maximum benefit, low impact recommen- dations first. 4. Measure benefits along with solution implementation so that the team can understand the success of the strategy. 5. Feedback benefits and challenges to refine solutions to achieve the right results in fewer iterations. ‘twill not be wise to think that all the challenges in our application will 4set of tools to automate development steps. Definitely, there will be an ‘ider additional dimensions to realize actual business benefits because so Process involving multiple factors in addition to tools. Below are the thre k into, in an integrated way, to solve the issues: - BEE ors tom rato vewpint af 3. Architecture and Technology: It is aligning architecture and technology to allow ace development. Solution must evaluate architecture from automation point of views Ifthe architecture is not capable of adapting to parallel development, automation and tool, then it needs refinement 49 that it does not become a hurdle in accelerated delivery. Most ofthe transformations will fll in these three categories. Hence, DevOps assessment requires experts with knowledge of these dimensions. Addressing mere one area will only lead to limited benefit In addition, its sometimes hard to find one person fulfilling expertise required forall three heterogencous dimensions, Hence, more than one person is part of not only the assessment but also recommendation or solution phase However, if we look at the development proces end to end, it is rarely the case that there is zero tool wsage at any given time. In most of the projects, the common scene is ~ there are tools in use but in bits and pieces to automate certain development tasks. There are process changes being brought in place to accelerate delivery: There are initiatives to change the architecture and technology to align market and application needs. Hence, the development world is always with one or other form of DevOps. Though wwe have been thinking of faster development of features since ages, itis just that now we are taking a focused and organized approach to solving this problem under an umbrella called DevOps STRUCTURE OF THE BOOK 4 Now that we have understood the application case and challenges in it, we can proceed to solve these. However, before diving into the tools, we would start with the basic concepts of DevOps These inclide the theoretical concepts and terminologies one must know for a better understanding Of the technology solutions. It is followed by the details of the assessment method and the maturity model. This basically gives us details of action items to address, Next, we design an approach to map {hs application to DevOps journey. We can build our solution around these challenges. Finally, we come to the tools aspect, where we go through the details of technology we use to solve identified problems. CONCLUSION aa Challenges in application development may span across process, technology, and architecture, affect cost of product development, quality of product, and time to market. which of the following is a busine: j BL Time to market 8s benefit of DevOps? Cost of implementation (Product quality p, Allof the above 3, In DevOps adoption through assessment, what i a A. Identify gaps in the current process » what is the significance of the step - Define? Propose a solution to gaps through process and technology ch (. Monitor benefits of solution implementation mee B. None of the above 4, What is time to market? A. Transportation time B Time required to deliver an application functionality to end wser G Sales time D. None of the above 5. Which of the following are DevOps solution dimensions? A. Process B. Tools and Technology G People D. All of the above ASSIGNMENT TO Drivers for Agile Adoption: Analyze 2 project where waterfall or any other process than Agile devel- opment is followed to identify reasons or drivers for Agile adoption. List these drivers against expected benefits. Agile Methodology and Iie) ex) y's fast world, IT organizations can offer better serv: y in market, by deliver ore effec ng change and services faster. This will give advantage to stomer over their competitors by reducing time to realize any new busines re quiremen in“time to market” is a primary goal in the fast changing business scenarios. To achic arket, conventional delivery methodologies and (manual) practices may not prove efficien erative to change both in order to bring agility in the entire delivery process. In addition ary to change the process used by delivery team along with underly process adoption tries to address the first part of this change or any client, the top concerns are timely and stable releases, addressing problems befor get impacted, etc. One of main reason behind such issues is the lack of coordination and collab between the development and operations teams. Both these teams have different goals, they work o: nt tools, and thus there exists something known as a wall of confusion between the cwo. If we are nchow able to break this wall, we could expect better results wherein the two teams work w ether on common goals, This is exactly what DevOps objective is. € to their customers, ar >mpetitive lar ng delivery EB crore AGILE - WATERFALL Before Agile ~ in waterfall method — value to the end customer was being delivered after testing phase. Traditionally, testing phase is towards the end of the project. Hence, end user used to get a view of mented requirement towards the end of the project: If there is a need to deliver a change in requirement project lifecycle, itis required to repeat the delivery cycle completely: Figure 2.1 during th depicts the waterfall methodology. Picts the waterfall methodology ca Depending on the current stage of project, in this scenario where the whole delivery cycle repeats, eases exponentially, Hence, in a traditional development project, waterfall method the cost of change zi Business requirements Hon Saha ie ek ihe passion: iscover —y Technical design Design What is the Cost of accomodating ‘hang a each stage? Figure 2.1 Waterfall methodology. DevOps Tools from Practitioners Viewpoint ossible to imagine running business Withong across few months. AGILE DEVELOPMENT 7 With Agile development becoming mainstream aver the lst decade, it has done a good job of address. ing problems with Waterfall Model. Agile processes improve collaboration amongst different teams involved. Iterative small development and delivery cycles spread development stages, such as analysis, design and testing across iterations making those 4 Continous process. This has also made it possible tg nature of development process allows end user to ssful delivery has also increased with Shippatie Change 1 Change 1 Discover Test Discover Test Discover mt) Cee) Comal Design Develop Design Develop Design RS — ia impeat Asile methodology aims to accelerart the overall product Deron 9 move the technology, manuel intervention DevOps comprises everything that x wired to reduce the g available to the end user, iv ea Figure 2.3 Dev plus Ops, Simply put, DevOps means considering software development and operations together — it is bringing of these two disciplines on same platform in order to streamline communication, cohesion and collaboration between the traditionally isolated developer and IT operations teams (Figure 2.3) DevOps aligns these two differently focused teams on one common goal with highlighted interdependence. DevOps introduces collaboration amongst teams. With collaboration, teams share responsibility amongst them along with trust. It improves the teams’ cros-finctional working ability. The end goal of DevOps is to extend continuous development goal of Agile. DevOps fulfils this goal through continuous integration and continuous delivery. The business objective to improve software release frequency with desired quality and customer experience is ako fulfilled by introducing automation, configuration, test automation and automation in deployment processes. In fact, it improves customer experience with best delivery results. Figure 2.4 depicts the developments stages and activities Each lifecycle stage in Figure 2.4 involves specific activities to generate intermediate and final deliverable artefacts, Intermediate deliverables may be directly related to the end product, such as user stories, design documents, test cases or something required as a part of infrastructure to build the end Product, for example environments required to deploy developed product, source conttol set up to manage code files, etc, These activities can also be categorized as core activities mandatory to build Product as well as non-core activities such as additional activities required due to DeyOps, modern infrastructure — Cloud, tool usage, etc. "= Know concepr: continuous DEVELOPMENT inuous testing, continuous deployment, ete. This process is iterative and. ive of the complexity of the feature. [ 2 | DevOps Tools from Practitioner’ Viewpoint Bringing it all together Service virtualization Test automation Detect tracking Vv Continuous integration Artotact repositories Vuinerability scanners Requirements management Ee or en eee SRC ee ee eee Cette Figure 2.5 DevOps layers DevOps brings three key layers — people, process and products (Figure 2.5). It extends approach that amalgamates automation and toolchain, This approach improves monitoring and provisioning tools, agile process and DevOps collaboration. as ; DevOps aims to build a culture of collaboration amongst teams involved in delivery of software. This cultural shift is based on a shift in mindset with tighter integration of development teams with operations teams. It combines agile and automation to ensure continuous delivery and much more for teams to be innovative, efficient and to deliver higher value to the end customers. To achieve this, DevOps needs to break down the wall between development and operations teams. The benefits of DevOps are discussed as follows 1 Speed: Accelerated delivery allows businesses to align to changes in market and to grow more efficiently while driving business results by innovating faster for end customers. For example, adapting to micro: services for business lines demanding frequent changes will be further accelerated by implementing continuous delivery. reduction in time tomers. This also det ‘DevOps Tools from Practitioner's Viewpoint — need of faster delivery of changes, the quality of change ae be ensured. DevOps adoption makes delivery process repeatable, thereby making delivery more predictable by increasing probability of successful delivery. 4, Scale: Automation and optimized development plus del processes make it possible to scale the size of functional release, on demand. Agile and DevOps adoption ensures that increase in delivery and operational teams’ size happens without impacting the delivery quality and timelines. 5. Improved Collaboration: DevOps transforms cultural model of development and operations reams by integrating these teams to deliver changes collectively. These teams improve collaboration by understanding and sharing delivery responsibilities: Their independent workflows are also combined in Agile process with DevOps. This has A Continuous Planning Engingaring Yerion conte sie Poll oan 2 Commit ve ee Figure 2.7 7 Ci of Devops d quod may, s2u0yR»e14 Way sjoo| sdonag CHAPTER2 / Isietetnclay dons IM 2.6.1 Continuous Planning Continuous planning process makes businesses capable of planning delivery of new features con tinuously. New business requirements, changes requited in existing fumctionality, prioritized defects, ete could be planned to deliver continuously. This prioritized requirement “backlog” works as an input to implementation team, which can deliver it continuously. Agile process and matured DevOps pipelines can build this capability within organizations. Requirement management tools, matured communication model and effective feedback loop make it possible to establish continuous planning process. 2.6.2 Continuous Development Continuous development is an umbrella to recognize end-to-end delivery of software covering con- tinuous integration, continuous testing, continuous deployment, and continuous monitoring. When a requirement’ feature is planned for delivery, continuous development capability makes sure that it is deliv- cred to end users seamlessly through an established development process. This continuous development process is repeatable for all the features irrespective of type of feature (requirement, configuration, etc) and complexity level. Continuous development through a development pipeline ensures automation and streamlining of activities and processés required to deliver software. 2.6.3 Continuous Integration Integration of unit steps in software coding stage is done through continuous integration. This comprises steps the developer performs from assignment of a feature to delivering finished implemented feature for testing activity. When a developer checks in code to SCM, continuous integration process performs quality checks through automated code reviews, unit testing, which is followed by generation of deliverable artefacts through compilation and packaging process. Orches- tration cools make it possible to integrate these code operations — getting code from SCM, compi- lation, code review, unit testing, and build. Teams can also schedule continuous integration to get periodic insight to code quality. Orchestration tools used in this process also allow teams to publish results on fancy dashboards. These reports and statuses can also be notified to different teams using email notification in orchestration tools. 2.6.4 Continuous Deployment Deployment of developed software artefacts on different environments is automated through continuous deployment. Ir is also called as release automation. It requires automation of environment provision ing, build and packaging of deployable software components, deployment related software services, Configurability and programmability of inft a code, builds continuous deployment capability. Continuous deplo ©perations teams to collaborate effectively so that the transfer of dey Development, Test (System Test, User Acceptance Test, Perforn Recovery environments are primary candidate for continuous dep 2.6.5 Continuous Testing Continuous testing (CT) is the process of executing automated Its goal isto obvain imme i DevOps Tool from Practitioner's Viewpoint Key Benefits 1. Quality at Speed: Continuous testing provides high-quality code at a faster speed. Release candidate cove i abvays ready with a complete cycle of testing. Test automation avoids human errors, 2. Shift Left approach: Continuous testing promotes test carlier and more often in the delivery lifecycle. Testing should not be an activity toward the end of the life cycle. Unit test, system test ing, user acceptance testing, service virtualization, regression testing, and performance testing should all be performed at an early stage ~ possibly as soon as the code is pushed to the develop- ment environment 3. Faster Release: New sofiware or change in software can quickly be delivered to the intended audience. It most suits to Agile and DevOps methodology where working software needs to deliver quickly 4. Collaboration: Continuous testing and continuous feedback improve collaboration between development team, testing team, product owner and customer. Increase in collaboration improves product quality. 5. Cost Efficient: Continuous testing helps in early detection of defects and hence it has less impact on schedule and cost.Test automation reduces human efforts on a repetitive task. Test automation helps in better capacity planning and delivery speed. & Reduce Risk and Increase Confidence: Continuous testing identifies the problem in the eatly Phase of delivery ~ almost immediate of development. It not only validates the component/piece of ode as an independent unit, but also its integration with rest of the application and other applications, that is, validation as a whole system, 2.6.6 Continuous Delivery and Monitoring Continuous delivery is delivery of any type of cl into production environments as soon as possible Continuous monitoring ensurcs applicati 02 application’s service to users and other appli toring focuses on production environment. Apy hange — functional, configuration changes, defect fixes ~ after completing all applicable processes. ‘on health is monitored continuously to keep a check ications, performance and security. Continuous moni- plication, software, and infrastructure are monitored 2.6.7 Continuous Feedback Continuous feedback is a process in which the feedbac ferent stakeholders and tools is given back to teams whe Application aspects include application performance, usee service quality, infrastructure performance, development p from different stakeholders such as end customers, op quickly feedback is captured and provided back to take con entinuous feedback process, It also determines the cost CHAPTER 2 / AcleMethedsiagy nd Devops EEE feedback. For example, if outage in one of the application process is not feedback to the concerned team in time, it can result in loss of millions of dollars per hour depending on criticality of applica tion function P® A DEVOPS AND CONTINUOUS TESTING Ic is necesary to understand how DevOps and continuous testing exist together. End-to-end DevOps pipeline has a mandatory step of test automation. Continuous testing in an Agile development environ- ment makes automation of testing mandatory. Manual continuous testing has its own limitations and cost overheads. Hence test automation through the implementation of different tools is the only solution. Following are the key points to consider 1, Test automation and automated testing is a key aspect of DevOps. 2. Continuous testing promotes test early, test faster, test often and automate. 3. Continuous delivery needs continuous testing. 4 Continuous testing is the linchpin between continuous integration and continuous delivery, CONTINUOUS TESTING IN TRADELIVE APPLICATION TradcLive application, problem case defined in Chapter 1, has multiple modules to test during cach release cycle. In addition, it requires integration with many in-house applications (e.g., identity ‘management, trade settlement application, confirmation application, billing application) and couple of external stock exchanges, (You can take your own application example/project involving similar complexity). Define continuous testing strategy for this scenario considering following points: How test automation will help to improve release frequency, quality, and reduce cost? ‘Which tools can be used to automate testing? Identify challenges in test automation, How will you address requirement of exchange availability for testing? To what extent test automation is achieved? | Identify benefits achieved by implementing continuous testing. ayewno 2.7.1 Reference Architecture with Cl Server In the reference architecture in Figure 2.8, CI~CD pipeline is shown with i Which enables to achieve continuous feedback at an carly stage. Test autor Yalidate codes at an early stage —as soon as code check-in into SCM (Softw happens. Testing cycle identifies and reports issues at an early stage. Figure ‘ure of continuous testing using various test automation tools and integratio Selenium, cucumber, and HP quality center can be used to aui automate performance testing involving herp requests. We are not goin: Continuous integration, and post-stage, that is deployment, in this referenc ‘im detail separately in Chapter 5, Orchestration and Chapter 8, Deployment Seay Sonaraubey ebrerey @ coverity erry Poised ee | Eo aa | 3 == Apuppet ep0n0n 150 zwaLavHD | | DevOps Too from Practitioners Viewpoint CHALLENGES WITH DEVOPS IMPLEMENTATION many challenges that the organization has to Ps tenets, Following are few key challenges that muse When an organization adapts to DevOps, ther come before the culture is fully aligned to DevOy addressed during this process 1. Culture Change: Along with tools and technology, the most important transformation that occur ig ip an onganzations and team’s work culture, This sone of the most dificult co transforms. Culeue ap abstract term resulting from aggregation of work behavior of team members or employees, Cultural change is a slow and long process requiring a lot of patience and endurance. The aim of the enterprise should be to introduce a collaborative culture and nurture it for effective DevOps adop- tion, Transparency and positive air in workplace are to be maintained by leaders in the organization, Employees with pro-DevOps culture should discuss/exhibit benefits of it to convince co-workers 2. Knitting the Silos Together: Most ofthe organizations face the challenge of silos and Sectors within ockets and brings all of them together to achieve a com around team pockets are not dissolved, when it requires handover of Proder across (cam, it increases cost and time required for the product. I is possible that the Enterprises must update their exis behind recent technologies demand re ako another challenge to be addressed, ‘Tool Turbulence: During DevOps journey, numerous too! wailable in the market team members. This makes them go for a vew tool oy che eae problem. improved features of took keep on attracting developers, leading to fh of took. Tools become center of the organization's delivery se Wapout long-term strategy and evaluation of tools, lads ts weal tools becomes dificult with a change in strategy and benef ony 2 well-analyzed took strategy and availabilty through library, and makes tool usage better, 5 Different Metrics: In « product development process differen) through different Parameters. When such teams are integrated int metrics start clashing with each other. In such a scena i A CHAPTER2 / Agile Methodology and DevOps 6 Resistance to Change: Most of the times, 0 there are workers in companies who unwelcome change, This is because of their comfort zones, preter red working styles, silos not opening up for other teams and so on. This leads to disturbances amongyt teams. tt also creates unhealthy and confising envison- ment within the organization. An organization cannot accept to bend in front of such elements, It is against che reforming strategies of organizations. Hence, technology, process atid cultural changes have to be pushed through the teams and zhrough internal resistance, Organizations find their own ways to overcome such resistances, 7, Process Challenges: Agile and DevOps culture docs not define strict rules to follow from process and tools implementation point of view, It allows teams and eventually team members to define their own processes, select their own tools within defined boundaries, and change those if they find limited benefits to overall delivery. Project goal is important and rigid; hence, everything else can be changed to meet those goals. Though this empowers the employees to be more innovative and ( be more responsible it can also lead to challenging circumstances due to confusion and disputes within teams. This happens due to the complex nature of software delivery involving many teams working together. MUST DO THINGS FOR DEVOPS 1, Find your DevOps Drivers A DevOps drivers is a resource, process or condition that will help us to focus for the continued success in IT Software development and IT operations activities along with supporting enterprise-IT activities such as Security and Data Management to provide effective outcome to an organization; What? DevOps does nor have a standard set of fixed practices. DevOps does not define measurement standards. DevOps has different forms in different organizations. I is not only about tools or technologies. Ie is all about people and mindsets. It should address the gaps between Dev and Ops and focus. Once you know Why, you can be better build the effective dri journey, . Why? ecceee It should help to get customer experience feedback early. Jt must find out the waste during software delivery and It must help to predict IT delivery. It must address changing habits of the customer. It must increase reliability and stability of IT operations, © It must help to change culture and mindsets, Stains r pe DevOps Too from Practitioner’ Viewpoint Why? How? Why? How? 4 Discover the Customer Journey © Have specialized IT practitioners in cach part of software development and hence among them. " Traditional software development practices, processes and tools over collaboration, Close loop communication where interactions are only on important milestones, Agile development (delivery) and often frustrated IT operations. The DevOps = Cloud vision. Remember, DevOps isn't the goal, so creating a culture is getting everyone headed in the same direction. © Measuring culture impact is difficult but increase in collaboration and communication that’s the culture of DevOps ‘© DevOps makes team autonomous and everyone responsible. © Start building quality into the development and deployment process. © Itis also important for the team to value feedback. Good at Coaching and Steer a Team in Right Direction DevOps changes the way team members relate to cach other. It doesn't happen overnight, ‘That’ why coaching in both Agile and DevOps ~ to help teams embrace changes in culture, | Practices, and tools that are essential to successful DevOps adoption, 1 * Those organizations that are trying to adapt fo agile and eventually to DevOpe need guidance in setting up DevOps right. ‘Motivate team members and help to remove team silos, Inspire reactiveness and innovation, Enable and enhance horizontal communication, Bring in a sense of responsibility. Make DevOps values more visible, Learn and implement new. concepts, Create Agile and DevOps coaches from existing experienced members from various (echnical and non-technical), i © Create a workshop where you can teach teams how to implement DevOps and them each week or so. ‘ aa Recognize and reward teams who reach to maturity as Place, Set some guidelines and outcome expectations * DevOps coaching should be uniform irrespective of t Following che customer’ journey to detect bottlenecks ¢ Tr agate of testing you perform and automation yo 17 operations, think of users first and you'll a 100s high quality - that’s going to make a customer har ’ Se -” iia) How? HAPTER? / nneigisne © Must define potential right DevOps strategy for the product. ¢ Do you have a you build it, you run it” philosophy? You must think as one team. A step-by-step process you could follow to come up your customer journey: Look at the “whole system” ~ product or service applications. © Look at phases of customer journey — from joining to 6 months period ~ and gather their thoughts, emotions, touchpoints, goals Listen, engage and learn from your IT Dev and Ops. © Get a coach to guide and help to refine it and set up right tools. Focus on people, but don’t forget convergence of process. 5. Follow Principles Every Day ; why? How? j For any enterprise embarking on a DevOps transformation, the journey can be daunting. ‘Where do you start? What early wins can you achieve to gain the much-needed early momen- tum? Defining the mission, objectives or even the framework for 2 DevOps transformation is easier said than done, © To support collaboration and communication across development, operations, security and business stakeholders. Enable a culture of collaborative learning is crucial. Adopt and embed DevOps culture. Avoid silo teams and close-loop communication. Learn to trust. To focus on bottlenecks and flow, ultimately reduce the waste in IT delivery. ‘Teams must build the principles around CLAMS — Culture, Lean, Automation, Measurement and Sharing team coined by Damon Edward. Here are a few examples: © Automate repetitive tasks. Everyone is responsible. Keep it simple, Integrate quick and often. Get continuous feedback. 6. Never Lose Your Inner Security ‘ 4 Adoption of DevOps practices introduces complications for i dardized security controls and presenting issues such as ¢: deployment and a breakdown in the traditional segregation how to think about making their product, services, applicatio Security in DevOps is no longer the domain of security ¢ Authorized and unauthorized software tools access controls. = Dev0ps Tool from Practitioners Viewpoint A d Ops work tracking systems. security work is in Dev ani ie J aetse sceurey nto the deployment pipeline and protect from malicious code + . il. ° . tories a Integrate preventive security controls into shared source code repositories and shared aa > development ieranian Secure your applications and integrate security into development iteration. ture the software supply chain and environment through automation, < wa a Integrate information security into production telemetry, eg monitoring and loging, 7. Fill Your Software Delivery with Right Tools No tool in the world will magically make your organization or team DevOps (or agile | tcan) compliant. Most developers have moved beyond understanding the business value i DevOps and on to how best to implement it. The former was easy to define, while the has been more difficult. * Collaborate on vision and design — Bridge gaps between people, process and tools during communication and feedback management. ‘The number and types of problem domains differ greatly from one problem domain to the new. Unwinding the complexity. Automation in monotonous activities that machine can do better than human, Understand the collaboration and shared tools strategy for the Dev, QA and infrastructure automation teams. Use agile Kanban project manage: with in the tooling, * Use tools to log metrics on both manual * Implement test automation, © Ensure continuous feedback why? ment for automation and DeyOps requests that can be. and automated processes. acceptance tests and test data provisioning tooling, between the teams and from tools. § Surround Yourself with Key Technologies and ‘Terminologies DevOps practices have more frequent deploys, which allows them to introduce new ‘more offen in a highly stable environment. But traditionally, applications are build in ughtly coupled and non-cloud environments, ‘To practice DevOps principles, it is to change applications landscape using new technologies . Help fo serve customers on omni-channels, $ Rapid cloud transformation and its adoption for scalab * Increase limited re-use is realized © Add operation agility in repeated © An exponential level of inefficiency that j ® Can bring scaling benefits to monolithic applications. DevOps isn't just about the new: Its about cleaning © Identifying legacy. a © Quarantine the slow movers, . oe iubinaa * Approach to refactoring to Microservices ~ Why? CHAPTER 2 /_ Agile Methodology and Devops eal Split frontend and backend Extract services | ¥ Stop making the monolith bigger TEST YOUR UNDERSTANDING 1. Which of the folle A. Speed B. Time to market Improved collaboration D. All of the above ng is a benefit of DevOps? 2. Which mindset is observed in teams with DevOps? ‘A. Waterfall delivery Process centric G Product D. None of above 3. What is shift left approach in continuous testing? A. Writing test cases before code 8. Introducing testing in early stages of development (Using tools in testing D. Requirement reprioritizing ASSIGNMENT TO STRENGTHEN YOUR UNDERSTANDING Assessment Questionnaire: Come up with a questionnaire to be used in assessment of an application to know challenges, technology, tools and processes followed. Output of this questionnaire should give insight to project DevOps maturity, and findings of this questionnaire will be an input to “Define” solutions. Map My App to DevOps Journey )evOps has become a mandatory strategy for almost all the projects. With Agile adoption, itis impera nat the project is going to get enabled for DevOps. There ate so many concepts, tools and prace; hence a common question that most of the organizations, projects and finally developer Whe we start?” If this question is not addressed correctly, it is very much possible that th gule to achieve the desired benefits and a mess will be created. Best understanding of this chapter can be achieved by applying principles and technique © t9 DevOps problem around you. One can select an application where the DevOps ired and follow the adoption journey defined below. It can be end-to-end DevOps adoption. If it 0 much for you, then select a lifecycle stage (eg., coding) and go through the methodology ssesment by coming up with your own assessment template, identify tools and define, and y implement tools to see actual benefits. Repeating this couple of times will give you a good under- ¢ to map an application to DevOps. You can try doing it for one lifecycle stage at 2 time initially then go for end-to-end development process In this chaps er, we will learn about the approach 4 project can take to enable the underlying applica ion for DevOps im a systematic way. So, what is this approach to start DevOps journey? As we call DevOps adoption a journey, we citerate that it is not a one-time activity, but a continuous crative process with the following steps (Figure 3.1) 1. Assessment of enterprise and project DevOps maturity. 2 Definition of DevOps solution. 3. Implementation of prioritized solution elements, 4. Measuring benefits of imple 5. Feedback to next iteration. ation. We will discuss these steps in this chapter. Application DovOps : adoption (seme Meee Nad Figure 3,1 DevOps adoption process. = En DevOps oc rom Practitioner’ Viewpoint a ERY assessment ssment. There are multiple m i explore ¢ first step, DevOps maturity assessment. We are going to explore details of the first step : ae available in the market for DevOps assessment, As our focus is project or application é ee assess thisscthod we discuss i 1g to limit the scope to project only. Maturity assessment of a portfolio he method we discuss is going to limit the se oF plications require Dy for example, how many app enter : ¢ will involve additional aspects to cover ra what isan enterprise tool strategy and framework, enablement capability, etc. Second is the type of projec meas tiking example of a support project, where the application is already in production and certaiy processes are in place A typical project maturity framework measures project maturity from DevOps aspects (process, People and culture, tools, measurements and reporting) at different unit activity levels to determine overall maturity. It tries to recognize the project DevOps capability in terms of Crawl, Walk, Ran and Sprint or equivalent levels measuring maturity in increasing order. Figure 3.2 shows the DevOpy maturity levels The method used to gather assessment data is brain-storming with different stakeholders, either individually or in groups. This activity is also iterative by presenting an understanding to stakeholder and refining it farther “typical assessment is pecformed with a predefined questionnaire investigating the maturity of applic 10% and <50% | automated systom testing 5 ‘Automation initiated: >10% and <50% peat ae : : | Partially automated security testing Figure 3.3 Sample assessment report BEEME °e:0p fxs om patton viewpoint ctc., area maturity jy Similarly in testing and test data management, deployment, monitoring, etc a¥ea maturity jy obtained by interviewing different stakeholders, going through the steps followed By | am actly doing the activities, and reviewing effectiveness of DevOps adoption at consti ty level, > KNOW A CONCEPT: DEVOPS CULTURE DevOps culture is an abstract term used to represent concerned team’s ee a pele can comprise the openness to evaluate new tools and agility in adapting those tools, overall readiness (mentally) to automate processes, collaboration amongst different involved groups (¢.g., developers, business users, operations), and finally rigidity or resistance to change from current DevOps state, Biss ES 9 DEFINITION Next is the Definition phase, to define the solution, to identify action items to reach mostly to next matu- nity level (Figure 3.4). Action items are also prioritized to achieve maximum benefits quickly. Though the key input to definition phase is provided by the findings from the assessment phase, there is another ey inpat that governs definition ~ Enterprise Strategy. Most of the organizations have either complete or evolving enterprise DevOy Ps strategy. It needs to be adapted as it is or after customizing according to the project needs, es CHAPTERS / Map My Aoptoer0pssoumey ES Enterprise DevOps strategy comprises set of guidelines for indivi Guidelines enforce DevOps governance by controling what individual tcams are implementing is according to long-term DevOps vision of organization. Guidelines can restrict took to be used by providing list of approved tools. Tool usage cari also be controlled by asking teams to use only offerings by central team, Foe example, organizations that offer central Jira instance to projects get project-specific set ‘up according to enterprise Jira configuration, Matured Enterprise DevOps strategy goes further to offer a ready NevOps platform with a reusable pipeline, when projects adhere to certain technology stack and project structure. In this case, when projects check-in project code to source control in a pre-defined structure with a specifica- sion, the enterprise DevOps pipeline is executed to perform all quality checks, builds and deployments with monitoring as per demand in specification/contract defined. Enterprise DevOps strategy is also enriched by accepting contributions from individual projects, which implement something (tool or process) that is nor already implemented in the organization. Thus, the enterprise DevOps repository is continuously evolving to accept better and new. Definition phase is to define blue print of projects DevOps strategy to achieve the desired objectives. It proposes roadmap to address the issues identified in assessment stage. Definition phase tries to come up with action item for each element in assessment report. ‘dual projects to adopt DevOps. EE] imecementation This phase is actually realizing the application of DevOps strategy. The application development landscape changes with the implementation of action items identified in the definition phase. Tool implementation automates many manual operations in the development lifecycle. Policies and gover~ nance ensure efficient implementation of tools and processes. In real project scenario, though the strat- egy defines a complete solution for iteration, project rarely goes for “big bang” way of implementing all recommendations; instead a phased approach is adopted to achieve the desired maturity, Figure 3.5 shows the implementation cycle, In Figure 3.5, we can see the changes in development process introduced by adopting DevOps in individual states, primarily through tools usage. Team uses JIRA to track user stories and design informa tions along with development traceability. This JIRA adoption is governed by enterprise Jira strategy. In coding phase, the team automates code quality by automating code review through SonarQube and unit testing using JUnit. Jenkins is used to orchestrate continuous integration. Build proces and con ‘unuous integration are also automated. Similarly, different tools and changes in processes automate testing and deployment activities ",1 want so In short, after the implementation step, we can sec there is considerab “ses by using different tools, Team should start getting benefits of this tool | 40 | DevOps Tool from Practitioners Viewpoint i | i ! Pie CCHAPTER3./ Map My App to DevOps Joumey | 3. | MEASURE AND FEEDBACK nce the project has implemented and integrated DevOps to align project to digital transformation aqrategy, it is necessary to measure the benefits of tools and process implementation. DevOps framework ses not define specific KPIs or metries to track success, Hence it becomes more important to create cpetrcs that tie DevOps strategy to business benefits, Metrics can be fitted into the following categories — Eficiency and Effectiveness, Velocity, Quality and Culture. Based on changes introduced, the team can densify relevant KPIs. Here are a few sample KPIs: 1, Release Frequency: Can the project deploy more frequently than earlier? Tool usage and process changes reduce the development activity time, 2. Deployment Time: Introduction of tools in the deployment process shortens the duration of the deployment activity. 3, Failure Rate: What is the frequency of change failure? 4, Mean Time to Recovery: How quickly can an application recover from failure? In addition to this, many dashboards are provided by tools which can be used to monitor individual tools parameters, Projects can also measure defect injection rate, productivity, resting time, etc. to measure DevOps success. For example, when the team automates testing using Selenium, it will reduce the testing cycle time and improve the product quality. This will subsequently reduce the cost of testing and it wall also make product quality predictable. 2 KNOW A CONCEPT: RELEASE FREQUENCY Release fiequency represents production release frequency, that is, after how many days/weeks/ months, the team releases a feature or fix to production. Many factors govern this release frequency. In case of Internet-based selling sites, the release frequency can be as high has few hundred release per day, whereas in case of a banking application, the release frequency can be 3 to 6 months. Automation, development methodology and application modularity are few more parameters controlling release in projects. Similarly introduction of continuous integration, automated code quality checks will improve devel- oper productivity, Teams can see visible positive change in average number of story points delivered per Agile Sprint by same team, ibsequie These reals can be used to define a strategy for next DevOps refinement in subsequene erations TEST YOUR UNDERSTANDING 1. Which of the following is the correct sequence of DevOps A. Walk, Crawl, Run, Sprint 8 Crawl, Walk, Run, Sprint G Crawl, Walk, Sprint, Run Crawl, Sprint, Walk, Run DevOps Tools from Practitioner’ Viewpoint 2, Which of the following is not an influencer in solution definition? A. Feedback from the previous iteration B. Organization strategy G Assessment findings D. None of above 3. Which phase comes after feedback? A. Assess B. Measure G Implement D. Define ay Solution Definition: Define solution for an application to fix minimum three known issues to come up Yat minimum one tool-based strategy and one process change strategy. Also define che expected benefis of this strategy. There are many tools, both free and propriet ary, available to accomplish a task while defining DevOps pipeline. The question is, which one to choose? Each tool needs to be integrated with one or more other tools in pre- and post-activities. In addition, the tool output needs to be provided to the dashboard to consolidate execution progress of different unit steps and report. Will there be challenges in the integra tion of these tools? Will these tools provide data suitable to present a combined view with other tools? Will took: from different vendors result in constraints during the upgrade? A DevOps architect has to find answers to so many such questions Scenario: Can I get all the tools from only one vendor? Icis not always necessary that there will be seamless integration in different tools from different vendors Most of the times, DevOps architects have to live with certain limitations arising due to multi-vendor tools. This results in limited collaboration amongst the teams using these tools. This also results in addi- tional efforts due to the following additional factors that need to be addressed: 1. Non-standard integration options amongst tools, such as plugin-based integration, xml or text file- based data integration, support for only batch mode integration, ctc. Formatting of data from different tools to show on the dashboard. Functional limitation due to non-availability of the same feature in different took. Thorough feature analysis before upgrading a tool from an established ecosystem to the latest version. This 2 3. 4. Scenario resulted in two alternatives to reduce the impact of multi-vendor tools in one eco-system: | Usage of tools fiom one vendor only. 2 Use of akernate tool which is capable of integrating tools from different providers, \n this chapter, we explore toolsets off for uni functions ir inte ed by vendors to address challenges in the usage of multiple tools 1 a DevOps pipeline. Atlassian and Phabricator provide multiple tools, which can be Stated seamlessly into respective tool stack, to provide a uniform pipeline, EXH aruassian roots DevOps is an ecos collaboration acy collaboration, in tools and addin, system of multiple tools and not an all-in-one solution Toss teams. Atlassian tools are one such example. Atlas mprove quality and accelerate releases. Atlassian is cot 1 New tools to their toolset. IR EE 9: hon rae vegan Atlassian tools are widely used in small as well as large organizations. All these took are accepted because of the features offered, Tools like JIRA, Confluence and HipChat are very wig because these tools allow stakeholders to centralize information with these integrated took, Ths he teams to work effectively in a distributed em ament. ©} KNOW A concer: pisrmIBuTED ENVIRONMENT EY Distributed environment in DevOps context is used to represent distribution of development activiy onto separate development environments, sometimes at different locations, with different - ment speeds, etc. Delivery of unitied software by these distributed teams becomes dl " Communication, collaboration and consolidation of work needs extra management effort. ay Similarly tools ike Bamboo and Bitbucket are very rich tools in continuous integration, Bamboo an orchestrate continuous integration segment of DevOps pipeline with Bitbucket as a source, code manage. ment tool. Figure 4.1 shows the Atlassian toolset. Adsian tools require licenses to be purchased separately. Licensing aspect needs separate evaluation in the sclection process. SRIIRA Service Dask system, more suitable for managing workflows for CHAPTER A / voisus RE fi for the solution like HR. onboarding or simple workflows. All of these flavors are availabl vou service and on-premises implementations, finds 2, Of the two collaboration tools, Confluence and HipChat, Confluence gives the capability to its or sen colaboratvely share, view and discuss meeting notes, share file, ete,t0 individual in a team multiple groups. It can work as a knowledge repository, wiki, within the project and even at the th prise level. Its web application interface improves accessibility and is one of the key reasons behind ‘wide use, Many organizations are using confluence as a knowledge hub for projects and enterprises. 44. Quick communication within teams can be done using HipChat, Atlassian’ real-time messaging tool. This is a replacement of AIM, GoogkeTalk, Skype. 4, Birbucket is one of Atlassian’s development tools used to create and maintain code repositories and codes in them, It is both cloud code manager and on-premises code manager (previously known as Stash). Bitbucket also improves collaboration amongst teams through source code management. It can scale as the teamn size grows 5, Bamboo is another development tool for Continuous Integration, Deployment, and Release Management. It can also integrate with JIRA. 6 Crucible is a flexible code review tool! that lets the team collaborate in code review activity by letting to discuss and identify defects across, Crucible claims to offer a flexible review workflow. ‘There are many other tools, in addition to Atlassian tools, in proprietary and open-source space offering the same functionality with some variance, 4.1.1 Key Features 1. All the tools provide cross-platform support, ability to integrate a custom tool or third-party service using a standard integration mechanism like REST APIs. These abilities are over the ability of seamless integration capability with internal tools. 2, All Adassian tools can be integrated using Application Links, These tools share knowledge with one another, JIRA provides rich planning features, complete transparency to the team’s work, extensive reporting functionality, etc Bitbucket,a Git solution, makes it easy to collaborate with the team, iterate often, and ship higher quality code. It provides an easy interface for viewing changes in repositories with unified or side-by-side diffs (term used to show differences between two versions of a code file). The GIT Lange File Storage in Bitbucker stores large assets for game development, Bitbucket Pipelines feature enables development to deployment for fast feedback. Crucible, code review tool, helps catch major defects, improve code architecture, or discuss desired «,‘mProvements with formal, standard or quick code reviews. . Bamboo facilitates early catching of quality issues by static cade analysis, security code analysis, performance code analysis, unit testing and quality gates configured in continuous integration (Cl) builds, Deployment projects in Bamboo automate release is cen environment. 5 ‘2 a 4 Content Collaboration Software 2

You might also like