Continuous Delivery Workshop



Similar documents
Continuous Delivery. Martin Fowler, Jez Humble YOW! Brisbane, 5 December Wednesday, December 7, 11

Continuous Delivery. Jez Humble, ThoughtWorks #continuousdelivery DevOpsDays, Hamburg

How To Improve Quality

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Delivery. Alejandro Ruiz

The Agile Maturity Model. Applied to Building and Releasing Software.

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

An Introduction to Continuous Delivery

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

The Deployment Production Line

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Delivery: implementation considerations. Léon Hagenaars-Keus Edwin van Dillen

Collaborative DevOps Learn the magic of Continuous Delivery. Saurabh Agarwal Product Engineering, DevOps Solutions

Continuous Delivery Software-Deployments ohne graue Haare. 3. April 2012 Corsin Decurtins

Why continuous delivery needs devops, and why devops needs infrastructure-as-code. Sriram 25-Oct-2012

Continuous delivery Release software on-demand, not on Red Alert

Continuous Delivery of Software

DevOps for the Mainframe

Continuous Integration (CI)

Urbancode Deploy Overview

Agile Release Management: Towards Frequent, Low Risk Releases. by Jez Humble, Build and Release Principal, ThoughtWorks Studios.

Increasing frequency of releases to every week down from quarterly major releases

The Rationale For Continuous Delivery

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Shifting Enterprise Development into the Fast Lane

DevOps - en inngang til den Digtale Transformasjon Rapidly Deliver Exceptional Software

Fundamentals of Continuous Integration

Agile Delivery Framework Automation & Deployment With Puppet

The Importance of Continuous Integration for Quality Assurance Teams

Continuous Application Delivery From concept to reality. Carsten Lentz Sr. Solution strategist

Agile Requirements And Testing For Continuous Software Delivery

Continuous Integration and Delivery at NSIDC

Challenging ALM: What really matters when picking tools? Share this Ebook

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Continuous Integration: Put it at the heart of your development

Continuous Delivery. Ariel Alonso, IPC

Continuous integration End of the big bang integration era

The Continuous Delivery Tool Chain: So Many Choices!

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Agile Architecture & Design

Use Scrum + Continuous Delivery to build the right thing

Continuous Integration and Deployment Modern Technique's

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Agile Testing. What Students Learn

WHITEPAPER. Solving database deployments with Database Lifecycle Management

Best Practices for Performance Testing Mobile Apps

Meister Going Beyond Maven

DevOps Stack. Reid Holmes. Chris Parnin:

Continuous Integration

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Agile Journeys. The CareerBuilder Story

The Benefits of Deployment Automation

Software Continuous Integration & Delivery

The Benefits of Utilizing a Repository Manager

Continuous integration for databases using Redgate tools

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Key Benefits of Microsoft Visual Studio Team System

How to Optimize Automated Testing with Everyone's Favorite Butler

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

Software Development Best Practices

<Insert Picture Here> Increasing the Effectiveness and Efficiency of SOA through Governance

About Me Developer Workspaces Enable Agile Teams

Continuous Delivery by example.net

Optimizing Your Software Process

DevOps: Development Challenges and New Approaches

Continuous integration for databases using Red Gate tools

Best Practices in Release and Deployment Management

Building Value with Continuous Integration

Cloud Services Catalog with Epsilon

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Leveraging the full potential of automation

Continuous integration for databases using

Getting Ready for Recruiting & Retention Solutions

Best Practices for Deploying Managed Self-Service Analytics and Why Tableau and QlikView Fall Short

Test Automation: A Project Management Perspective

Building Value with Continuous Integration

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Global Software Change Management for PVCS Version Manager

Orchestrated. Release Management. Gain insight and control, eliminate ineffective handoffs, and automate application deployments

Application Release Automation (ARA) Vs. Continuous Delivery

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

Kevin Lee Technical Consultant As part of a normal software build and release process

"IT Governance and Compliance in an Agile World"

Migration Scenario: Migrating Batch Processes to the AWS Cloud

The Deployment Pipeline

How to Get the Most out of Your CI/CD Workflow Using Automated Testing

Automation and Virtualization, the pillars of Continuous Testing

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Continuous Delivery Benefits, Best Practices and Practical Advice

Accelerate Software Delivery

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

HOW TO GET THE MOST OUT OF YOUR CI/CD WORKFLOW USING AUTOMATED TESTING

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Continuous Integration, Delivery and Deployment. Eero Laukkanen T Software Testing and Quality Assurance P

Bridging the Gap Between Acceptance Criteria and Definition of Done

Transcription:

Continuous Delivery Workshop deployment pipelines Workshop materials created by Jez Humble, Martin Fowler, Tom Sulston, & Neal Ford

deployment pipelines tests, synergistic practices, incremental deployment data & infrastructure

Who are You? Manager DBA BA Operations Developer UX QA

Agile Transformation Manager DBA BA Operations Developer UX QA

Continuous Delivery Manager DBA BA Operations Developer UX QA

It s a people problem.

The Dangers of Silos The Tragedy of the Commons

Release Cadence

Release Cadence Mary Poppendieck Tom Poppendieck How long would it take your organization to deploy a change that involves just one single line of code? devopsy.com/blog/2013/08/16/devops-kata-single-line-of-code/ Can you do this on a repeatable, reliable basis?

Continuous Delivery Metrics lead time the time between the initiation and completion of a production process. cycle time the total elapsed time to move a unit of work from the beginning to the end of a physical process

Continuous Integration Integration early and often. Everyone checks into trunk at least once a day.

1200 Bring the pain forward. 900 eager vs. late pain 600 300 0 time

Continuous Integration Integration early and often. Everyone checks into trunk at least once a day.

Integration Integration early and often. Everyone checks into trunk at least once a day. Continuous Deployment Deploy as the final stage of continuous integration.

Integration Integration early and often. Everyone checks into trunk at least once a day. Deployment Deploy as the final stage of continuous integration. Continuous Delivery Software is always in a deployable state.

User Interface (Web, Swing) Business Analysts QA Domain Logic (Model) Application Server / Spring Persistance (OR Mapper) Firewall External Stuff Storage Application External Endpoints Mainframe Computer Modern software is complex!

Agile 101 "Agile" team Analysis + Design Development Centralized QA Integration + QA IT Operations Release and operation Customer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"

Continuous Delivery "Agile" team Analysis + Design Development Centralized QA Integration + QA IT Operations Release and operation Customer Testing + Showcase Iteration 0 1 2 3 4 The "last mile" Customer Delivery team Constant flow of new features into production always business needs > operational constraints production ready

Potential Hindrances Lead time is too long Last mile is too painful Poor collaboration

Identify & remove friction

Continuous Integration Fast, automated feedback on the correctness of your application every time there is a change to code

Deployment Pipeline Fast, automated feedback on the production readiness of your application every time there is a change to code, infrastructure, or configuration production readiness 22

Deployment Pipelines

Prerequisites continuous integration comprehensive configuration management excellent automated testing at all levels

commit Stage Commit stage Version control source code commit tests build scripts Compile Unit test Assemble Code analysis deployable binaries test reports metadata Artifact repository Run against each check-in (continual integration) Starts building a release candidate If it fails, fix it immediately

Pipeline Construction commit functional test user acceptance test staging artifact respository artifact respository artifact respository artifact respository increasing confidence in production readiness Pipeline stages = feedback opportunities

UAT Stage Version control Artifact repository acceptance tests deployment scripts configuration data binaries Acceptance test stage Configure environment Deploy and smoke test Acceptance test Tear down test reports metadata Artifact repository End-to-end tests in production-like environment Triggered when upstream stage passes First DevOps-centric build 27

Manual Stage Version control Artifact repository deployment scripts configuration data binaries Later stages Configure environment Deploy and smoke test Tear down on request test reports metadata Artifact repository UAT, staging, integration, production, Push versus Pull model Deployments self-serviced through pushbutton process 28

Source code Env & app config Version control Env & app config Developers See code metrics and test failures Testers Self-service deployments UAT Configure environment Deploy binaries Smoke test Commit stage Compile Commit tests Assemble Code analysis Acceptance stage Configure environment Deploy binaries Smoke test Acceptance tests Capacity stage Configure environment Deploy binaries Smoke test Run capacity tests reports binaries metadata binaries reports metadata Operations perform push-button releases binaries Production Configure environment Deploy binaries Smoke test reports metadata Artifact repository 29

Machinery continuous integration ++ www.thoughtworks.com/products/go-continuous-delivery

www.go.cd

Increasing confidence in build's production readiness Environments become more production-like Commit stage Compile Unit test Analysis Build installers Acceptance test stage User acceptance testing Performance testing Production Faster feedback

chicken counting servers 0 1

Increasing confidence in build's production readiness Environments become more production-like Commit stage Compile Unit test Analysis Build installers Acceptance test stage User acceptance testing Performance testing Production Faster feedback

pipeline anti-patterns Increasing confidence in build's production readiness insufficient parallelization Environments become more production-like Commit stage Compile Unit test Analysis Build installers Acceptance test stage User acceptance testing Performance testing Production Faster feedback ideal time: < 10 minutes

pipeline anti-patterns Increasing confidence in build's production readiness insufficient parallelization Environments become more production-like Commit stage Compile Unit test Analysis Build installers Acceptance test stage User acceptance testing Performance testing Production Mingle: Faster feedback 3,282 test / 53 computers = ~1 hour

insufficient parallelization heuristic: make your pipeline wide, not long reduce the number of stages as much as possible parallelize each stage as much as you can create more stages if necessary to optimize feedback

pipeline anti-patterns inflexible workflow pipeline fans out as soon as it makes sense to do so

The Deming Cycle

The Scientific Method hypothesize experiment evaluate

principles of software delivery

principles automate almost everything build, deploy, test, release manual testing, approvals automatable high-value, humans only

principles keep everything you need to build, deploy, test, & release in version control requirements documents test scripts automated test cases network configuration scripts technical documentation database creation, upgrade, downgrade, and initialization scripts application stack configuration scripts libraries deployment scripts tool chains

When You Hire a New Developer

Infrastructure Consistency boxen.github.com

If it hurts... pain... do it more often bring the pain forward time principles

principles Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place build quality W. Edwards Deming in

continuous improvement Deming cycle principles

practices only build your binaries once

practices deploy the same way to every environment

practices smoke test your deployments

practices keep your environments similar

if anything fails, stop the line practices

Metrics & Monitoring

the driver for agile in the enterprise 21st century agility (business + IT) selling continuous delivery visibility risk mitigation responsiveness (cycle time)

nealford.com @neal4d