Continuous Delivery. Ariel Alonso, IPC



Similar documents
Continuous Delivery. Alejandro Ruiz

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

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

Agility via Software Engineering Practices

CONTINUOUS INTEGRATION. Introduction

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous Delivery by example.net

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

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

The Benefits of Deployment Automation

An Introduction to Continuous Delivery

Software Engineering I (02161)

Software Continuous Integration & Delivery

Software Life Cycles and Configuration Management

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

IT Home 2015 DevOps 研 討 會

HP ALM11 & MS VS/TFS2010

Continuous Delivery of Software

When is Agile the Best Project Management Method? Lana Tylka

Agile Software Development and Service Science

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous Integration

Continuous Integration

About me - Joel Montvelisky

Massively! Continuous Integration! A case study for Jenkins at cloud-scale

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

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Agile So)ware Development

Agile Testing. What Students Learn

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

Continuous Delivery Workshop

Agile Project Management

DATA DONE RIGHT. Applying Agile and XP Concepts. #DataDoneRight

The Value of Adopting Agile & CI for OBIEE

Agile and Secure: Can We Be Both?

DevOps Stack. Reid Holmes. Chris Parnin:

Continuous Integration Processes and SCM To Support Test Automation

Bridging the Gap Between Acceptance Criteria and Definition of Done

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

A Practical Guide to implementing Agile QA process on Scrum Projects

QA & Test Management. Overview.

Java Software Quality Tools and techniques

Best Overall Use of Technology. Jaspersoft

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Agile Software Development and Service Science

"Build and Test in the Cloud "

Continuous Integration Optimizing Your Release Management Process

Agile Software Development

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Maintaining Quality in Agile Environment

Introduction to Agile and Scrum

Mastering the Iteration: An Agile White Paper

An Example Checklist for ScrumMasters

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

DevOps to Enterprise Agile

Enhancing The ALM Experience

Effektiver Tool-Einsatz

D25-2. Agile and Scrum Introduction

WEMS IT User Group. Mark Brodziak: Solutions Architect John McLean: Project Manager Gary Wade: IT Consultant. 20 March 2015

Git Branching for Continuous Delivery

DevOps. Jesse Pai Robert Monical 8/14/2015

Continuous Delivery at SAP: From dinosaur to spaceship. Darren Hague / SAP Global IT November 1st, 2013 Public

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Continuous Integration in Kieker

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

The Tools For Continuous Delivery

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

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Software Construction

Business Analysis In Agile A Differentiated Narrative

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

Agile Scrum Workshop

Capstone Agile Model (CAM)

MasterClass 26 th March 2015 DevOps and Continuous Deployment

Good Agile Testing Practices and Traits How does Agile Testing work?

Continuous Delivery: Bridging Quality Between Development and Customers

IT Operations Management: A Service Delivery Primer

Delivering Quality Software with Continuous Integration

2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology

"Testing in the DevOps World of Continuous Delivery"

Agile Development Overview

Agile Information Management Development

Security Automation in Agile SDLC Real World Cases

AGILE & SCRUM. Revised 9/29/2015

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Continuous Integration (CI) for Mobile Applications

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Transcription:

Continuous Delivery Ariel Alonso, IPC

About Me Ariel Alonso Systems Architect Independent Purchasing Cooperative, Inc. Software Engineer for 15 years Interests Agile & XP Test Driven Development Automation Testing Distributed Systems Big Data

Agenda What is Continuous Delivery? Implementing Continuous Delivery Continuous Delivery at IPC Q&A

What is Continuous Delivery?

How long would it take your organization to deploy a change [to production] that involves just one single line of code? Do you do this on a repeatable, reliable basis? - Mary and Tom Poppendieck, Implementing Lean Software Development

What Scrum Does For Us Smaller pieces of functionality More frequent feedback Shippable increments quicker

What About Deployments? Value is only realized in production Manual deployments are painful and error prone Poor configuration management leads to unpredictable results Infrequent deployments increase risk

If it hurts, do it more often. - Internet Wisdom

Frequent Deployments Deploying Frequently Feedback from users Reduce risk of deployment Real project progress Business value quicker More frequent changes with fewer lines of code reduce risk and help identify problems easier and sooner

Reduce Risk of Change John Allspaw, Ops Meta-Metrics

What is Continuous Delivery? Set of software development practices and principles focused on building, testing, and deploying software faster and more frequently Goals Improve Quality Reduce Cycle Time Business value realized in production

The Last Mile Agile/Scrum Continuous Delivery Gives us feedback on the quality of our requirements and the quality of our code Gives us feedback on the quality of our process to deliver software Continuous Delivery Scrum

Just ship, baby. - Kent Beck

Implementing Continuous Delivery

Principles of Continuous Delivery Process MUST be repeatable and reliable Automate everything If something is difficult or painful, do it more often Keep everything in source control Done means in production Build quality in to the product Everyone has responsibility for the release process Improve continuously

Real artists ship. - Steve Jobs

Continuous Delivery Pattern Developer Machines Source Control & Build Servers Integration Environment Single artifact is produced and advanced through the environments Demo / UAT Environment Staging Environment Exactly the same mechanism is used to deploy to each environment Production Environment

Continuous Delivery Practices Build binaries only once Use precisely the same mechanism to deploy to every environment Smoke test your deployment If anything fails, stop the line!

Key Components Source Control Test Driven Development Behavior Driven Development Automated Testing Continuous Integration Infrastructure as Code

Source Control Essential for development teams to work effectively on the same code base Ability to attach historical data to code, such as explanatory comments about the intent behind each change Control the production line with commit hooks

Continuous Integration Automatically builds entire application Automated unit and functional tests Exposes integration issues and conflicts early Everyone is responsible for the CI environment

Test Driven Development Red, Green, Refactor Permanent Regression Self Documentation More Maintainable Code

Behavior Driven Development Starts with a conversation Shared understanding of the features to be implemented Features are identified as user stories Feature: Refund In order to make the customer whole As the product owner I want to make sure we know how to do math Scenario: Customer refund Given Fred has bought a microwave And the microwave cost 100 USD When we refund the microwave Then Fred should be refunded 100 USD

Automated Testing Unit Testing Functional Testing Performance Testing Stress Testing Security Testing Disaster Recovery Testing

Infrastructure as Code Automate the process of bringing the system to a working state Production like environments can be built from scratch in minutes Versioning environments along with applications Allows for continuous testing of our infrastructure

Tools Issue Tracking JIRA, PivotalTracker, Bugzilla Source Control Mercurial, Git, Subversion, CVS, TFS Virtualization VMWare, OpenStack, Amazon EC2 CI/Build Server Bamboo, Hudson, Jenkins, TeamCity Automated Testing junit, Nunit, RSpec, Cucumber, Selenium Infrastructure as Code Puppet, Chef

Continuous Delivery at IPC

The Challenge Payment Processing Platform 28,000+ restaurants in US and Canada 2M transactions/day $5.8B/year in credit card sales 200M SUBWAY Card accounts 99.999% Service Level Agreement Release Weekly

The Solution Transition from waterfall to Scrum Weekly sprints resulting in weekly production deployments Embrace DevOps and Continuous Delivery Invest in comprehensive testing approach

How Much Do We Test? 3,600+ Unit Tests 4,500+ Functional Tests 7,000+ Regression Tests Disaster Recovery Tests

Why do we never have time to do it right, but always have time to do it over? - Anonymous

Keys to Success Organizational commitment to Agile Focused delivery team Embrace inevitability of change Treat agility as a corporate asset Favor cultural fit over technical skills when growing the team Continually improve

The Final Frontier Release Manager Manual builds produced by release managers Continuous Integration Automated builds combined with automated unit and functional testing Continuous Delivery Repeatable and reliable deployments allowing for small, frequent releases Continuous Deployment Near real-time deployment of production ready code

The future is here. It s just not evenly distributed yet. - William Gibson

Q&A