CONTINUOUS INTEGRATION
AND DELIVERY IN THE CLOUD:
HOW RIGHTSCALE DOES IT
• Kim Weins
• VP Marketing, RightScale
• Efrain Olivares
• Senior Software QA Engineer, RightScale
• Tony Spataro
• Architect, RightScale
Q&A
• Steven Kochenderfer
• Sales Development Representative, RightScale
Please use the “Questions” window to ask questions at any time
Your Panel Today
• Accelerating Application Delivery
• State of the Art in Development Practices
• Continuous Integration
• Continuous Delivery
• DevOps
• How RightScale Helps
• How RightScale Does It: Three Examples
• Agile Regression Testing for ServerTemplates
• Continuous Integration of RightScale platform
• Continuous Delivery of RightLink
Agenda
2
Winning in the Age of the Customer
3
“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
The Current State of Development (waterfall)
4
Infrastructure
& Operations
App/Site
Development
Platform
Engineering
Lack of Agility Project Delays Lower Quality
Rework Rework
Handoffs Handoffs
A Better Model: Automate Small Batches
Licensed under Creative Commons Attribution 3.0 Unported License
Author: Christopher Little
Some (Extreme) Examples
6
Deploy every 11.6 seconds
25+ deployments per day
10+ deployments per day
Your Roadmap to Application Agility
7
Code Build Integrate Test Release Deploy Operate
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
DevOps
Best Practices for CI/CD
8
Continuous
Integration
Successful
Build?
Automated
Testing
Provision
Test
Infrastructure
Report on
Test Results
De-Provision
Test
Infrastructure
Continuous
Delivery
Successful
Test?
Acceptance
Test
Provision
Staging
Infrastructure
Read
y
Continuous
Build
Source Code
Commit
Automated
Build
Provision
Build
Infrastructure
Report on
Build Results
De-Provision
Build
Infrastructure
DevOps: Agility of Code & Infrastructure
9
Impact of DevOps Application
Development
Infrastructure
& Operations
Platform
Engineering
DevOps
Increase release frequency
Reduce lead time for changes
Increase quality
Shorten Mean Time to Recover
Key Enabling Technologies for DevOps
10
Multi-Cloud
Management
Configuration
Management
Continuous
Integration
Self
Service
DevOps
• Multi-Cloud Support
• Public, private or virtualized
• Support Infrastructure-as-Code model
• Consistency across environments (Dev, Test, Staging, Prod)
• Automation of Infrastructure as part of Application Lifecycle
• Provision/Scale/Update/Decommission
• Provide Self-Service to Developers
• Reduce cycle times at every stage
How RightScale Helps
11
RightScale: Infrastructure-as-Code Lifecycle
12
Continuous Integration System Jenkins, Hudson, Travis CI
AWS Windows Google CloudStack OpenStack self service
Infrastructure-
as-code RightScale
Source Code
Version Control
Build
Automation
Test
Automation
Code Dev Tools
Configuration
Management Tools Chef, Puppet, Salt
Multi-Cloud Management RightScale
Self-Service
Portal RightScale
Self-Service
Catalog RightScale
Dev Test Staging Prod
RightScale Integrates with the Ecosystem
13
How RightScale Helps: A CI/CD Example
14
Developer
Environment
Source Code
Repo CI RightScale API
Developer
commits code
GitHub
triggers CI
CI starts test
environment
Tests
pass?
Deploy
Test Env in cloud
CI runs test Decommission
Test env in cloud
Execute scripts
to update code
Update
Deploy new
infrastructure,
test, failover
Redeploy
Cloud Management
How RightScale Does It
Case Study: Regression
Testing Lots of Permutations
96 ServerTemplate
Tests
43 Cloud/OS
combos
CASE STUDY: TESTING LOTS OF
PERMUTATIONS HUGE Test Matrix
Automated Testing of ServerTemplates
18
RightScale
Repo
Server
Template Server
Template Server
Template
Jenkins CI Test
Matrix GoogleDoc
Test
Orchestrator RocketMonkey Initiate
jobs
Automated
Test Tool VirtualMonkey
RightScale API
RightScale
Deployments
Cloud Infrastructure
Testing
Deployment
Testing
Servers Testing
Servers Testing
Servers Testing
Servers Testing
Servers Testing
Servers
Testing
Servers Testing
Servers Testing
Servers Testing
Servers Testing
Servers Testing
Servers
Read
matrix
1. Deploy test
infrastructure
Provision
Auto-scale
Decommission
Testing
Deployment Testing
Deployment
2. Run test
scripts
Jenkins
Slave Jenkins
Slave Jenkins
Slave
4. Email
results
Test
Report
Scale up instances as
needed for tests
Deployments
pull latest
ServerTemplates
3. Update matrix with results
Saving Time, Reducing Manual Effort
19
Case Study: Scaling CI
Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers
Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers
Code commits
Jenkins CI
Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers
Continuous Integration of RightScale Platform
22
GitHub
Repo
Server
Template Server
Template RightScale
code
Test
Report
Code commit
triggers CI Jenkins CI
RightScale auto-scales Jenkins slaves
up and down depending on backlog of tests
Jenkins
Slave
Tests
Jenkins
Slave
Tests
Jenkins
Slave
Tests
…
Jenkins running on RightScale
Case Study: Deliver RightLink Package
23
Before – 12-18 month release cycle
RightLink
release Bugs
What
caused it?
Code Changes
Continuous Delivery of RightLink
24
GitHub
Repo
Server
Template Server
Template RightLink
code
Jenkins CI
Unit
Test Tool RightScale API
Cloud Infrastructure
Testing
Server
Test
Report
Code commit
triggers CI
Immediate
unit tests
Nightly
integration tests
Chef
test
scripts
RightScale API
Cloud Infrastructure
Upload nightly
build
AWS S3
Bucket RightLink
package
Testing
Server Testing
Server
Chef
test
scripts
Chef
test
scripts
Continuous Delivery: Release Whenever
After – Release at any time
Code Changes
Continuous Integration
RightLink
release
RightLink
release
RightLink
release
RightLink
release
• Multi-Cloud Support
• Public, private or virtualized
• Support Infrastructure-as-Code model
• Consistency across environments (Dev, Test, Staging, Prod)
• Automation of Infrastructure as part of Application Lifecycle
• Provision/Scale/Update/Decommission
• Provide Self-Service to Developers
• Reduce cycle times at every stage
Recap: How RightScale Helps
26
27
Next Steps and Q&A
Sample code for CI with RightScale https://github.com/rgeyer/rs_ci_app_rails
RightScale Free Trial www.rightscale.com/free-trial