DevOps Textbook
DevOps Textbook
,1 wantso 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 ! PieCCHAPTER3./ 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, RunDevOps 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 forCHAPTER 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