Professional Documents
Culture Documents
2 01 4 G U I D E TO
CONTINUOUS
DELIVERY
B R O U G H T TO YO U I N PA R T N E R S H I P W I T H
dzone.com/research/continuousdelivery DZONE, INC. 2014
The guide you hold in your hands (or on your Continuous Delivery Visualized 16
device) is a vital part of DZones fight against this
growing trend. We recognize that as a technology Infrastructure as Code: When
professional, having actionable knowledge at automation isnt enough
by Mitch pronschinske 22
your fingertips is a necessity. Your business
challenges will not be put on hold while you try
Continuous Delivery
to identify the right questions to ask and sort
Maturity Checklist 24
through endless information. In publishing our 2014
Guide to Continuous Delivery, we have worked
Solution DIRECTORY 25
hard to curate and aggregate a wealth of useful
topic knowledge and insight into a concise and
informative publication.
are eager for your feedback. Our goal is to make the Jayashree Gopal Matt Schmidt
most informative and practical publications that you Project Manager President & CTO
can find for free on the web and your input will go a Mitch Pronschinske Brand on Nokes
long way in helping us to achieve that goal. Senior Research Analyst VP, Operations
our goal to deliver to you the relevant and useful Hernni Cerqueira
insight you deserve. Thanks again for taking the time Lead Software Engineer
to check it out and, as always, thanks for being a part Special thanks to our topic experts Ashley Slate
of our great community. Graphic Designer
Steve Smith, J. Paul Reed, Matthew
Skelton, Paul Duvall, Eric Minick, Chris Smith
Marketing Associate
Christopher Little, Benjamin
Alec Noller
Kellet Atkinson Wootton, Matt Jaynes, Willie
Content Curator
Wheeler, Chris Shayan and Andrew
Director of Research
Phillips as well as our trusted DZone Benjamin Ball
research@dzone.com Content Curator
Most Valuable Bloggers for all their
help and feedback in making this Sarah Ervin
report a great success. Content Curator
PAGE 2 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Theres nothing new about most of todays research on ITs business goals: get applications to market faster, under budget, with
less people, and with pristine quality. The best companies will always be driving to achieve these goals. We dont need more
research reports to tell us that this is ultimately what business leaders want. What we do need are new ideas and industry data
that tell businesses how other organizations are accomplishing these process improvement goals. The DZone 2014 Guide to
Continuous Delivery services this need by providing data, ideas, and solutions that your organization can use to drastically improve
its software production process. Explore the content in this guide and use the technology comparison features on its companion
site dzone.com/research/continuousdelivery to understand:
KEY TAKEAWAYS
Continuous Delivery is a practice that fits squarely within the larger philosophy
of DevOps, encouraging better technical collaboration and understanding
between all areas of an organization, especially development and operations.
Some companies have even opted to have a team that is solely focused on
this collaboration with cross-compatible skills for multiple disciplines. 30%
of the survey respondents have an officially designated DevOps team. Cross
referencing this question with company size data shows that these teams are
more prevalent in organizations over 100 employees. This is an encouraging
sign for the proponents of DevOps and so is the 60% of respondents that said
both development and operations were responsible for production support.
Nearly half of those surveyed are using time-tested development techniques in operational
settings. 49% are using using an infrastructure configuration management tool such as Chef
or Puppet, and 48% are using a version control system for infrastructure changes and system
definitions. However, many organizations arent automating those infrastructure changes. 73%
of respondents still have to use manual scripts for at least half of their infrastructure changes.
[1] http://martinfowler.com/bliki/ContinuousDelivery.html
For many, Continuous Delivery is still a work in progress. 27% of those surveyed believe they have achieved CD for some of their
projects, and 14% believe they are doing it in all of their projects (41% combined). Respondents were considered to be using
basic CD practices if they used version control, issue tracking, resource monitoring, automated at least 30% of their infrastructure
changes, and if they frequently confirm their software updates as shippable. Only 26% of all respondents met these criteria.
When respondents were filtered by the three key traits of Continuous Delivery from the section above, only 8% said yes or
always for all of the questions.
PAGE 4 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Among the 8% of respondents who have all three Continuous Delivery traits, 63% have an official DevOps team and 73%
needed to roll back fewer than 10% of their deployments. Compared to the process performance metrics of the entire survey
pool, the respondents who exhibit the three key CD traits had faster average deployment times, less rollbacks, and shorter
outages. Below are the process performance stats for all respondents:
Continuous Delivery isnt a hard sell for developers. 60% say that they have
already implemented it for their application build environments, and only 6%
have no desire to implement in development. Database and infrastructure
environments are still lagging behind though, with only 21% of respondents
implementing it for the database environment and 18% implementing it for
infrastructure. However, over half of all respondents hope to implement it for
those environments. The survey also showed some headway toward extending
CI practices to production deployments, with 38% saying theyve done this.
Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software. - The Agile Manifesto, First Principle
Since the publication of the seminal book Continuous Delivery by Dave Farley and Jez Humble
in 2010, Continuous Delivery has become a widely discussed topic within the IT industry and an
essential competitive advantage for technology companies such as Etsy, Facebook, and Netflix. But
where did Continuous Delivery come from, what does it offer, and how does it work?
Such a release process will likely involve extensive In order to guide Continuous Delivery adoption within an
documentation, overnight scheduling, unversioned organization, Dave Farley and Jez Humble defined the
configuration management, ad hoc server management, following principles:
and large numbers of participants. In this situation,
Repeatable, Reliable Process: Use the same
software releases inevitably become high cost, high risk
deterministic release mechanism in all environments.
events susceptible to human error, and given prominent
failures such as the Knights Capital $440 million glitch Automate Almost Everything: Automate acceptance
[1], there can be an understandable reluctance to testing, deployment tasks, configuration management,
release software frequently. However, there is always an etc.
opportunity cost associated with not delivering software.
Keep Everything In Version Control: Store all code,
This was recently highlighted by reports of Microsofts configuration, schemas, etc. in source control.
decade of e-book/smartphone opportunity costs [2]. This
poses a seemingly intractable business problem for many Bring Pain Forward: Shrink feedback loops for time-
organizations how can the risk of delivering software be consuming, error-prone operations.
reduced, while simultaneously delivering new features to Build Quality In: Fix defects in development as soon as
customers faster? they occur.
PAGE 6 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Continuous Improvement: Continuously improve the of organizations, a deployment pipeline will be used by
people and technology involved. non-aligned siloed teams, meaning that lead times will be
substantially inflated by handover delays between teams
These principles are promoted by the deployment pipeline regardless of pipeline execution time.
pattern, which has been described by Dave Farley and
Jez Humble as Continuous Integration taken to its logical Dave Farley and Jez Humble have repeatedly warned that
conclusion [3] and lies at the heart of Continuous Delivery. where the delivery process is divided between different
A deployment pipeline is an automated implementation of groups the cost of coordination between these silos can
the build/deploy/test/release cycle that enables self-serviced be enormous, [3] and this is reflected in the Everybody
releases of any application version into any Is Responsible and Done Means Released
environment. A diagram of a typical deployment principles listed above. Testing and operational
pipeline can be found in a free online chapter of The deployment tasks must become intrinsic development
Continuous Delivery [4]. A real world pipeline, activities rather than discrete work phases, and
however, will be specialized to an organizations pipeline pattern the people involved must be integrated into
requirements in the software delivery process. the product development team in what is often
[3] http://www.amazon.com/dp/0321601912 is Continuous a slow and painstaking process of change. It is
[4] http://ptgmedia.pearsoncmg.com/images/
chap5_9780321601919/elementLinks/fig5_4.jpg
Integration taken for this reason that the parallel growth of the
DevOps philosophy has been welcomed by the
[6] http://dev2ops.org/2010/02/what-is-devops/
The creation of a deployment pipeline establishes a pull-
based release mechanism that reduces development
costs, minimizes the risk of release failure, and allows the
production release process to be rehearsed thousands of
times. It provides visibility into the production readiness
of different application versions at any point in time, and
drives continuous improvement of the release process by
identifying bottlenecks in the system. WRITTEN BY
Steve Smith
Steve Smith is an Agile consultant and Continuous
Organizational Change and DevOps Delivery specialist at Always Agile Consulting
While a deployment pipeline reduces costs and risk, the Ltd. Steve is a regular speaker at Skills Matter for
the London Continuous Delivery group, and has
reality is that Continuous Delivery is vulnerable to Conways
spoken at conferences such as Agile Horizons and
Law [5] and dependent upon organizational change to QCon New York about Continuous Delivery.
achieve a significant reduction in cycle time. In the majority
PHONE: (323) 843-4483 LOCATION: Woburn, MA, USA LAUNCH DATE: January 11 @CloudBees
Hosting Options
FREE TRIAL
30-day free trial On premise, public cloud, or hybrid cloud
There is little question that Continuous Inconsistencies among CI agent configuration (despite
Delivery provides a compelling business story. how much its emphasized as an issue by the DevOps
movement, it remains a disturbingly common problem).
Everyone is looking for ways to increase their own
business agility with cloud-based builds, built-in unit and CI master servers or agent hosts running on individual
integration testing, and fully automated deployments, all employees computers or in unofficial/personal cloud
instrumented with monitoring utilities. If there werent accounts. This is often observed in organizations that
several high-profile companies discussing both their need to support Mac OS X.
Continuous Delivery successes and failures so publicly, it
CI masters with no access control, with job
might all seem like a fairy tale. The incredible complexity
configurations that can be modified without notification
of software production makes it extremely difficult
or an audit trail.
to create a clean path for software to travel from a
developers keyboard all the way to the customers hands. Unactionable CI, which can be caused by insufficient
communication mechanisms from the CI infrastructure
For every one of the Continuous Delivery unicorns, (email, which everyone promptly filters for instance), or
like Etsy and Netflix, there are at least ten organizations a cultural barrier, where CI errors or build/test failures
who struggle significantly to implement CD within their are not considered by everyone in the organization to be
organization. Many of those will ultimately fail entirely to worthy of a timely response.
deliver on CDs promises.
In the worst cases, organizations get excited about CD and
Like any new development methodology, implementing try to skip over CI.
Continuous Delivery has a number of pitfalls that can
trip up even the most mature organizations. Successful The bad news: the solutions to these problems are varied.
Continuous Delivery processes are predicated on a Some are simple, while others (especially those involving
number of technical and cultural assumptions, and in many company culture) may be tougher to overcome.
cases organizations dont have the foundation necessary
for CD. Organizations often try to copy the practices of a The good news: once the organization has achieved
company like Netflix wholesale after reading some of their stable, operationalized, actionable continuous integration,
resources, ignoring the differences in their own products youve already done 50% of the work to build a legitimate
or market. These examples are just a few of the reasons Continuous Delivery environment.
why companies find themselves in trouble when adopting
Continuous Delivery. Below are four of the most common
pitfalls to avoid when implementing Continuous Delivery.
2. Confusing Continuous Delivery with
Continuous Deployment
1. Attempting to Build Continuous Delivery Since Continuous Delivery and continuous deployment
on Top of an Unstable (or Non-Existent) have very similar themes, its easy to understand the origin
Continuous Integration Foundation of this confusion. Continuous Delivery is the discipline
and infrastructure around the ability to deploy changes
Continuous integration is a foundational requirement whenever it makes sense for the business to do so. It does
for Continuous Delivery. The constantly referenced not require that every single developer commit directly
Continuous Delivery deployment pipeline is really out to production in real-time.
just the practices of continuous integration extended
to infrastructure management and the production Getting every single improvement out to customers the
environment. Thus, any successful CD implementation moment that it is checked in is so tantalizing that business
begins with a CI system that is stable, operationalized, and stakeholders often believe that this is the ultimate goal of
able to provide actionable data. The organization should Continuous Delivery. The metric of achieving commit-to-
also foster a company culture that knows how to react to release for all situations starts to be overly emphasized,
that data. leading to the Hawthorne Effect [1], where people improve
performance on the metrics they know theyre being
Many environments, however, have no continuous measured by. Unfortunately, the effect is often temporary.
integration currently deployed or a poor CI foundation for
CD. Common issues with CI infrastructures include: To emphasize the difference between Continuous Delivery
and continuous deployment, one just has to understand
Operating system configuration, libraries, and tool that Continuous Delivery is possible even in low-change
inconsistencies between developer and build/test/ tolerance, high risk environments, like a nuclear power
production environments. plant. In such situations, the focus isnt on continuously
PAGE 10 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
deploying updates to plant software and infrastructure, A great example of this is Mozilla Corporations move from
but rather on integrating and deploying it to staging 18+ month release cycles for its Firefox web browser to six
infrastructure so that even infrequent deployments will have week release trains. The move required a massive investment
a higher probability of success. in QA process and infrastructure, including a cultural change
so that every component of the browser and every bug fixed
To be clear, continuous deployment is not a fantasy: had a comprehensive suite of unit tests, ensuring that any
organizations who have long focused on their Continuous mistakes that would break the web would be easy to spot
Delivery pipelines and processes, like Etsy and Facebook, as the rate of change to the code-base increased. It required
do deploy changes at an attractively high rate. But for an investment in build/release infrastructure to support
organizations starting with Continuous Delivery, focusing running all of these tests on the supported platforms and
on the path commits take through the delivery pipeline, as mobile devices at a
opposed to the rate at which theyre deployed, will produce scale previously not
better initial results and a higher chance of permanent
adoption.
In the worst cases, encountered.
[1] http://en.wikipedia.org/wiki/Hawthorne_effect
organizations get In short, it required
that the business
excited about CD and invest heavily in
infrastructure which,
3. Complicated or Inconsistent Source
Code Workflows
try to skip over CI. to put it frankly, isnt
sexy and usually
doesnt provide
Continuous Delivery father Jez Humble often conducts an direct business value. In many software shops, infrastructure
informal survey during talks. Hell ask the audience to raise has been chronically underinvested in already, so they
their hand if they do continuous integration. Most hands go are already starting their CD initiative at a disadvantage.
up. His second question: Put them down if all the devs on Successful Continuous Delivery stories commonly emphasize
your team dont check into trunk/mainline/master at least the organizations commitment to investing in infrastructure
once a day. Many of the hands invariably go down. throughout the CD transformation and beyond.
PHONE: (323) 843-4483 LOCATION: Boston, MA, USA LAUNCH DATE: May 11 @xebialabs
PAGE 14 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Test and Environment Automation A Final Look at Some Guiding Principles for
The only manual testing in a deployment pipeline should Tools
be for tests that are tough for a computer to handle, such Its important to understand all the capabilities your team
as exploratory testing, inspection of user interface designs, needs before selecting the tools to build your Continuous
and user acceptance tests. The rest should be automated. Delivery system. The following list details the key areas you
Tools for automated testing should operate in a completely should always keep in mind when selecting tools:
headless (non-interactive) manner and be lightweight Visibility: Look for tools that have clear, comprehensive
enough to run across many test servers simultaneously. visualizations for everything that your organization needs
Teams also need to create testing environments on-demand to track.
by using environment automation tools that can provision a
VM and configure an environment template. Traceability: Select tools that will allow you to easily track
important metadata from your source code, infrastructure
Test Automation: JMeter, Selenium/WebDriver, Cucumber code, binary artifacts, application and infrastructure
(BDD), RSpec (BDD), SpecFlow (BDD), LoadUI (Performance), configuration, VM images, and the deployment pipeline
PageSpeed (Performance), Netem(Network Emulation), configuration.
SoapUI (Web Services), Test Kitchen (Infrastructure) Full Coverage: Tools must cover all of the applicable
Environment Automation: Vagrant, Docker, Packer environments in order for delivery to be consistent. If a
tool is too expensive to have in every environment, you
shouldnt choose it.
Server Configuration and Deployment
Current deployment tools support three models:
In addition to these tool selection suggestions, you should
Push model: Manages the distribution and installation of consider using separate tools for CI and visualization/
packages to multiple remote machines. Its a good choice orchestration, because these capabilities have different
for smaller systems because its usually simple and quick. requirements. You should also ensure that versioned,
Pull model: Requires an infrastructure configuration traceable artifacts are the key unit of currency for the
tool such as Chef or Puppet. Supporters say it scales deployment pipeline. Avoid simplistic linear sequential
better than push and like that it treats the deployment pipeline stages where parallel flows would better meet
of application code as another step in configuring the business needs. Finally, insist on a system that tracks,
infrastructure. measures, and visualizes the flow of artifacts toward
production so that all stakeholders can effectively engage
Hybrid model: Uses a push tool to trigger a pull client on with your software production process.
target servers.
For any of the three models, your team must ensure that the
process is fully automated, provides detailed information with
standard output and error messages, and allows easy and Insist on a system that tracks,
rapid rollback to a stable state.
measures, and visualizes the flow
Push deployment: Capistrano, Fabric, ThoughtWorks Go, of artifacts toward production so
MSdeploy, Octopus, RunDeck, various CI and build tools,
various ARA tools that all stakeholders can effectively
Pull deployment: Ansible, Chef, CFEngine, Puppet, Salt.
engage with your software
production process.
Monitoring and Reporting
Monitoring your system logs is essential for spotting
problems and halting the deployment pipeline. Rather
than manually collecting logs from each machine in an WRITTEN BY
environment, logs should be shipped to a central store that
indexes them and makes them available for searching via
Matthew Skelton
Matthew Skelton is an independent software
a web browser. This is a crucial capability for a Continuous consultant who helps organizations to design and
Delivery environment. The log store should be connected to operate effective software delivery practices, with
all environments (including the developers system) to speed a focus on the re-design and evolution of software
in order to support Continuous Delivery. He
up problem diagnosis and resolution. Most monitoring tools
initiated and helped to run PIPELINE 2014, the first
should work in a dynamic infrastructure and integrate with conference in Europe dedicated to Continuous
yours through scripted configuration. Delivery, having co-founded and organized the
London Continuous Delivery meetup group since
2012. He is writing two books: one on package
Log Aggregation & Search: Fluentd, Graylog2, LogStash,
management in a Windows environment, and one
nxlog, Splunk on software operability.
Metrics, Monitoring, Audit: Collectd, Ganglia, Graphite, Icinga,
Sensu, ScriptRock @matthewpskelton | matthewskelton.net
ca.com/atthecenter
2014 CA, Inc. All rights reserved.
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
PHONE: (800) 225-5224 LOCATION: Islandia, NY, USA LAUNCH DATE: January 07 @cainc
CONTINUOUS DELIVERY:
deployment pipelines, which are illustrated below. testing, or Exploratory Testing, can happen even after the and the change has already been deployed to
visualized
The first is a long, linear diagram with all of the possible change has already been deployed to Production. Production, the team should rollback Production to the
steps, and below that are two common deployment last working release.
pipelines with parallel-running steps. The parallel (wide) If significant issues are found in any long-running step,
Diagrams are based on Jez Humbles diagrams from the Continuous Delivery blog
pipelines allow teams to deploy to production sooner or and the change has not been deployed to Production, the (http://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns)
to wait for test results before deploying. team should manually halt the pipeline.
Special thanks to Matthew Skelton for helping build these diagrams.
USABILITY
TESTS PERFORMANCE
EXPLORATORY
EXPLORATORY TESTS STAGING &
STAGING & PRE-
PRE-
COMPILE
START COMMIT FOR COMPILED
TESTING
TESTING PRODUCTION
LANGUAGES
SMOKE TESTS
PRODU
PR ODUC
CTI
TION
ON DZO N E .CO M
PR
P RO
ODDU
UCCT
TIIO
ONN
Electric Cloud
End-to-End
Continuous Delivery
Deliver...
Enterprise Apps
Mobile Apps
Web Apps
Embedded Devices
Bacon
Cancel Faster
www.electric-cloud.com/cd
Used by leading companies to:
Accelerate builds Increase developer productivity Improve product quality
PHONE: (408) 419-4300 LOCATION: Sunnyvale, CA, USA LAUNCH DATE: September 06 @electriccloud
Infrastructure as Code:
W hen A u t o m a t i o n i s n t E n o u g h
B Y M itc h Pronsc h inske
Some of the best ideas in the tech industry, lofty goal for many of these cutting edge organizations
was to be able to completely rebuild a business software
many of which have revolutionized the way
systems with nothing more than physical server resources,
organizations build software, have come from a complete backup of their databases, and source code.
the cross-pollination of strategies and best Today, thats how many modern successful tech businesses
operate. They have the ability to do exactly that.
practices that occurs when all teams from
the organization leave their silos and work Infrastructure Automation at Scale
together on their most difficult problems. Its Infrastructure automation is the process of automatically
running a set of custom actions to install an operating
widely understood that progress often comes
system on a virtual or physical server and then configure
from the sharing of ideas, so its no surprise it according to specifications. When virtualization and
that the fundamental principles behind cloud infrastructure became widely available, the new IT
DevOps are widely accepted as beneficial strategies that emerged were only achievable through
some form of infrastructure automation. The ability to spin
practices. up new virtual machines in minutes meant that a manual
installation with step-by-step instructions for the sysadmin
Agile workflow methodologies were embraced early on by wasnt going to cut it anymore. Those previously manual
the development community, and today they are widely steps would now need to be handled by software in
shared with business and operations teams. Continuous conjunction with the creation of the VMs. Otherwise, the
Delivery is an expansion of the concepts behind full value of cloud and virtualization strategies wouldnt
continuous integration. Continuous integration started be realized.
as a development strategy and expanded to encompass
production deployments, which meant bringing the However, infrastructure automation brings its own set of
operations team into the mix. When the principles of challenges. Any form of automation can cause a host of
DevOps came into play, the concept of Continuous new issues if it is not carefully managed. Server image
Delivery emerged. templates and copies (clones) are the first step in handling
the scale of cloud and virtualization management, but if
One of the most powerful innovations spawned by those templates or copies have any instructions that will
the DevOps movement was the idea that operations cause problems, bad configurations get copied again and
departments could manage the configurations of servers again, propagating the issue to a large number of servers.
and virtual machines the same way that developers Automating correct infrastructure settings on a large scale
manage the configurations in their softwares source can be a powerful ability, but it can be equally devastating
code. This doesnt simply mean command line scripts, if automation instructions are not composed carefully.
which sysadmins were already familiar with. It means
using a description language or full-fledged programming There are also dangers that come with the ease and
language to manipulate infrastructure in an automated, speed of growing an organizations infrastructure portfolio
repeatable way. when they have automation in place. Its very difficult
with the basic automation that many organizations use to
keep up with an infrastructure that is constantly growing
Infrastructure as Code
and changing. The biggest problem that infrastructure
With the arrival of tools like CFengine, Puppet, and Chef, automation can cause is Configuration Drift.
the concept of Infrastructure as Code was born. These
tools enable developers and sysadmins to abstract their From the Continuous Delivery Report glossary:
problems around maintaining modular, automatable
infrastructure, and being able to define them using a
high-level language. Once teams started using these tools
Configuration Drift: A term for the general
and techniques, building and maintaining their server
environments began to closely resemble the way that tendency of software and hardware configurations to
software developers build and maintain application source drift, or become inconsistent with the baseline or template
code.
version of the system due to manual ad hoc changes (like
All of the testability, repeatability, and transparency of a hotfixes) that are not introduced back into the template.
modern software development process suddenly became
available for people who were building infrastructure. The
PAGE 22 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Many of todays deployment problems and IT outages are Refactor the infrastructure code to reduce the amount of
caused by Configuration Drift. Configuration Drift isnt maintenance needed.
limited to infrastructure configuration, either. Middleware
settings also experience a great deal of untracked changes
in many organizations. This causes numerous Configuration
Tooling Expectations
Drift-related errors, especially in testing and acceptance Organizations dont want to waste their time or money using
environments. Disaster recovery and high availability failures tools that dont provide the features needed to avoid the
are also common results of Configuration Drift. Having a biggest pitfalls in Continuous Delivery. Beware of tools that
feature in your deployment automation solution, whether let you easily create endless server templates but dont allow
its custom or provided by a product vendor, is highly proper traceability for template changes like the inevitable
recommended. Detecting configuration drift is the first step quick fixes that are prevalent in software production.
to overcoming it. The software should be able to externalize infrastructure
code definitions that can be stored in common version
Its important to note that infrastructure automation is control systems. Organizations should be wary of tools
not the same as Infrastructure as Code. Infrastructure that dont allow the usage of community tools that benefit
automation can take repeatable actions and enact them from large community
across any number of servers, but Infrastructure as knowledgebases. Its better
Code includes tools and capabilities from the software
development world to build, maintain, and test those actions
to use tools that are flexible One of the most
and allow you to produce
in a more manageable way. future-proof systems that powerful innovations
can take advantage of the spawned by the
many innovations in the
Developer Lessons for Infrastructure
as Code
wider development tooling DevOps movement
community.
was the idea that
The biggest danger when trying to integrate an Infrastructure Infrastructure as Code operations departments
as Code-enabling configuration management tool like Chef, emerged from the
SaltStack, or Ansible in your software production process is development community could manage the
not applying the same lessons learned by the development
world in the last ten years. Infrastructure code needs to be
through open source configurations of servers
configuration management
version controlled, tested, maintained, quickly deployed, and tools that were shared because and virtual machines
crafted for easy usability. so many organizations were
having the same problems
the same way that
Development principles that date all the way back to
the beginning of Extreme Programming will provide the
when using basic, non- developers manage the
programmatic infrastructure
best guidance for making Infrastructure as Code into a automation. The best piece configurations in their
blessing rather than a curse. These are the principles that
organizations who are new to Infrastructure as Code should
of advice to internalize about softwares source code.
using Infrastructure as Code
focus on: is to stay connected to the
vast community of innovative
Include infrastructure code in the software development developers. If your systems remain open to the rapid changes
lifecycle by putting it through build, testing/QA, and in that community, youll be able to share and benefit from
production along with application code. the cutting-edge ideas that will make your organization
Start with and maintain a simple design for your successful.
infrastructure code and any new features. Use design
patterns.
Have the infrastructure team agree on the design and
direction of the system.
Institute code reviews with the help of team notifications
for each commit. Pair programming is also helpful.
Maintain a shared set of coding standards for the
infrastructure code.
WRITTEN BY
Continuously test with as many of the same styles
of development testing that could be applicable to Mitch Pronschinske
Infrastructure as Code. This ensures that the code Mitch Pronschinske is the Head Analyst for
definitions produce the correct environments and dont DZones Research division. He has been writing,
curating, and editing content for an audience of
introduce problems.
IT professionals for over four years. In that time
Employ infrastructure monitoring for testing and pre- he has learned the complexity that software
production environments as well as the production producers deal with on a daily basis, and he strives
to make their world easier to understand and digest.
environment.
I ntermediate Visibility
FF Periodic static code analysis
FF Automated functional testing
TOTA L
A dvanced
FF Integrated management and maintenance of the test data 0-7 Adequate 8-11 Average 12-14 Skilled
FF Automated performance & security tests in target environments 15-17 Adept 18-20 Master
E x p ert
FF Automated acceptance testing
Inspired by Chris Shayan and Eric Minick
PAGE 24 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
SOLUTIONS DIRECTORY
In the following Continuous Delivery Solutions By visiting this URL, you will be taken to an expanded
Directory, you will find a side-by-side comparison profile for the given solution where you can explore a
of the many solutions available to build out your much more comprehensive set of features and details.
continuous delivery toolchain. Each solution profile In addition to the ability to see expanded profiles,
will give you a glimpse of the essential set of criteria the companion site also gives you the ability to run a
for categorizing and assessing each tool. side-by-side comparison of selected solutions by your
chosen features and criteria.
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Solaris Bamboo has all the capabilities of a Solaris RepliWeb is a deployment platform
AIX CI server by running builds and tests. AIX for applications and large-file
It also connects issues, commits, content. The platform addresses
Other (See companion site) Other (See companion site)
test results, and deploys using other a wide range of deployment,
STRENGTHS pieces of the Atlassian tool suite, STRENGTHS replication and data transfer
Build results and such as JIRA. This gives the entire Accelerated large-file scenarios for operations, developers,
deployment status project team, including developers, deployments across content creators, and business
inside JIRA issues project managers, testers, and WANs and LANs continuity teams. RepliWeb includes
Automatically applies sysadmins, wide visibility into the Ad hoc and a template deployment processes,
your CI scheme to entire project from commit to programmatic package customized UIs with role-based
new branches in your deployments
repository
production. To support Continuous access, proprietary transfer engines,
Delivery, Bamboo can automate the Defines multi-tiered, comprehensive monitoring and
Deployment automation entire delivery pipeline.
multi-stage deployment
reporting, and full rollback across
from master or dev topologies
branches server and application states.
Provides lines-of-
Easy parallelization of business with job
build steps execution and visibility
into deployment
Hosting Options Supported CI Engines
On-premise and cloud FREE TRIAL Microsoft TFS FREE TRIAL
hosted
30-day full-feature trial 15-day free trial with approved POC
definitions
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Solaris Automics ONE Automation Platform Solaris BMC Release Lifecycle Management
AIX provides a centralized platform for AIX is a process flow and application
developers, QA, and operations to deployment solution that includes
Other (See companion site) Other (See companion site)
coordinate and automate the entire technology from Varalogix, a
STRENGTHS application release. Deployments STRENGTHS deployment automation firm that
Use the same workflow and releases can be coordinated Includes planning, BMC acquired in 2012. The broad
in every environment with other critical business processes coordination, and ARA solution now features a
(Dev - QA - UAT - such as workload, batch, or approval, automation execution centralized management console
Production)
ensuring that releases do not have Compatible with many and a release repository for archiving
Automatic rollback any negative impact on business as existing prominent open application components, along with
source and commercial
Deployments done with usual. products
a drag-and-drop web UI for building
managed file transfer multi-tier application deployment
Trend-spotting features templates.
for the release process
in visualization interface
PAGE 26 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
CA Release Automation
ARA CFEngine Community CM
Product Launch: Jan-07 TWITTER: @cainc LOCATION: Islandia, NY, USA Product Launch: Jan-94 TWITTER: @cfengine LOCATION: Oslo, Norway, EU
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Agents Installed
FREE TRIAL CircleCI FREE TRIAL
CloudBees Continuous
Delivery Platform CI Codeship CI
Product Launch: Jan-11 TWITTER: @CloudBees LOCATION: Woburn, MA, USA Product Launch: May-11 TWITTER: @codeship LOCATION: Cambridge, MA, USA
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
ElectricCommander
Drone.io CI ElectricAccelerator CI, ARA
Product Launch: Feb-14 TWITTER: @droneio LOCATION: San Francisco, CA, USA Product Launch: Sep-06 TWITTER: @electriccloud LOCATION: Sunnyvale, CA, USA
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
PAGE 28 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Hudson Continuous
Integration Server CI IBM UrbanCode Deploy ARA
Product Launch: May-06 TWITTER: @hudsonci LOCATION: Ottawa, Canada Product Launch: Sep-11 TWITTER: @UrbanCode LOCATION: Armonk, NY, USA
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
PAGE 30 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Solaris Puppet Open Source is an IT Solaris The Rocket ALM Hub is an end-
AIX automation product under the AIX to-end solution that provides
Apache 2.0 license that gives multi-platform application lifecycle
Other (See companion site) Other (See companion site)
system administrators the ability to management automation for
STRENGTHS automate repetitive tasks using a STRENGTHS deployment automation. Rocket
Free and open source declarative, model-based approach Multi-platform focuses on organizations managing
under Apache 2.0 to IT automation. Puppet Open management multiple releases, ensuring
license Source automates tasks at many applications are deployed to the
Point and click process
Large, active stages of the IT infrastructure setup correct locations with the most
community of users and lifecycle, including: provisioning, up-to-date builds. The Hub provides
contributors
Integrated issue tracking
OS and application configuration automation, visibility to everyone,
DSL that is easy to Integrated service desk
management, and orchestration. security, and repeatable process
learn and use for both Automated promotion, creation. The software also includes
operations teams and build, and deployment
developers reporting and IT compliance.
A secure declarative
model that enables true
simulation runs
Agent Model Supported CI Engines
Agents Installed FREE TRIAL Jenkins/Hudson FREE TRIAL
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Solaris Semaphore lets developers create a Solaris Serena Release Manager is an ARA
AIX continuous delivery workflow with AIX and configuration management
a testing and deployment solution solution that allows developers
Other (See companion site) Other (See companion site)
in the cloud, built on dedicated to manage the implementation of
STRENGTHS hardware. Semaphore automatically STRENGTHS software changes in the production
Quick setup process configures the build and deploy Insights through environment. Release Manager is
through GitHub environment for a growing list dashboards and designed to support the application
integration of languages and frameworks. It reporting release management lifecycle from
Automatic project works without any change in source Approval and demand to deployment, including
configuration that works code. Collaborators can follow the notification system can planning and tracking the steps
without any changes in be calendar-based, rule-
source code
progress on a live project timeline. based, or on-demand
of releasing applications, greater
Semaphore requires that you use visibility into those processes, and a
Parallel testing GitHub for source control, and it is
Reusable processes way to enforce release policies.
capabilities for that can be tailored
languages and tightly integrated with their system. to release type with
frameworks supporting audit trail
Live project timeline Single UI that supports
and server deployment multi-platform apps
history
Supported CI Engines
PAGE 32 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
Shippable CI Thoughtworks Go CI
Product Launch: Mar-14 TWITTER: @BeShippable LOCATION: Seattle, WA, USA Product Launch: Jul-10 TWITTER: @thoughtworks LOCATION: Chicago, IL, USA
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
XebiaLabs XL Deploy
Travis CI CI ARA
Product Launch: Feb-11 TWITTER: @travisci LOCATION: Berlin, Germany, EU Product Launch: May-11 TWITTER: @xebialabs LOCATION: Boston, MA, USA
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
Supported Target Systems: FULL PROFILE LINK Supported Target Systems: FULL PROFILE LINK
PAGE 34 2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
2 01 4 G U I D E TO CO N T I N U O U S D E L I V E RY
GLOSSARY OF TERMS
Watch our
demo
ONE Automation lets you give them the one thing they need most - time.