Impact of Architecture on Continuous Delivery

Similar documents
ACCELERATE DEVOPS USING OPENSHIFT PAAS

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

Fundamentals of Continuous Integration

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

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

ebay : How is it a hit

Enterprise SOA Strategy, Planning and Operations with Agile Techniques, Virtualization and Cloud Computing

Augmented Search for Web Applications. New frontier in big log data analysis and application intelligence

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

Modern SOA Testing. A Practitioners Guide to. July 2011

Continuous Integration (CI) for Mobile Applications

Building a Continuous Integration Pipeline with Docker

JAVASCRIPT CHARTING. Scaling for the Enterprise with Metric Insights Copyright Metric insights, Inc.

Avio BPM Solutions and Frameworks

Building Success on Acquia Cloud:

EAI vs. ETL: Drawing Boundaries for Data Integration

Realizing the Value Proposition of Cloud Computing

Introduction to DevOps on AWS

Your guide to DevOps. Bring developers, IT, and the latest tools together to create a smarter, leaner, more successful coding machine

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

The Virtualization Practice

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY

Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

The Co-Evolution of Agile and Continuous Integration. Jeffrey Fredrick Technical Evangelist

Cloud IaaS Migration Roadmap

Agile Requirements And Testing For Continuous Software Delivery

The Ultimate Dialer Checklist

IT Governance In The Cloud: Building A Solution Using Salesforce.com

Migration Scenario: Migrating Batch Processes to the AWS Cloud

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

A Tipping Point for Automation in the Data Warehouse.

Software Engineering I (02161)

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

Scaling Agile Is Hard, Here s How You Do It!

DevOps Stack. Reid Holmes. Chris Parnin:

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

Microservices on AWS

Cloud Computing for Architects

How To Build An Open Cloud

Building Cross Platform Mobile Apps Dev Tools, MBaaS, Architecture, APIs

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

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

perspective Microservices A New Application Paradigm Abstract

FP&A Systems and Their Value

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

SOA and Cloud in practice - An Example Case Study

How To Write A Paper On The Integrated Media Framework

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

Maximize strategic flexibility by building an open hybrid cloud Gordon Haff

DevOps for the Mainframe

An Introduction to Continuous Delivery

Planning a Successful Cloud Strategy Identify existing assets, assess your business needs, and develop a technical and business plan for your cloud

Ironfan Your Foundation for Flexible Big Data Infrastructure

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

Success Accelerator. Citrix Worldwide Consulting Solutions. Planning and Executing a Successful Go Live

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

Leveraging BPM Workflows for Accounts Payable Processing BRAD BUKACEK - TEAM LEAD FISHBOWL SOLUTIONS, INC.

SECTION 2 PROGRAMMING & DEVELOPMENT

Data Connectivity and Integration for Business Users

Continuous Delivery of Software

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

Continuous Delivery Benefits, Best Practices and Practical Advice

Reaching Customers Across Multiple Channels

The Importance of Continuous Integration for Quality Assurance Teams

SQL Server Storage Best Practice Discussion Dell EqualLogic

CoDe:U Git Flow - a Continuous Delivery Approach

Guiding SOA Evolution through Governance From SOA 101 to Virtualization to Cloud Computing

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

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

Operational Excellence for Data Quality

GMI CLOUD SERVICES. GMI Business Services To Be Migrated: Deployment, Migration, Security, Management

Introduction to Directory Services

AMAZON S3: ARCHITECTING FOR RESILIENCY IN THE FACE OF FAILURES Jason McHugh

Hadoop in the Hybrid Cloud

White paper. Business Applications of Wide Area Ethernet

Trends In Data Quality And Business Process Alignment

Intel IT Cloud Extending OpenStack* IaaS with Cloud Foundry* PaaS

JOURNAL OF OBJECT TECHNOLOGY

Mobile Application Development Platform Comparison

Predicting From the Edge in an

CONTINUOUS INTEGRATION TESTING

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

Transcription:

Impact of Architecture on Continuous Delivery Russell Miller rmiller@impulse.com Miller.Russ@gmail.com @RussMiller123 Podcast: ArchitectureCast.net

Context: Greenfield project Build cloud based monitoring system Social/collaborative Pilot project for: Truly cloudy application(cloud native) Agile pulling in some lean principles

Definition: Continuous Delivery: An automated approach to software delivery characterized by frequent and predictable delivery of incremental units of business value. Utilizing: Continuous integration Automated testing Automated Deployment (at least to test)

Frequent, Small, Predictable

Continuously usable Incrementally better

Value Avoids waste Improves feedback Innovate faster Continuously Learn and Innovate

No Drones, instead we have a build pipeline: Auto Auto Auto Auto Auto Code Done Unit Tests Integrate Acceptance Deploy Test Deploy Staging Push Button Deploy Production Our goal, get here weekly.

Our dream

No Drones, instead we have a build pipeline: Auto Auto Auto Auto Auto Code Done Unit Tests Integrate Acceptance Deploy Test Deploy Staging Push Button Deploy Production Bottleneck As if, some drones had to wait on others to land! Our goal, get here weekly.

Getting to what the business considers done Bottleneck Weren t able to drive the last mile over the finish line!

Patented Batch Size Viewing Goggles. Only $9.99!!! (while supplies last) Caution: Batch sizes viewed through these goggles may be larger than they appear. because the information [developers are] producing is invisible to them, the batch sizes are, too, HBR, Six Myths of Product Development by Thomke and Reinertsen

Main lesson we learned:

Service Architecture Sentinel Sentinel Search Service Search Index On Prem Sentinel Queue Sentinel Sentinel Cloud Hosted Sentinel Queue Admin Services Various Services Queue Main Repository Notification Service

Micro Services Separately deployable and separately deployed! (leverage the cloud!) SOLID Principle (at the component level) Dependencies create larger batches! Other advantage: Is it working? (Testing pieces in production) Still Used? Hot Swappable

Problem solved? But, many new features cut across components/services Feature Client(s) Component A V1.0 Abstraction Team B Component B V1.0 Component B V1.1

Parallel Landings Code Done Unit Tests Integrate Acceptance Deploy Test Deploy Staging Deploy Production Feature Switch A Code Done Unit Tests Integrate Acceptance Deploy Test Feature Switch B Code Done Unit Tests Integrate Acceptance Deploy Test Deploy Staging Deploy Staging Deploy Production Deploy Production Feature Switch = Virtual Pipeline

Ultimately, need Feature Switches (e.g. Twitter Decider framework) Runtime Configuration Built on top of license flag (tiers) Smart switching based on other criteria Pays off more than just for enabling small batches

Next lesson: Branch by Abstraction Layers already there if you are Mocking Client virtually merges with new branch Client requests a version Client Component(s) Client Component(s) Client Component(s) Object Abstraction Abstraction Component V1.0 Component V1.0 Component V2.0

Did we realize our dream?

In Conclusion Lessons learned: Architecture impacts batch size Decouple deployment, also (Micro Services) Virtualize your pipeline: Branch by abstraction Feature switches Piece meal dark deployment Architecture Matters, of course!

Resources Branch by Abstraction: http://continuousdelivery.com/2011/05/make large scale changesincrementally with branch by abstraction/ Continuous Delivery at Ancestry.com (John Esser and Russell Barnett) http://www.infoq.com/presentations/ancestry SOA continuous delivery Adjusting Your Architecture for Continuous Delivery http://www.infoq.com/interviews/laycockcontinuous delivery Batch size not clear to developers: http://hbr.org/2012/05/six myths of product development/ar/1 Forrester Continuous Delivery http://info.thoughtworks.com/rs/thoughtworks2/images/continuous%20delivery%20_%20a%20m aturity%20assessment%20modelfinal.pdf

Forrester Continuous Delivery Maturity Model 5. Optimizing 4. Quantitatively Managed 3. Defined 2. Managed 1. Initial Systems are architected with continuous deployment in mind

3 rd Party Service considerations Examples we used: Twillio ElasticSearch MongoDB Payment Service What to consider: Auto Configurable? Used in a testable way? Monitorable?

Deploy Abstractly Truly cloudy components should not care about Which machine (cattle) IP addresses DNS names should be auto set Certificates

Forrester Continuous Delivery Maturity Model 5. Optimizing 4. Quantitatively Managed 3. Defined 2. Managed 1. Initial Continuous deployment capability enables business innovation/experimentation.

Our Reality! Log jam of features waiting to be integrated.

Problem solved? Added ability to deploy subset of Services Separate Andon cords to pull Able to run multiple versions (be careful)

Bigger batches than we realized: Uncovered a couple of areas in the architecture that could be decoupled (e.g. Notification) Issue was all or nothing deployment Development in small batches, but deploying big batches

Other techniques used tactically Branch by abstraction Prepare for rollback, but prefer rolling forward Deep stack monitoring (designed in) Test in production (TiP) Not trusting the upstream component