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



Similar documents
ACCELERATE DEVOPS USING OPENSHIFT PAAS

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

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

Agile Delivery Framework Automation & Deployment With Puppet

The Rationale For Continuous Delivery

Continuous Delivery Workshop

DevOps. Happiest People Happiest Customers

What Is the Cloud?

Continuous Integration. CSC 440: Software Engineering Slide #1

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

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

Use Scrum + Continuous Delivery to build the right thing

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

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

DevOps for the Mainframe

The Continuous Delivery Effect

18/09/2015. DevOps. Prof. Filippo Lanubile. Outline. Definitions Collaboration in DevOps Automation in DevOps. Prof.

Continuous integration for databases using Red Gate tools

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

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

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

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

How To Improve Quality

Continuous Delivery of Software

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Establish a Continuous Delivery Pipeline: IBM UrbanCode Deploy

SQL Server Virtualization 101. David Klee, Group Principal and Practice Lead. SQL PASS Virtualization VC,

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Delivery by example.net

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

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

Keys to Continuous Delivery Success. Mark Warren Product Director Perforce Software

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

Continuous integration for databases using Redgate tools

About Me Developer Workspaces Enable Agile Teams

The Virtualization Practice

HP DevOps by Design. Your Readiness for Continuous Innovation Rony Van Hove/ April 2 nd, HP Software: Apps meet Ops 2015

DevOps: Development Challenges and New Approaches

The Value of Adopting Agile & CI for OBIEE

The Benefits of Deployment Automation

Modern Web development and operations practices. Grig Gheorghiu VP Tech Operations Nasty Gal

Continuous Delivery: Bridging Quality Between Development and Customers

Planning and Administering Windows Server 2008 Servers

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

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

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

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

- Solution Spotlight ACCELERATING APPLICATION DEPLOYMENT WITH DEVOPS

Continuous integration for databases using

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

TOP 7 THINGS Every Executive Should Know About Cloud Computing EXECUTIVE BRIEF

Beyond Logging and Monitoring. New Techniques for Solving J2EE Application Problems in Production Environments. David Kadouch BMC Software

An Introduction to Continuous Delivery

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

An introduction to the benefits of Application Lifecycle Management

Software Configuration Management Best Practices for Continuous Integration

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

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

Streamlining Patch Testing and Deployment

Agility via Software Engineering Practices

NIH PROJECT MANAGEMENT COMMUNITY THE DEVOPS EFFECT DONNA KNAPP ... educate & inspire ITSM Academy

Software Continuous Integration & Delivery

Considerations for Adopting PaaS (Platform as a Service)

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Distributed Agile Development in the Cloud

Transitioning Towards Continuous Delivery in the B2B Domain: A Case Study

Making Leaders Successful Every Day Forrester Research, Inc. Reproduction Prohibited

WHITEPAPER. Solving database deployments with Database Lifecycle Management

Continuous Integration Optimizing Your Release Management Process

How To Build A High Performance Datacenter With Vmware Vsphere

Service OnBoarding: A Process Approach for Uniting ITIL and DevOps. Bill Cunningham

DevOps. Production Operations - The Last Mile of a DevOps Strategy

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

Managing and Maintaining Windows Server 2008 Servers (6430) Course length: 5 days

From the Monolith to Microservices: Evolving Your Architecture to Scale. Randy linkedin.com/in/randyshoup

A Sumo Logic White Paper. Harnessing Continuous Intelligence to Enable the Modern DevOps Team

AUTHOR: REVISION BY: ADS Lead/Manager ESYS Windows OSA

About me - Joel Montvelisky

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

Successful PaaS and CI in the Cloud

Cost effective methods of test environment management. Prabhu Meruga Director - Solution Engineering 16 th July SCQAA Irvine, CA

Deploying a Service into the Cloud. Michael Eichenberger CEO stepping stone GmbH Open Cloud Day 16 th of June 2015

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software

Best Practices in Release and Deployment Management

SMART Solutions for Active Directory Migrations

Urbancode Deploy Overview

Crossing the DevOps Chasm

Bridge Development and Operations for faster delivery of applications

"IT Governance and Compliance in an Agile World"

Agile, Continuous Delivery, devops. Friend or Foe???

Continuous Delivery Benefits, Best Practices and Practical Advice

CARMEN DEARDO DEVOPS TECHNOLOGY LEADER, NATIONWIDE INSURANCE

DevOps for CA Plex Automated Testing

2011 Forrester Research, Inc. Reproduction Prohibited

Bridging Development and Operations: The Secret of Streamlining Release Management

Migration from SharePoint 2007 to SharePoint 2010

MetaOption Cloud Services

An enterprise- grade cloud management platform that enables on- demand, self- service IT operating models for Global 2000 enterprises

Achieving Continuous Integration with Drupal

Transcription:

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

Some numbers 4 15 deployments per year bank, insurance company, government, transport authority deployments per day social network, Web 2.0, Google Mail, Flickr, Facebook Netcetera 2

Some numbers On the left Traditional application from something like a bank, an insurance company, a government agency, a transport authority you name it. On the right One of those new fancy social network, Web 2.0-ish application. Think Facebook, Google Mail, Flickr, Both are serious applications with serious business value. Netcetera 3

Some numbers Both applications need a high up-time. Deployments to the production environment are risky. Both companies try to reduce the risk of deployments. Two completely different approaches to do that: "Banks" try to reduce the risk and effort for deployments by reducing the number of deployments. The "social networking" site tries to reduce the risk of deployments by making much, much smaller deployments but a lot of them. Netcetera 4

Some numbers The questions now are: a) Which organization is right? b) Where in this range are you? c) Where in this range should you be? That's what I want to talk about today. That and why moving toward the right side might be the better choice for the future. Netcetera 5

Deployment Installation of a software release on a target environment Replacement of existing software releases Data migration System reconfiguration Netcetera 6

Deployment Complexity Data migration Multiple components Synchronized deployments Dependencies Netcetera 7

Deployment Risks Server not starting Out of disk space Database migration failure Configuration typos Communication failure Version mismatch Bad Performance Tuning issues Deployment Time Wrong dependency version Missing tools or libraries Missing certificates Wrong access rights Netcetera 8

Cost of a Deployment Complexity Risks Staffing Time, On-Call Duty Off-Hour Work Down-Time Stability Netcetera 9

Our goals (yours might be different) Improve Quality Fewer errors, less (unexpected) down-time, less stress. Standardization Different applications should deploy in a similar way. Makes it easier for the operations and the development teams. Faster Deployments Less down-time, smaller need for off-hour deployments. Netcetera 10

Software Delivery Pipeline EIS / Metrics test-int test-uat prod check-in build deploy deploy unit testing deploy integration testing performance testing dev dev SCM Repo qa user acceptance security review CSO ops Netcetera 11

Software Delivery Pipeline The Software Delivery Pipeline is the combined set of processes, procedures and tools that you use to bring code from the development environment into production. Of course you would make the pipeline even wider by including requirements engineering etc. but for the context of this talk, we will start with code. Netcetera 12

Software Delivery Pipeline Builds Propagate through the Pipeline Successful completion of a step triggers the next steps. Errors interrupt the Pipeline In case of an error, the pipeline processing is interrupted. Expensive steps are only done if the previous steps worked For example (manual) User Testing is only done on builds that passed the automated tests. Some Pipeline steps might require manual triggering Deployment to uat or prod is probably still triggered manually Netcetera 13

Software Delivery Pipeline A few things that you should notice right here: Everybody has a Software Delivery Pipeline. You might not have thought about it yet, it might be automated or manual, very simple or complex, but you have a pipeline. Whether you want it or not, whether you manage it or not. Your pipeline might look differently. Depends on the project, the customer, the business domain, the degree of maturity, Netcetera 14

Software Delivery Pipeline Coming back to our risk and cost analysis, we can identify some problem areas: Deployments are probably not tested Deployments are done manually So again, the knee-jerk reaction would be to try to reduce the number of deployments. They are expensive, risky and mean a lot of stress for the development team, the customer and the operations people. However, there are very similar issues on the left side of the diagram. We have some risky and expensive things there too (building, unit testing, deploying, integration testing, ). But the approach there is not too do it less frequently, but to automate it and do it more often. The underlying principle that we see there is Netcetera 15

If it hurts, do it often. Netcetera 16

Software Delivery Pipeline EIS / Metrics test-int test-uat prod check-in build deploy deploy unit testing deploy integration testing performance testing dev dev SCM Repo qa user acceptance security review CSO ops Netcetera 17

Continuous Integration What people did on the left side was to automate the pipeline steps and run them automatically and very frequently. Automation improves the quality by making the steps reproducible, predictable, verifiable, repeatable, This is essentially known as Continuous Integration. A lot of companies already do this. But the automation often ends after the run of the integration tests and the creation of the build artifacts. One way of looking at Continuous Delivery is to extend the principles from Continuous Integration and bring them further down the pipeline to the right side. Netcetera 18

Continuous Delivery Automation of Software Delivery Pipeline Automation of the Deployment Automated Triggering (Continuous Execution) Automated Testing / Verification Netcetera 19

Continuous Delivery Automation Automation of the delivery pipeline and the deployment process to the various environments. This includes deploying code, running database migrations, configuration, restarting, Automated Triggering (Continuous Execution) Deployments (and subsequent steps) are triggered automatically, usually by upstream pipeline steps. Automated Testing / Verification Deployments are tested and verified by automated tests. Netcetera 20

Automation of the Deployment Process $ deploy <application> <version> <environment> Deployment was successful $ deploy <application> <version> <environment> Deployment failed, rolled back to old version Netcetera 21

Anatomy of a Deployment Notify the running application that a deployment is happing Set up a maintenance page Stop the running application Install the new application version Run a database migration Start the new application version Reconfigure the entry server Switch off the maintenance page Netcetera 22

Anatomy of a Deployment Consists of multiple consecutive steps Steps are reusable for different deployments Steps are reusable for different applications Might vary from version to version Might depend on the version that is currently installed Netcetera 23

Anatomy of a Deployment Step Verify the pre-conditions Do something Validate the post-conditions Netcetera 24

Pre-Conditions Encoding of the assumptions of a deployment step. Used to verify that the deployment step could actually work. Make sure we do not attempt a deployment step, if the assumptions are not met. Netcetera 25

Verification Verification that a deployment step worked. Verification that a deployment step had the desired effect. Makes sure that we detect problems as early as possible in the deployment process. Netcetera 26

Error Handling and Rollbacks Ability to roll back at any time Detecting errors Automated Rollbacks Manual Rollbacks Netcetera 27

Error Handling and Rollbacks Ability to roll back at any time Back up the preexisting state of the system Try to make the deployment non-destructive Detecting errors Deployment process has to be able to detect errors Automated Rollbacks Very desirable But also very complex Has to be tested (continuously) Netcetera 28

Manual Rollback It's just a workaround, but often a viable option Probability of failing deployments is relatively small We are testing the deployment continuously after all. Automated deployment process provides operations people with the necessary tools and artifacts to roll back easily Backups Non-destructive deployments Netcetera 29

Data Migration Data migration is a tricky thing Slow Complex Error-prone Stop-the-World Automation and continuous testing helps More frequent and therefore smaller deployments help Netcetera 30

Data Migration Patterns On-the-fly migration Read-Only availability Storage Layer abstraction NoSQL storage layer Netcetera 31

Data Migration Patterns On-the-fly migration Application can deal with multiple versions of the database Data migration is done on-the-fly (batch job or touch-and-go) Read-Only availability Database is read-only as long as the migration is on-going Storage Layer abstraction Encapsulation of the storage layer NoSQL storage layer Less stringent requirements on schema compliance Netcetera 32

Deployment Testing Deployments are tested continuously Continuous Testing environment Continuously, triggered automatically Pre-Production environment Regularly, triggered manually "Same" configuration as the production environment "Same" state as the production environment Netcetera 33

Software Delivery Pipeline EIS / Metrics test-int test-uat prod check-in build deploy deploy unit testing deploy integration testing performance testing dev dev SCM Repo qa user acceptance security review CSO ops Netcetera 34

How do we get there? It's a process Continuous delivery is not a binary thing. Continuous improvement of the maturity. Netcetera 35

Forcing Teams Just force the teams to do continuous delivery Let them figure out how to do it Bad idea! Netcetera 36

Better Way Provide Teams with Tools and Support Make it easy to implement continuous delivery Iterate Do not try to solve everything in the first go Iterate and implement small steps Follow the pipeline down-stream Netcetera 37

Standardization Good way of leveraging common requirements Provide building blocks for the implementation Common deployment steps Architecture, design and implementation patterns Best practices and guidelines Make it easy for teams to follow the standards Make it possible (but not too easy) to extend the standards Netcetera 38

Software Delivery Pipeline EIS / Metrics test-int test-uat prod check-in build deploy deploy unit testing deploy integration testing performance testing dev dev SCM Repo qa user acceptance security review CSO ops Netcetera 39

Abstractions for Runtime Environment Common abstractions for deployment steps Allow to abstract different runtime environments OS versions and application server versions Virtualization, Private Cloud, Public Cloud Netcetera 40

Added Values for Deployments Collect data about deployments Verify compliance with SLAs Access Control for deployments Notify stakeholders on success/failure of a deployment Configure monitoring system for deployments Netcetera 41

Continuous Delivery and Agile Methodologies Agile Perfect match Waterfall Not really a match, but valuable anyway Automation and automated tests Continuous testing and verification Short release and deployment cycles Short feedback loop Continuous Testing of Deployments Automation of very complex processes Delivery of hot-fixes etc. Netcetera 42

Continuous Delivery Software Delivery Pipeline Automation Continuation of Continuous Integration Continuous Builds, Integration, Testing Deployment, Migration Deployment Testing Smaller and faster deployments Reduction of Deployment Risks Quality Improvement Faster Deployments Down-Time minimalization Shorter time-to-production Less stressful deployments Potential for more frequent deployments Netcetera 43

Continuous Delivery EIS / Metrics test-int test-uat prod check-in build deploy deploy unit testing deploy integration testing performance testing dev dev SCM Repo qa user acceptance security review CSO ops Netcetera 44

Further Reading Continuous Delivery Jez Humble, David Farley Literally the book on "Continuous Delivery". Netcetera 45

Further "Reading" Continuous Delivery (Talk by Jez Humble, DevOps Day 2012) http://www.infoq.com/presentations/continuous-delivery Interview with Martin Fowler and Jez Humble on Continuous Delivery http://www.infoq.com/interviews/jez-humble-martin-fowler-cd Continuous Delivery (Blog by Jez Humble) http://continuousdelivery.com/ Netcetera 46

Contact Corsin Decurtins corsin.decurtins@netcetera.com +41 44 247 70 70 Netcetera 47