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



Similar documents
Software Development In the Cloud Cloud management and ALM

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

DevOps Course Content

"Build and Test in the Cloud "

INCREASE YOUR WEBMETHODS ROI WITH AUTOMATED TESTING. Copyright 2015 CloudGen, LLC

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Jenkins and Chef Infrastructure CI and Application Deployment

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

Parasoft and Skytap Deliver 24/7 Access to Complete Test Environments

Continuous Delivery. Ariel Alonso, IPC

Continuous Integration

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

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

Cloud Computing using

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

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

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

How Liferay Is Improving Quality Using Hundreds of Jenkins Servers

Increasing frequency of releases to every week down from quarterly major releases

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

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

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

DevOps. Jesse Pai Robert Monical 8/14/2015

Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects

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

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Building Value with Continuous Integration

Developing Plugins for Cloud Scale

Java PaaS Enabling CI, CD, and DevOps

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

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

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

Mastering Continuous Integration with Jenkins

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

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

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

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

Scalable Application. Mikalai Alimenkou

Cloud Hosting. QCLUG presentation - Aaron Johnson. Amazon AWS Heroku OpenShift

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Using Cloud Services for Test Environments A case study of the use of Amazon EC2

Automation & Open Source. How to tame the Cloud?

Continuous Integration and Delivery at NSIDC

Continuous Integration Multi-Stage Builds for Quality Assurance

@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?

Fundamentals of Continuous Integration

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

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

Modeling Public Pensions with Mathematica and Python II

Web UI & Functional Test Automation for Continuous Agile Deliveries

Building Value with Continuous Integration

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

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

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

Delivering Quality Software with Continuous Integration

Using a Java Platform as a Service to Speed Development and Deployment Cycles

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

Configuration Management Evolution at CERN. Gavin

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Scalable Architecture on Amazon AWS Cloud

AWS CodePipeline. User Guide API Version

Continuous Integration in the Cloud with Hudson

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Cloud Computing Technology

Cloudify and OpenStack Heat

Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising

OpenStack Alberto Molina Coballes

Advanced Testing and Continuous Integration

Load and Performance Load Testing. RadView Software October

Continuous Integration: A case study

How To Achieve Continuous Delivery

Continuous Integration Processes and SCM To Support Test Automation

Continuous Delivery and Test Automation in Agile SW projects with Robot Framework Antti Pohjonen

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

Establish a Continuous Delivery Pipeline: IBM UrbanCode Deploy

CONTINUOUS INTEGRATION. Introduction

Modern practices TIE-21100/

A central continuous integration platform

GETTING STARTED WITH CONTINUOUS DELIVERY. Lana wcgp.co

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

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

BITDEFENDER SECURITY FOR AMAZON WEB SERVICES

Patterns to Introduce Continuous Integration to Organizations

Outlook. Corporate Research and Technologies, Munich, Germany. 20 th May 2010

Getting Started with DevOps Automation

Designing Apps for Amazon Web Services

Using DevOps Tools to Achieve Continuous Integration

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Release Often Why high release frequency results in higher customer satisfaction, better quality, and more revenue by Scott Shipp

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

Transcription:

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

Thank you to our sponsors Platinum Sponsor Gold Sponsors Silver Sponsors Bronze Sponsors

Jesse Dowdle, Sr Manager of Development @dowdlemj linkedin.com/in/jessedowdle www.continuousdeliverist.com Joel Johnson, Software Engineer, CI Guru @_joelj linkedin.com/in/joelrj

Salt Lake City, Utah Software as a Service Project Management Collaborative Work Management

Then Scripted scenarios Slow, brittle Monthly Releases 3-5 days acceptance Multiple CI tools

Now Tight unit-like UI tests Fast, Robust Daily releases Jenkins is the source of truth 30-45 minutes

A basic automated test bed Version Control triggers new action Build Server retrieves latest version, compiles, starts Application Stack Test Runner executes tests against Application Stack Results are collected and sent by notification Build Server is cleaned and restored.

Basic Integration

VERSION CONTROL BUILD SERVER TEST RUNNER APPLICATION STACK NOTIFICATION SYSTEM Basic Integration

AtTask Test Automation 800 Unit tests 3300 API tests 2000 UI tests 55,000 hours per month Release Acceptance + CI

True Continuous Integration How often do I integrate? What tests tell me I m integrated? What must I know to release?

Pipeline Priorities Performance (Cycle Time) Scalability Visibility Accountability

Selenium Grid Selenium IE Commit Grid + AtTask Build Installer Install Selenium FF Tear Down Build Tests Other tests Unit Integration 1/4 2/4 3/4 4/4 AtTask s Pipe Build -- Deploy -- Test -- Destroy

Performance Eliminate technology as a barrier to performance. Jenkins server farm Selenium framework improvements Page objects Reusability - architecting test framework

How to make a paper airplane or, queueing theory as expressed by a folded projectile

Selenium Grid Selenium IE Commit Grid + AtTask Build Installer Install Selenium FF Tear Down Build Tests Other tests Unit Integration 1/4 2/4 3/4 4/4 Serial vs Parallel

CYCLE TIME

CI Vendors CruiseControl Jenkins (Hudson) TeamCity Go Team Foundation Server

Cloud Vendors Amazon Web Services OpenStack Rackspace Skytap SauceLabs

Jenkins, EC2, and AtTask A match made in heaven

SLAVE SLAVE SLAVE SLAVE SLAVE Jenkins dynamic slave allocation

Scalability Taking the Test Suite to massive scale To the cloud with Amazon Cloud Formations Dynamic Selenium Grids Dynamic AtTask Environments

Divide and Conquer Module separation will allow for scale Test Suites should support sharding Run tests with different dependencies in parallel

Divide and Conquer Selenium Grid Unit Selenium IE Commit Grid + AtTask Build Installer Install Selenium FF Tear Down Build Tests Integration Other tests 1/4 Unit 3/4 2/4 Integration 4/4 1/4 2/4 3/4 4/4

In Memory Database Email UI Only Customer Data PARALLEL BY DEPENDENCIES

From 3 days to 30 minutes with Selenium 2

SELENIUM 1 (1800 TESTS) 4 HOURS SLOW BRITTLE Sometimes the tests need to change

Transitioning to selenium 2

SELENIUM 1 (1800 TESTS) 4 HOURS SELENIUM 2 (750 TESTS) 30 MINUTES WHERE DID THE TESTS GO? Transitioning to selenium 2

2.1 MINUTES 34 SECONDS WITH GRID... 8 SECONDS 2.4 SECONDS Transitioning to selenium 2

JSON Partly cloudy with a chance of rain

Scalability Selenium Grid Selenium Grid Selenium IE Commit Grid + AtTask Build Installer Commit Build Tests Install Grid + AtTask Build Installer Selenium FF Other tests Tear Down Unit Build Tests Integration 1/4 2/4 3/4 4/4

SLAVE SELENIUM GRID SELENIUM GRID It s raining Grids

SLAVE SLAVE SELENIUM GRID SLAVE SELENIUM GRID SLAVE SLAVE It s raining Grids

Visibility Test results in Jenkins Description plugin Theres my commit! View plugin All the jobs on one line, oh the humanity! Screen-shotting UI Tests Test Age, Project Health

Accountability Claim / Blame test results using AtTask

CI as a Platform On-Demand demo environments Easy button for version control Visibility into production systems Other quality measurements Static Analysis Code Coverage

CI evolution its a continuous investment Staffing for Massive CI Get the right skill set Watch your integration points Technological Organizational DevOps

What does it cost? 3 FTE Two human, one machine(s) Keeping costs down Efficient machine sizes Rock-solid tear down Elasticity

Return on investment 5 days (40 hours) to certify one release... 10 engineers $40 per hour $20,000 30 minutes to certify one release... 10 engineers $40 per hour $250

To release 12 times in a year... $240,000 TO CERTIFY $3000 TO TEST $160,000 FOR TWO FTE $77,000 FOR CI To release 24 times in a year... $480,000 TO CERTIFY $6000 TO TEST $160,000 FOR TWO FTE $77,000 FOR CI To release 100 times in a year... $2,000,000 TO CERTIFY $25000 TO TEST $160,000 FOR TWO FTE $77,000 FOR CI

100 deployments annually $265,000 $2,000,000

Where to go from here Continuous Delivery Application Lifecycle Management Continuous Integration of Infrastructure Open Source

Tools Manifest Jenkins contributions... EC2 - wiki.jenkins-ci.org/display/jenkins/amazon+ec2+plugin CloudFormation - wiki.jenkins-ci.org/display/jenkins/aws+cloudformation+plugin Pipeline View - github.com/joelj/pipelinedashboard Description Setter - github.com/joelj/descriptionsetter GIT - /wiki.jenkins-ci.org/display/jenkins/git+plugin AtTask for Jenkins - Coming soon...

Further Reading Continuous Integration -- Martin Fowler - http://www.martinfowler.com/articles/continuousintegration.html Extreme Programming Explained -- Kent Beck - http://amzn.to/c0vvtb Continuous Deployment in 5 Easy Steps -- Eric Ries - http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html Four Principles of Low Risk Software Releases -- Jez Humble - http://www.informit.com/articles/article.aspx?p=1833567 Continuous Delivery -- Jez Humble & David Farley - http://continuousdelivery.com/ The Lean Startup -- Eric Ries - http://theleanstartup.com/ Continuous Integration -- Paul Duvall - http://amzn.to/9zx1l1

Thank you! Jesse Dowdle, Sr Manager of Development @dowdlemj linkedin.com/in/jessedowdle www.continuousdeliverist.com Joel Johnson, Software Engineer, CI Guru @_joelj linkedin.com/in/joelrj