Académique Documents
Professionnel Documents
Culture Documents
INTEGRATION
+ DELIVERY
IN THE CLOUD
How We Do It at RightScale
CONTENTS
CONTINUOUS
INTEGRATION
+ DELIVERY
EXPLAINED
Continuous integration (CI) is the practice of automatically integrating and testing a piece of
software each time code is committed by a developer. Continuous delivery (CD) goes a step
further to package the software, perform regression testing, and ensure that the software is ready
for release. Continuous deployment, sometimes used interchangeably with continuous delivery,
is most relevant for web-hosted and SaaS applications and automates the process all the way
through to deployment into production.
To reduce time-to-market of new features and products, RightScale leverages a variety of modern
development practices, including agile development, CI, and CD. We dont follow a one-sizefits-all approach. Rather, the development practices we choose for each product or component
depend on the business goals we are trying to achieve. In addition, we leverage our RightScale
Cloud Portfolio Management platform heavily to automate provisioning and management of all
of our cloud infrastructure and tightly integrate with our development processes.
Faster application
delivery enables
competitive
differentiation.
Applications have
become the means by
which organizations
attract customers and
deliver value; better
applications, delivered
faster, drive faster
business growth.
Forrester Research
Automating Infrastructure
In order to leverage cloud environments as part of a CI/CD development model, companies need
to automate not only the build, integration, and testing processes, but also the provisioning and
de-provisioning of infrastructure needed to support these processes. In addition, organizations
need to ensure consistency among the various infrastructure environments as code moves from
development to test to staging and then production.
At RightScale, we leverage our own platform to manage and automate infrastructure as part
of CI/CD processes. We leverage three key capabilities:
Multi-cloud support: The RightScale platform provides a multi-cloud API that enables us
to deploy our infrastructure to any cloud at any point in the lifecycle. For example, we can
leverage capacity in a VMware vSphere environment during development phases then deploy
to a public cloud for testing and production.
Automate infrastructure: With the RightScale API, we can automate all of the provisioning,
updating, scaling, and deprovisioning of infrastructure and integrate those processes into
our CI/CD tools and processes.
CONTINUOUS
TESTING
IN THE CLOUD
21
We know that
high performers are
deploying code
30 times more
frequently. We know
they can complete
those deployments in
minutes or hours as
opposed to weeks,
months, or quarters.
In a production
deployment, high
performers are twice as
likely to succeed, and
once something goes
wrong, they can fix the
issues 12 times faster.
Gene Kim
Author of The Phoenix Project:
A Novel About IT, DevOps, and
Helping Your Business Win
10
21
As the number of ServerTemplates, tests, and clouds grew, the result was a test matrix that had as
many as 2,500 possible combinations:
Although we were using Jenkins as a front end to our homegrown regression testing tool,
VirtualMonkey, the amount of time and manual effort to set up the test matrix (which was
originally a GoogleDoc), execute the tests, and review the results quickly became unmanageable.
In addition, each cell in the above matrix represented a test that might take 20 minutes to 2 hours.
We needed to balance running tests in parallel to reduce the elapsed time with serializing tests
in order to manage the cloud capacity and budget required.
2015 RightScale, Inc. All rights reserved.
11
21
12
21
After the jobs are configured, the test activity is coordinated by RocketMonkey, which selectively
triggers jobs in Jenkins, which in turn uses VIrtualMonkey to execute the test scripts. The test
scripts call the RightScale API to provision, auto-scale, and deprovision cloud deployments as
required for each tests. These cloud deployments are defined within RightScale and pull the latest
versions of the ServerTemplates that are under test.
RocketMonkey provides control of the test execution at a high level, allowing us to address several
issues that are a direct result of large-scale testing. It can be configured to link verticals or rows in
the test matrix, allowing for running tests on a specific cloud or the same test across all the clouds
at will. The tests can be linked to run serially, so they consume a limited level of cloud resources
while they run overnight unattended or in parallel to provide time efficiency.
13
21
As tests complete, a generated HTML report based on the original GoogleDoc is automatically
updated with a status icon so that the QA team can easily see how the tests are progressing.
The automation can also be set to auto-halt testing if repeated failures are detected, say, for
example, if there are network problems. Finally, one of the biggest time savings is in the automatic
management of the result logs, which are available via links on the individual green/red dots:
14
21
15
DYNAMIC
SCALING OF
JENKINS
IN THE CLOUD
31
17
31
18
31
DevOps and
continuous delivery are
most likely to occur with
the help of cloud-based
tools or when operating
in cloud infrastructure.
Seventy-seven percent
[of developers] said
their continuous delivery
effort was executed
either primarily or
entirely through the
cloud, while 18.8 percent
said it was primarily done
through on-premises
infrastructure.
Charles Babcock
Editor-at-large at
InformationWeek,
citing results of the
Evans Data Corporation
North American
Development Survey 2014
19
31
20
CONTINUOUS
DELIVERY OF
SOFTWARE
PACKAGES
IN THE CLOUD
41
Continuous delivery in the cloud enables a more agile software delivery process to enable you
to deliver releases to your customers more quickly. By implementing continuous delivery of
our RightLink package, it has enabled the RightScale development organization to release as
frequently as needed based on customer demands.
22
41
23
41
24
KEY TAKEAWAYS
+ ADDITIONAL
RESOURCES
51
Key Takeaways
Rather than adopting a one-size-fits-all approach for development, the practices we choose at
RightScale for each product or component depend on the business goals we are trying to achieve.
By embracing the agile development practices of continuous integration and continuous delivery
and by leveraging our own RightScale Cloud Portfolio Management platform to automate
provisioning and management of all of our cloud infrastructure, we have reduced the time-tomarket of new features and products.
To be highly effective, your continuous integration and continuous delivery processes might
incorporate some or all of these components:
26
www.rightscale.com