Professional Documents
Culture Documents
Dzone Continuous Deliver Guide
Dzone Continuous Deliver Guide
CONTINUOUS
DELIVERY
RESEARCH PARTNER SPOTLIGHT
PRESENTED BY
Research
that said both development and operations were both
responsible for production support.
Findings
More Professionals are Achieving Continuous
Delivery
The authors of the Continuous Delivery methodology
defined three key traits to determine when an
organization has fully implemented its practices [1].
The panels below shows how many survey respondents
have these traits in their systems:
Continuous Delivery advocates the creation of maximally Any long-running step, such as UAT, Pre-Production testing, or Exploratory
automated deployment pipelines. Testing, can happen even after the change has already been deployed
to Production.
This visualization of an optimally (but not entirely) automated If significant issues are found in any long-running step, and the change has not
deployment pipeline shows how Continuous Delivery works. been deployed to Production, the team should manually halt the pipeline.
If significant issues are found in any long-running step, and the change has
Each stage (big circle) is composed of multiple activities (little circles). already been deployed to Production, the team should rollback Production to
Each activity can be automated or otherwise facilitated by various the last working release.
(mostly open-source) tools. We surveyed our audience to see which
Diagrams are based on Jez Humbles diagrams from the Continuous Delivery blog
tools they used for which deployment-related activities. The three (http://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns)
most commonly used tools are listed next to each activity. Special thanks to Matthew Skelton for helping build these diagrams.
REFERENCE KEY
1 2 3
automated manual
execution execution
automated trigger manual trigger optional step three most commonly used
tools used for this activity
START
Checkstyle 1
JUnit
2
syntax
Eclipse 2
check Cucumber 1 3 Selenium
3 TestNG
SonarQube
story-
2
JUnit 1 3
level tests
1 JUnit Jenkins
01.
unit integration
2 TestNG tests
tests
commit
auto-
merge for 3 NUnit
developer 1 Selenium
branches
feature-
2 JUnit
level tests
when using
Git Flow, etc. for compiled 02 . 3 Cucumber
compile
languages
SonarQube 1
automated
code 1 Cucumber
Cobertura 2
metrics acceptance BDD
framework 2 JBehave
FindBugs 3 testing tests
3 SpecFlow
Mockito 1
stubbed
and mocked
EasyMock 2 endpoints
of data
Mockito 1 component 3 NUnit
Selenium 1 SoapUI 3 tests
visual 03 .
manual 2 (UI) 2
tests
Visual Studio 3 exploratory TestNG
testing
Selenium 1
showcases
SoapUI 2 usability
tests 04.
Cucumber 3
user
Wireshark
2
acceptance
JMeter 1 3 Ping testing 1 manual
1
network (UAT) feature-
manual
tests level testing 2 Selenium
post- 1 JMeter by the
Selenium 2
deployment client
3
capacity Cucumber
tests 2 LoadRunner
SoapUI 3 tests
3 Gatling
05.
1
staging
JMeter
LoadRunner 2 performance
Gatling 3
tests
and pre-
production 1 Jenkins
rollback
and 2 Bamboo
redeploy
Selenium 1 3 Chef
smoke
JUnit 2 tests
1 Selenium
Cucumber 3
ongoing
live
transaction
tests
you did it!
from dzone.com
Continuous Delivery Check the boxes next to the practices you
currently perform to see your maturity
Maturity Checklist
in each area of Continuous Delivery. Add
up your score at the end based on the
highest levels you checked.
Sources: chrisshayan.atlassian.net/wiki/display/my/2013/07/23/Continuous+Delivery+Matrix
Inspired by Chris Shayan and Eric Minick
ibmdw.net/urbancode/docs/continuous-delivery-maturity-model/
Eliminating Roadblocks there are usually a few pieces handled in a custom way due to
the need to work with legacy systems or specialized processes.
Continuous Delivery changing the equation and making Continuous Delivery possible
for more and more teams.
Automated testing plays a key role in successfully Automated testing itself has come a long way as a part of this
implementing Continuous Delivery. Weve witnessed enterprises trend. Starting from early test automation tools designed
increasingly adopting fully automated delivery pipelines, to make QA teams more efficient, automated testing is now a
successfully accelerating release cycles, achieving consistently high critical part of automated delivery pipelines that are expected
quality, and allowing their development teams to focus on writing to run through complete test suites many times a day, with
software rather than on the mechanics of delivering it. little tolerance for manual intervention, false failures, or
infrastructural reliability problems.
An example of an idealized, modern software delivery pipeline
might look like the following: Errors or bottlenecks introduced by automated testing
infrastructure can break your build and block your deploy
pipeline, creating expensive delays for software developers.
Plan user stories and manage issues with a project management
Running automated tests rapidly and reliably is therefore critically
tool like JIRA.
important to a successful Continuous Delivery process.
Collaborate on code via GitHub pull requests or a code review tool.
By providing a high-reliability, scalable automated testing
Kick off a build in a CI system like Jenkins or Bamboo. platform, weve been able to help enterprises sweep aside
the time-consuming and error-prone maintenance of virtual
Automatically run unit and functional tests with open source machines and mobile devices, and allow them to instantly
testing tools like xUnit and other testing frameworks, and provision additional testing resources on demand. And weve
automation tools like Selenium and Appium. prioritized fitting into the ecosystem of popular testing
frameworks, CI systems, and surrounding tools and services,
Deploy with an IT automation tool like Puppet or Chef, or using a so that you can leverage existing investments and focus on
PaaS. optimizing your CD pipeline.
systems like New Relic and Mixpanel. Steve Hazel, Cofounder, Chief Product Officer, Sauce Labs
Sauce Labs provides a complete testing platform for native, hybrid, and web apps, allowing users to run Selenium,
Appium, JS unit, and manual tests in any language on over 450 browser, OS, and platform combinations.
Maybe you cant do a one-fingered push-up, but you can master speed and scale
with Sauce Labs. Optimized for the continuous integration and delivery workflows
of today and tomorrow, our reliable, secure cloud enables you to run your builds
in parallel, so you can get to market faster without sacrificing coverage.