The Evolution of Agile - Continuous Delivery - Extending Agile out to Production, Ifor Evans 25th January 2012

0 %
100 %
Information about The Evolution of Agile - Continuous Delivery - Extending Agile out to...
Technology

Published on February 6, 2012

Author: burnssheehan

Source: slideshare.net

Description

Burns Sheehan held a highly successful Agile event, "The Evolution of Agile" on Januray 25th 2012. View the presentation given by on of the speakers, Ifor Evans "The Evolution of Agile - Continuous Delivery - Extending Agile out to Production".

[email_address] 020 3206 1900

Continuous Delivery Ifor Evans Head of Platform Development, Betfair Continuous Delivery

First published by Jez Humble and David Farley from ThoughtWorks in 2010 Where did CD come from?

First published by Jez Humble and David Farley from ThoughtWorks in 2010

Based on Agile principles Iterative Development Cross functional teams Automated unit (TDD) & functional testing (QA Testing) Continuous Integration Based on Agile principles

Iterative Development

Cross functional teams

Automated unit (TDD) & functional testing (QA Testing)

Continuous Integration

What is CD? “ A set of practices, principles and tools aimed at building, testing and releasing high quality software faster and more frequently.” – Betfair CD Definition “ A way of reducing the cycle time – i.e. how long it takes to get a simple code change to get to production” “ Automating everything!” QA1 QA2 Pre-Prod Prod C.I. Change Submitted Production What is CD?

“ A set of practices, principles and tools aimed at building, testing and releasing high quality software faster and more frequently.” – Betfair CD Definition

Principles of CD Build artefacts only ONCE Use the same automated mechanism to deploy to EVERY environment Smoke test your deployment If anything fails, STOP the line EVERYBODY has responsibility for the release process - Code, DB, Config & System config changes Principles of CD

Why Continuous Delivery? If we do this there are NO surprises. Until the code we’ve just written is running in production, we’ve merely wasted time. Bring the pain forward – Deployments are traditionally hard and fail often. Get real feedback on the progress of projects based on the only useful definition of “ DONE ”—working software in a real production environment delivering value to users. By releasing small increments regularly, it reduces the risk of each individual release. Why Continuous Delivery?

Until the code we’ve just written is running in production, we’ve merely wasted time.

Continuous Delivery vs Continuous Deployment Continuous Deployment means that every build that passes all automated tests will be deployed to Production. Scary? Continuous Delivery allows managed deployments and release windows. Bit less scary? Giving control of releases to the business. Continuous Delivery vs Continuous Deployment

Prerequisites Automated Builds Automated Static Code Analysis Automated Unit Tests (code & db) Automated Functional Tests (code & db) Automated Security Tests Automated Performance Tests Automated System Integration tests Automated Sanity/Smoke Tests Automated Deployments & Configuration Automated VM Provisioning Automated Network Provisioning Prerequisites

What might a typical CD pipeline look like? Functional Testing Continuous Integration QA1 QA2 Security Performance Pre-Prod Short-lived 1 2 3 4 5 6 Prod Changes Long-lived Pre-Prod 7 TYPES OF TESTING PERFORMED Continuous Integration Build Server (Long-lived) Build/Compilation Unit Tests Fortify , Sonar & other Static Code Analysis QA1 (Short-lived) Tests against mocks and stubs QA2 (Short-lived) Tests against mock endpoints and DB Security (Long-lived) Security tests against cutting edge services and components Performance (Long-lived) Performance testing against near as live services and components Pre-Prod (Long-lived) Full integration tests in a production replica environment Prod (Long-lived) Fail early Heavyweight environments later in the pipeline Non-functional testing What might a typical CD pipeline look like?

TYPES OF TESTING PERFORMED

Continuous Integration Build Server (Long-lived)

Build/Compilation

Unit Tests

Fortify , Sonar & other Static Code Analysis

QA1 (Short-lived)

Tests against mocks and stubs

QA2 (Short-lived)

Tests against mock endpoints and DB

Security (Long-lived)

Security tests against cutting edge services and components

Performance (Long-lived)

Performance testing against near as live services and components

Pre-Prod (Long-lived)

Full integration tests in a production replica environment

Prod (Long-lived)

Tool options Roll your own ThoughtWorks Studios Go Jenkins CI Microsoft Team Foundation Server Lots of other possible options What don’t they have? Automated VM Provisioning, Network Provisioning, Deployment Configuration.. Tool Options

Roll your own

ThoughtWorks Studios Go

Jenkins CI

Microsoft Team Foundation Server

Lots of other possible options

What don’t they have? Automated VM Provisioning, Network Provisioning, Deployment Configuration..

Cultural Changes Requires full Agile Adoption Requires teams to embrace responsibility for automating their end-to-end pipeline. Software needs to be in a potentially releasable state every build. Heavy focus on testing deployability Cultural Changes

Requires full Agile Adoption

Requires teams to embrace responsibility for automating their end-to-end pipeline.

Software needs to be in a potentially releasable state every build.

Heavy focus on testing deployability

Summary A set of tools and services that allow us to construct an automated build pipeline that extends from Development all the way to Production. Automated testing of our deployment, configuration, NFR requirements as well as functionality. Summary

A set of tools and services that allow us to construct an automated build pipeline that extends from Development all the way to Production.

Automated testing of our deployment, configuration, NFR requirements as well as functionality.

END 020 3206 1900 [email_address]

Add a comment

Related presentations

Related pages

Burns Sheehan - The Evolution Of Agile - Continuous ...

... held at Holborn Bars on 25th January 2012. ... Ifor Evans of Betfair and ... Continuous Delivery Extending Agile out to Production ...
Read more

Manifesto for Agile Software Development

Manifesto for Agile Software Development. We are uncovering better ways of developing software by doing it and helping others do it.
Read more

The Agile System Development Life Cycle (SDLC)

... the agile system development ... agile delivery lifecycle but it also supports a lean/Kanban type of lifecycle and a continuous delivery ...
Read more

InfoQ: Software Development News, Videos & Books

Acceptance Testing for Continuous Delivery ... Taking Agile to Marketing: ... Subscribe to our Weekly email newsletter to follow all new content on InfoQ.
Read more

evolutionary design - Martin Fowler

... used to short-cycle evolutionary design, ... The techniques work in both pre-production and released systems. January 2003. ... continuous delivery;
Read more

Microsoft Intune overview | Microsoft

Microsoft Intune provides mobile device management, mobile application management, and PC management capabilities from the cloud. ...
Read more

Definitive Media Library - Wikipedia, the free encyclopedia

The Definitive Media Library provides the storage area ... are allowed into production. ... and the process is continuous supporting the ...
Read more

The Magazine - HBR - Harvard Business Review - Ideas and ...

The world's most influential management magazine since 1922. ... Embracing Agile; ... The Evolution of Design Thinking: ...
Read more

JD Edwards EnterpriseOne - Overview | Applications | Oracle

Oracle's JD Edwards EnterpriseOne is an integrated applications ... (January 2016) (PDF) JD Edwards EnterpriseOne Applications Release 9 ... and delivery ...
Read more