Jez Humble, David Farley

Total Page:16

File Type:pdf, Size:1020Kb

Jez Humble, David Farley ptg Praise for Continuous Delivery “If you need to deploy software more frequently, this book is for you. Applying it will help you reduce risk, eliminate tedious work, and increase confidence. I’ll be using the principles and practices here on all my current projects.” —Kent Beck, Three Rivers Institute “Whether or not your software development team already understands that continuous integration is every bit as necessary as source code control, this is required reading. This book is unique in tying the whole development and delivery process together, providing a philosophy and principles, not just techniques and tools. The authors make topics from test automation to automated deployment accessible to a wide audience. Everyone on a development team, including programmers, testers, system administrators, DBAs, and managers, needs to read this book.” —Lisa Crispin, co-author of Agile Testing “For many organizations Continuous Delivery isn’t just a deployment methodology, it’s critical to doing business. This book shows you how to make Continuous Delivery an effective reality in your environment.” —James Turnbull, author of Pulling Strings with Puppet “A clear, precise, well-written book that gives readers an idea of what to expect for the release process. ptg The authors give a step-by-step account of expectations and hurdles for software deployment. This book is a necessity for any software engineer’s library.” —Leyna Cotran, Institute for Software Research, University of California, Irvine “Humble and Farley illustrates what makes fast-growing web applications successful. Continuous deployment and delivery has gone from controversial to commonplace and this book covers it excel- lently. It’s truly the intersection of development and operations on many levels, and these guys nailed it.” —John Allspaw, VP Technical Operations, Etsy.com and author of The Art of Capacity Planning and Web Operations “If you are in the business of building and delivering a software-based service, you would be well served to internalize the concepts that are so clearly explained in Continuous Delivery. But going beyond just the concepts, Humble and Farley provide an excellent playbook for rapidly and reliably delivering change.” —Damon Edwards, President of DTO Solutions and co-editor of dev2ops.org “I believe that anyone who deals with software releases would be able to pick up this book, go to any chapter and quickly get valuable information; or read the book from cover to cover and be able to streamline their build and deploy process in a way that makes sense for their organization. In my opinion, this is an essential handbook for building, deploying, testing, and releasing software.” —Sarah Edrie, Director of Quality Engineering, Harvard Business School “Continuous Delivery is the logical next step after Continuous Integration for any modern software team. This book takes the admittedly ambitous goal of constantly delivering valuable software to customers, and makes it achievable through a set of clear, effective principles and practices.” —Rob Sanheim, Principal at Relevance, Inc. This page intentionally left blank ptg Continuous Delivery ptg Continuous Delivery ptg Jez Humble and David Farley Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382–3419 [email protected] For sales outside the United States please contact: International Sales [email protected] Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data: ptg Humble, Jez. Continuous delivery : reliable software releases through build, test, and deployment automation / Jez Humble, David Farley. p. cm. Includes bibliographical references and index. ISBN 978-0-321-60191-9 (hardback : alk. paper) 1. Computer software--Development. 2. Computer software--Reliability. 3. Computer software--Testing. I. Farley, David, 1959- II. Title. QA76.76.D47H843 2010 005.1--dc22 2010022186 Copyright © 2011 Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to: Pearson Education, Inc Rights and Contracts Department 501 Boylston Street, Suite 900 Boston, MA 02116 Fax (617) 671 3447 ISBN-13: 978–0–321–60191–9 ISBN-10: 0–321–60191–2 Text printed in the United States on recycled paper at RR Donnelley in Crawfordsville, Indiana. First printing August 2010 This book is dedicated to my dad, who has always given me his unconditional love and support. —Jez This book is dedicated to my dad, who always showed me the right direction. —Dave ptg This page intentionally left blank ptg Contents Foreword . ................................................................................................. xxi Preface . ................................................................................................... xxiii Acknowledgments . .................................................................................. xxxi About the Authors . ............................................................................... xxxiii ptg Part I: Foundations . .................................................................................. 1 Chapter 1: The Problem of Delivering Software . ................................. 3 Introduction . ................................................................................ 3 Some Common Release Antipatterns . .......................................... 4 Antipattern: Deploying Software Manually . .................................... 5 Antipattern: Deploying to a Production-like Environment Only after Development Is Complete ............................................................. 7 Antipattern: Manual Configuration Management of Production Environments . ............................................................................. 9 Can We Do Better? . ................................................................... 10 How Do We Achieve Our Goal? . ................................................. 11 EveryTheDoes FeedbackDelivery ThisChange Process Team MustShould Scale? MustBe Trigger Received .Receive............................................................ the as Feedback Soon as ProcessPossibleand Then . ........................ ......................Act on It . ...... 13141516 What Are the Benefits? . ................................................................ 17 Empowering Teams . ................................................................... 17 Reducing Errors . ........................................................................ 18 Lowering Stress . ........................................................................ 20 Deployment Flexibility . ............................................................... 21 Practice Makes Perfect .................................................................. 22 ix x Contents Contents The Release Candidate . ................................................................ 22 PrinciplesEvery Check-in of Software Leads Deliveryto a Potential . ................................................... Release . ................................. 2423 CreateAutomate a Repeatable, Almost Everything Reliable Process. ...................................................... for Releasing Software . .......... 2425 Keep Everything in Version Control . ............................................ 26 IfBuild It Hurts, Quality Do In It . More........................................................................ Frequently, and Bring the Pain Forward . ..... 2627 Done Means Released . ................................................................ 27 EverybodyContinuous Is Improvement Responsible .for........................................................... the Delivery Process . ........................ 28 Summary . .................................................................................... 29 Chapter 2: Configuration Management . .............................................. 31 Introduction . ................................................................................ 31 Using Version Control . ................................................................ 32 KeepCheck Absolutely In Regularly Everything to
Recommended publications
  • View Corporate and Individual Cultures in a Setting Or of Brands and Trademarks, There Is Also a Sharp Irrevocable Openness [26]
    Teixeira and Karsten Journal of Internet Services and Applications (2019) 10:7 Journal of Internet Services https://doi.org/10.1186/s13174-019-0105-z and Applications RESEARCH Open Access Managing to release early, often and on time in the OpenStack software ecosystem José Apolinário Teixeira* and Helena Karsten Abstract The dictum of “Release early, release often.” by Eric Raymond as the Linux modus operandi highlights the importance of release management in open source software development. However, there are very few empirical studies addressing release management in this context. It is already known that most open source software communities adopt either a feature-based or time-based release strategy. Both have their own advantages and disadvantages that are also context-specific. Recent research reports that many prominent open source software projects have overcome a number of recurrent problems by moving from feature-based to time-based release strategies. In this longitudinal case study, we address the release management practices of OpenStack, a large scale open source project developing cloud computing technologies. We discuss how the release management practices of OpenStack have evolved in terms of chosen strategy and timeframes with close attention to processes and tools. We discuss the number of practical and managerial issues related to release management within the context of large and complex software ecosystems. Our findings also reveal that multiple release management cycles can co-exist in large and complex software
    [Show full text]
  • Magic Quadrant for Application Release Automation
    Magic Quadrant for Application Release Automation Published: 27 September 2017 ID: G00315074 Analyst(s): Colin Fletcher, Laurie F. Wurster The ARA market is rapidly evolving in response to growing enterprise requirements to both scale DevOps initiatives and improve release management agility across multiple cultures, processes and generations of technology. This research helps I&O leaders make better-informed decisions. Strategic Planning Assumption By 2020, 50% of global enterprises will have implemented at least one application release automation solution, up from less than 15% today. Market Definition/Description Application release automation (ARA) tools provide a combination of automation, environment modeling and release coordination capabilities to simultaneously improve the quality and the velocity of application releases. ARA tools enable best practices in moving application-related artifacts, applications, configurations and even data together across the application life cycle process. These tools are a key part of enabling the DevOps goal of achieving continuous delivery with large numbers of rapid, small releases. Approximately seven years old, the ARA solution market reached an estimated $228.2 million in 2016, up 31.4% from $173.6 million in 2015. The market is continues to be expected to grow at an estimated 20% compound annual growth rate (CAGR) through 2020. Magic Quadrant Figure 1. Magic Quadrant for Application Release Automation Source: Gartner (September 2017) Vendor Strengths and Cautions Arcad Software Founded in 1992, Arcad Software is a privately held company headquartered in Chavanod, France. The company was started by its founder to deliver automation-oriented solutions supporting the Page 2 of 28 Gartner, Inc. | G00315074 IBM i (introduced as AS/400, then later renamed eServer iSeries) platform.
    [Show full text]
  • Edgex: Edge Replication for Web Applications
    EdgeX: Edge Replication for Web Applications by Hemant Saxena A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Mathematics in Computer Science Waterloo, Ontario, Canada, 2015 c Hemant Saxena 2015 I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. ii Abstract Global web applications face the problem of high network latency due to their need to communicate with distant data centers. Many applications use edge networks for caching images, CSS, javascript, and other static content in order to avoid some of this network latency. However, for updates and for anything other than static content, communication with the data center is still required, and can dominate application request latencies. One way to address this problem is to push more of the web application, as well the database on which it depends, from the remote data center towards the edge of the network. This thesis presents preliminary work in this direction. Specifically, it presents an edge-aware dynamic data replication architecture for relational database systems supporting web applications. The objective is to allow dynamic content to be served from the edge of the network, with low latency. iii Acknowledgements I am extremely grateful to my supervisor Ken Salem for his guidance, support, and dedication throughout this thesis and during my graduate studies. His training and enthu- siasm towards addressing challenging problems has had a positive effect in my life.
    [Show full text]
  • Get a Grip on Hosting Costs for Your High Volume Website
    Get a Grip on Hosting Costs for Your High Volume Website Improve performance, scalability and availability, while reducing business risk and costs with the Drupal Open Source social publishing platform and Acquia Hosting services Executive Summary You’ve built a fantastic Drupal website. Traffic growth charts are encouraging. Conversion rates are above industry averages. Lead numbers and revenue from the web site are growing faster than forecast. And yet the pressure remains high to reduce costs and improve the profitability of operations wherever possible in your company. Though you have met or exceeded your commitments to the business, the CEO and the Board of Directors still want more. Perhaps your budget cycle is about to start up, or your hosting contract is up for renewal. You need to ensure you have a grip on the total cost of hosting your website, and to recommend alternative approaches which will cut those costs while improving service levels (performance, scalability and availability). MSKU#: 0023 2 Get a Grip on Hosting Costs for Your High Volume Website You know that success on the web doesn’t come without cost. But there are significant opportunities to dramatically reduce those costs. You can deliver dynamic, highly interactive “social” websites, and handle volumes of millions of page views per month and up. And you can do so with high performance, 100% availability, at a fraction of the cost most companies are paying today. There are significant infrastructure costs associated with hosting a high volume website. Whether those costs are carried internally through hardware and staff in your datacenter, or through outsourced managed hosting solutions – the numbers add up quickly.
    [Show full text]
  • Why Release Management Is Required
    Why Release Management Is Required Crapulent Enoch rush that wooden-headedness tailors tactually and accompt colloquially. Angelo often peeved dismally when insolvable Ichabod jollies fearlessly and devaluing her prescripts. Stated Shaun still anatomising: dishevelled and whelked Derron benefits quite correspondingly but legitimatise her past inurbanely. The decision as to when and what about release is therefore crucial economic driver that requires careful consideration. In your customers. Service is required actions that require the requirement specification of preparing the delay? What is a live environment that happen in strategies and support of releases should be overridden by parameterizing configuration better. Amendments required to documentation to reflect changes in procedures or policy cannot be chance to. Release Management in DevOps Software Testing Help. A Small track Guide to ITIL Release Management The. Is required by priority of existing services across multiple interrelated actions. Devops Has Agile Killed Release Management Logzio. The resources and managed delivery milestones and move a flexible schedule release management tools in advance your salary. Why no release management is important Quora. Ant tool to require simple process requires some troubleshooting or fitted to. The why is crucial to require tracking and requires planning happen. Release is why is still require simple? Functional requirements and quality metrics are stringent and helpful software. Cision, consider building his own idea of reporters and editors manually. Wrangling a forecast The Role of Release Manager CMCrossroads. We required to require scheduling must be used for is why is intended purpose of our products are very different streams of release requires careful consideration. To gain a positive behavior the why is release management team goes through successful? Plan for each step in the business as otherwise the planning and helping others go hand over everything is why release management required member of living may result, which helps anyone trying to see.
    [Show full text]
  • VA Handbook 6102 Washington, DC 20420 Transmittal Sheet July 15, 2008
    Department of Veterans Affairs VA Handbook 6102 Washington, DC 20420 Transmittal Sheet July 15, 2008 INTERNET/INTRANET SERVICES 1. REASON FOR ISSUE: This Handbook revises Department-wide procedures for the establishment and administration of Department of Veterans Affairs (VA) Internet/Intranet sites, and sites operating on behalf of VA, and non-VA entities contracted to operate for VA, and/or related services. This Handbook implements the policies contained in VA Directive 6102, Internet/Intranet Services. 2. SUMMARY OF CONTENTS/MAJOR CHANGES: This Handbook provides procedures relating to the establishment and administration of a VA Internet and/or Intranet site, and/or site operating on behalf of VA, and/or related service; it also provides procedures for publishing VA information on the World Wide Web (www). It defines the organizational responsibilities for all Web activities that are related to posting, editing, maintaining, and removing files to or from the Internet and Intranet. Important modifications to this handbook are the enhanced emphases on privacy-related issues, security requirements, accessibility requirements, the utilization of Web applications and tools for enhanced performance, and new technologies developed for use with Web browsers, including but not limited to, all applications, content management systems, audio and/or video broadcasts, blogs, and other types of browser-based social media. It addresses the establishment of the VA Chief Information Officer’s (CIO’s) Office of Enterprise Development (OED), Resource Management Information Technology Development (RMIT (005Q)), as the entity which will have enforcement authority over all VA Web activities. This Handbook also establishes that failure to comply with the requirements could result in serious consequences, including the immediate removal of Web pages and/or VA Web sites from publication for serious breaches of security, privacy or other significant failure(s), or removal of Web pages or Web sites within 30 days as determined by the responsible administrations.
    [Show full text]
  • Software Service Innovation: an Action Research Into Release Cycle Management
    Georgia State University ScholarWorks @ Georgia State University Business Administration Dissertations Programs in Business Administration Spring 4-15-2014 Software Service Innovation: An Action Research into Release Cycle Management Neda Barqawi GSU Follow this and additional works at: https://scholarworks.gsu.edu/bus_admin_diss Recommended Citation Barqawi, Neda, "Software Service Innovation: An Action Research into Release Cycle Management." Dissertation, Georgia State University, 2014. https://scholarworks.gsu.edu/bus_admin_diss/34 This Dissertation is brought to you for free and open access by the Programs in Business Administration at ScholarWorks @ Georgia State University. It has been accepted for inclusion in Business Administration Dissertations by an authorized administrator of ScholarWorks @ Georgia State University. For more information, please contact [email protected]. Software Service Innovation: An Action Research into Release Cycle Management By Neda A. Barqawi A Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree Of Executive Doctorate in Business In the Robinson College of Business Of Georgia State University GEORGIA STATE UNIVERSITY ROBINSON COLLEGE OF BUSINESS 2014 PERMISSION TO BORROW In presenting this dissertation as a partial fulfillment of the requirements for an advanced degree from Georgia State University, I agree that the Library of the University shall make it available for inspection and circulation in accordance with its regulations governing materials of this type. I agree that permission to quote from, to copy from, or publish this dissertation may be granted by the author or, in his/her absence, the professor under whose direction it was written or, in his absence, by the Dean of the Robinson College of Business. Such quoting, copying, or publishing must be solely for the scholarly purposes and does not involve potential financial gain.
    [Show full text]
  • Continuous Delivery
    DZONE RESEARCH PRESENTS 2014 GUIDE TO CONTINUOUS DELIVERY BROUGHT TO YOU IN PARTNERSHIP WITH dzone.com/research/continuousdelivery © DZONE, INC. 2014 WELCOME TABLE OF CONTENTS Dear Reader, SUMMARY & HIGHLIGHTS 3 In recent years, we have grown accustomed to a KEY RESEARCH FINDINGS 4 constant stream of information that has fueled our news feeds, flooded our inboxes, and triggered INTRODUCING: CONTINUOUS DELIVERY constant notifications... and in all of the noise, BY STEVE SMITH 6 something has been lost. Clarity, concision, and relevance have become innocent bystanders in an CONTINUOUS DELIVERY PITFALLS age of information overload. While it is true the BY J. PauL REED 10 task of gathering information has become easier, finding the right information, when and where you THE CONTINUOUS DELIVERY need it, has become increasingly complex and, at TOOLCHAIN times, overwhelming. BY MattHEW SKELtoN 14 The guide you hold in your hands (or on your CONTINUOUS DELIVERY VISUALIZED 16 device) is a vital part of DZone’s fight against this growing trend. We recognize that as a technology INFRASTRUCTURE AS CODE: WHEN professional, having actionable knowledge at AUTOMATION ISN’t ENOUGH 22 your fingertips is a necessity. Your business BY MitcH PRONSCHINSKE challenges will not be put on hold while you try to identify the right questions to ask and sort CONTINUOUS DELIVERY MATURITY CHECKLIST 24 through endless information. In publishing our 2014 Guide to Continuous Delivery, we have worked SOLUTION DIRECTORY 25 hard to curate and aggregate a wealth of useful topic knowledge and insight into a concise and informative publication. While this is only our second publication of this CREDITS nature, we have come a long way so far and we have big plans for the future.
    [Show full text]
  • Application of Ranganathan's Laws to the Web
    Webology, Volume 1, Number 2, December, 2004 Home Table of Contents Titles & Subject Index Authors Index Application of Ranganathan's Laws to the Web Alireza Noruzi Department of Information Science, University of Tehran, Iran Received November 5, 2004; Accepted December 3, 2004 Abstract This paper analyzes the Web and raises a significant question: "Does the Web save the time of the users?" This question is analyzed in the context of Five Laws of the Web. What do these laws mean? The laws are meant to be elemental, to convey a deep understanding and capture the essential meaning of the World Wide Web. These laws may seem simplistic, but in fact they express a simple, crystal-clear vision of what the Web ought to be. Moreover, we intend to echo the simplicity of Ranganathan's Five Laws of Library Science which inspired them. Keywords World Wide Web, Ranganathan's laws, Five Laws of Library Science Introduction The World Wide Web is an Internet system that distributes graphical, hyperlinked information, based on the hypertext transfer protocol (HTTP). The Web is the global hypertext system providing access to documents written in a script called Hypertext Markup Language (HTML) that allows its contents to be interlinked, locally and remotely. The Web was designed in 1989 by Tim Berners-Lee at the European Organization for Nuclear Research (CERN) in Geneva (Noruzi, 2004). We live in exciting times. The Web, whose history spans a mere dozen years, will surely figure amongst the most influential and important technologies of this new century. The information revolution not only supplies the technological horsepower that drives the Web, but fuels an unprecedented demand for storing, organizing, disseminating, and accessing information.
    [Show full text]
  • WEBOPS - WEB OPERATIONS Embracing Website Evolution
    WEBOPS - WEB OPERATIONS Embracing Website Evolution 1 WEBOPS Embracing Website Evolution WebOps WebOps is turning website maintenance upside down. When we think of maintenance, we think of security and updating modules/plugins. When you combine WebOps and maintenance, you get much more! We’re talking from a Capability Maturity Model (CMM) where the aim is to improve the existing software development process. It includes improving graphics and design, upgrading code as new technology is introduced, and adding new features as your audience becomes more sophisticated and customer demands change and evolve, where the aim is to improve the existing software development process. WebOps is a system where one team manages the deployment, monitoring, and overall website operations. It creates a more unified, goal-driven approach to website management and allows for quicker adaptation to market changes, audience feedback, and business growth. Web Operations is an essential aspect of any business. It encompasses the tasks that lead to ongoing iteration. These ongoing iterations allow your business to respond faster to feedback, changing markets, and technology, thus enabling you to provide the best experience for your customers. CMM - WebOps - What you can do with Ongoing Maintenance 2 THE GOAL The goal of WebOps is to avoid having to rebuild your website from scratch every few years – which can be costly and time-consuming, and in truth, may not be necessary for most businesses. By creating a development roadmap and doing ongoing iterations, companies can do smaller updates that positively impact their business. There are five main reasons why WebOps is so crucial for any business: 1.
    [Show full text]
  • Going Beyond Continuous Integration Qcon Beijing Alex
    CI++ Going Beyond Continuous Integration QCon Beijing Alex Papadimoulis @apapadimoulis • Software Disaster Stories • Interviews Gone Bad • Bad Code • Funny Error Messages • And sometimes… serious content! • The day job • BuildMaster – release management & automation – continuous delivery platform My 3 Bullet Point Résumé • Been in software for a while • Worked on a bunch of different systems • Worked at a bunch of different places Continuous Integration? What is CI? Continuous Integration “Integration” Code Component Integration Testing 1. Get the Code 2. Build the Code 3. Test the Code “Continuous” Scheduled Triggered Automation Why does CI work? Small Changes = Less Risk One Last Thought on CI Axes of Improvement Thorough Thorough Scope Textbook Continuous Integration • Daily Commits • Rollback Failed Commits • Multi-stage Builds • Clone Production Automated Validation & Testing • Static Analysis • Unit Testing • Code Coverage Static Analysis Unit Testing Code Coverage “There’s no excuse for not having 100% code coverage” “There’s no excuse for not having 100% code coverage” My Carpenter Shelves? Shelves A True Craftsman Thorough Thorough Scope Quality Code != Good Software Integration testing Get Latest Compile Static Analysis Unit Testing Code Coverage … All Testing Functional Acceptance Quality Staging Testing Testing Testing Testing Software Development • Project Management • Build Management • Requirements Analysis • • Product Management • Environments • Release Management • Approvals/Sign-offs • Source Control • Configuration
    [Show full text]
  • Automating Build, Test, and Release with Buildbot
    Automating Build, Test, and Release with Buildbot Dustin J. Mitchell Mozilla, Inc. Email: [email protected] Tom Prince Email: [email protected] Abstract—Buildbot is a mature framework for building con- to support a variety of deployments. Schedulers react to new tinuous integration systems which supports parallel execution of data from change sources, external events, or triggers based jobs across multiple platforms, flexible integration with version- on clock time (e.g., for a nightly build), and add new build control systems, extensive status reporting, and more. Beyond the capabilities it shares with similar tools, Buildbot has a number requests to the queue. of unique strengths and capabilities, some of them particu- Each build request comes with a set of source stamps larly geared toward release processes. This paper summarizes identifying the code from each codebase used for a build. A Buildbot’s structure, contrasts the framework with related tools, source stamp represents a particular revision and branch in a describes some advanced configurations, and highlights ongoing source code repository. Build requests also specify a builder improvements to the framework.1 that should perform the task and a set of properties, arbitrary I. INTRODUCTION key-value pairs giving further detail about the requested build. Buildbot is a continuous integration (CI) framework which Each builder defines the steps to take in executing a particular has been in use for well over 10 years[13]. While it began type of build. Once the request is selected for execution, the as a simple build-and-test tool, it has grown into an advanced steps are performed sequentially.
    [Show full text]