Continuous Delivery. Alejandro Ruiz

Similar documents
Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

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

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

Continuous Integration

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Continuous Delivery. Ariel Alonso, IPC

Continuous Delivery Workshop

Leveraging Rational Team Concert's build capabilities for Continuous Integration

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

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

Java Software Quality Tools and techniques

Software infrastructure for Java development projects

Build management & Continuous integration. with Maven & Hudson

Delivering Quality Software with Continuous Integration

Continuous Integration Multi-Stage Builds for Quality Assurance

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

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Jenkins: The Definitive Guide

Continuous Integration in Kieker

Software Continuous Integration & Delivery

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Continuous Integration (CI)

Continuous Integration

Visual Studio - Continuous Integration

Continuous Delivery Maturity Model

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

Software Construction

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

Continuous Integration: Aspects in Automation and Configuration Management

Continuous Delivery for Force.com

Continuous Integration

Introduction to Agile Software Development Process. Software Development Life Cycles

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)

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

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Continuous Delivery by example.net

Database Build and Release will get started soon

Continuous Integration: A case study

CONTINUOUS INTEGRATION. Introduction

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

Continuous Integration and Delivery at NSIDC

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

Open Source Tools. The Magazine for Professional Testers. December 2010

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

Accelerate Software Delivery

SMZ. SocialMedia. Z olutions

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

SOFTWARE DEVELOPMENT BASICS SED

Continuous Integration

Visual Studio Team Edition for Database Professionals. Woody Pewitt Developer Evangelist

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

Introduction to Programming Tools. Anjana & Shankar September,2010

IT Home 2015 DevOps 研 討 會

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

Continuous integration for databases using

Software configuration management

Continuous Integration: Put it at the heart of your development

Continuous integration for databases using Redgate tools

Continuous integration End of the big bang integration era

DevOps to Enterprise Agile

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

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

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Introducing Continuous Integration

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Agile Best Practices and Patterns for Success on an Agile Software development project.

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

The Importance of Continuous Integration for Quality Assurance Teams

JUSTIN J. LITTLE Build and Release Engineer

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

DevOps. Jesse Pai Robert Monical 8/14/2015

SA4 Software Developer Survey Survey Specification v2.2

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

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Content. Development Tools 2(63)

Upping the game. Improving your software development process

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Continuous Integration For Fusion Middleware

Transcription:

Continuous Delivery Alejandro Ruiz

True reality How the customer explained it How the project leader understood it How the analyst designed it How the programmer wrote it What the customer really needed 2

Principles of the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. http://agilemanifesto.org/principles.html 3

Traditional vs Agile 4

Continuous Delivery Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. Martin Fowler 5

Continuous Delivery Deliver new versions of software to production Deliver software faster and more frequently Quick response to new requirements/feedback Easy way to provide a release of any version on demand Increase software quality 6

Use case: HP FutureSmart FW Cost out of control Long development & test cycles Manual deployment Manual QA Difficult to be competitive 7

Development improvements 8

Build improvements 9

What do we need? Build a culture to support continuous delivery Automation and scripting Automated testing 10

Code Versioning CVS Anything in the master branch is deployable Organize source code changes by task-oriented units of work Commit often, at least once a day Keep everything in source control 11

Build Process Identify and define the phases to create a deliverable Identify dependencies Common phases: Version control Static Analysis Compile Packaging Unit test Code coverage Deployment Ident 12

Build Automation All build/deployment processes are written in a script. Command line execution Push-button deployments MSBuild 13

Test Automation Automate as much of your testing as possible Early and often feedback Mitigating error prone human behavior Save Time & Money vs. Manual Testing 14

Test levels Integration Pre commit testing Commit testing Stability Smoke test BVT Acceptance Regression Full regression of automated test 15

Continuous Integration Reduce the time to integrate and detect issues as soon as possible Validate code after a change in the source code Tracking of Software quality metrics 16

Continuous Integration flow 17

Continuous Integration tools MSBuild Cobertura 18

Continuous Integration tools Source Code Management Git, Mercurial, CVS, Subversion, TFS Build Tools Gradle, Maven, Ant, MSBuild, Rake Testing JUnit, Nunit, MSTest Repository Manager Software Quality tools Continuous Integration Servers Artifactory, Nexus, Archiva Sonar, Cobertura, FindBugs Jenkins/Hudson, TeamCity, Bamboo, Cruise 19

Continuous Deployment Pipeline Commit Integration Unit testing Code Analysis Packaging Acceptance Smoke test Acceptance test Regression Test Install Package in sandboxes Configure sandboxes Run Regression test Release Promote as a Release Deploy on production UAT Install Package in UAT environment Promote as Release candidate Performance Test Install Package in sandboxes Configure sandboxes Run Performance test 20

Principles of Continuous Delivery The process for releasing/deploying software MUST be repeatable and reliable Automate everything! If something is difficult or painful, do it more often. Keep everything in source control Done means released Build quality in! Team commitment Improve continuously. 21

Conclusion Evolution not revolution Keep rethinking and improving Team commitment 22

Q&A 23

Thanks 24

25