Using DevOps Tools to Achieve Continuous Integration
-
Upload
rackspace -
Category
Technology
-
view
389 -
download
1
description
Transcript of Using DevOps Tools to Achieve Continuous Integration
![Page 1: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/1.jpg)
Using DevOps Tools to Achieve Continuous Integration
![Page 2: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/2.jpg)
2RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Speakers
Kyle KelleyDeveloper Support Engineer
@rgbkrk
2
Ryan Richard, RHCADevOps Automation Team
Lead
@rackninja
![Page 3: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/3.jpg)
3RACKSPACE® HOSTING | WWW.RACKSPACE.COM 3
First, a precursor
![Page 4: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/4.jpg)
4RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Why are we here?
•We are all building up similar systems
•Similar configurations, minor tweaks
•Want:
•More time for applications and business
•Less time doing SysOps
![Page 5: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/5.jpg)
5RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Keep Deploying!
•Let’s keep that product going
•Let’s keep delivering!
![Page 6: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/6.jpg)
6RACKSPACE® HOSTING | WWW.RACKSPACE.COM
What can we do?
•Write tests
•Use Continuous Integration
•Use version control, particularly git
![Page 7: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/7.jpg)
7RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Let’s Test!
![Page 8: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/8.jpg)
8RACKSPACE® HOSTING | WWW.RACKSPACE.COM
![Page 9: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/9.jpg)
RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM
![Page 10: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/10.jpg)
10RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Object Placeholder
Downtime
•It’s going to happen
•Assume failure
•Have a rollback strategy
-for your application
![Page 11: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/11.jpg)
11
Testing with Open Source Tools
![Page 12: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/12.jpg)
RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM 12RACKSPACE® HOSTING | WWW.RACKSPACE.COM
![Page 13: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/13.jpg)
13RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Minimal .travis.yml
language: python
python:
– “2.6”
– “2.7”
– “3.2”
– “3.3”
# install dependencies
install: “pip install .”
# run tests
script: nosetests
![Page 14: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/14.jpg)
14RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM RACKSPACE® HOSTING | WWW.RACKSPACE.COM 17RACKSPACE® HOSTING | WWW.RACKSPACE.COM 17RACKSPACE® HOSTING | WWW.RACKSPACE.COM
![Page 15: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/15.jpg)
15
Need more build power?
![Page 16: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/16.jpg)
![Page 17: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/17.jpg)
17RACKSPACE® HOSTING | WWW.RACKSPACE.COM 17
How the DevOps Automation Service tests our cookbooks
![Page 18: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/18.jpg)
18RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Practical examples with Chef
•Our pipeline for testing cookbooks
•Testing your chef powered infrastructure
![Page 19: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/19.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
![Page 20: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/20.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
![Page 21: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/21.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
![Page 22: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/22.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
![Page 23: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/23.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
![Page 24: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/24.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional testsTest-kitchen + serverspec
![Page 25: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/25.jpg)
Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional testsTest-kitchen + serverspec
Thor
Human/automated
Post Steps
Final
![Page 26: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/26.jpg)
26RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Two modes of application delivery
Webhook Cookbook
Python MongoSupervisord
• Build an application cookbook that can deploy latest version of the application/artifact (chef specific)
![Page 27: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/27.jpg)
27RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Two modes of application delivery
Webhook Cookbook
Python MongoSupervisord
• Build an application cookbook that can deploy latest version of the application/artifact (chef specific)
• External workflow for application delivery• (Capistrano, fabric, etc).
![Page 28: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/28.jpg)
Application Cookbook Workflow
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
![Page 29: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/29.jpg)
Application Cookbook Workflow
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional testsTest-kitchen + serverspecDo not destroy instance
![Page 30: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/30.jpg)
Application Cookbook Workflow
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional testsTest-kitchen + serverspecDo not destroy instance
Jenkins steps or additional jobs:Integration tests, load tests, user tests, etc
Human/automated
Post Steps
Final
![Page 31: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/31.jpg)
Deployment Workflow Model
CI serverJenkins
Chef WorkflowTest-kitchen + serverspecDo not destroy instance
![Page 32: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/32.jpg)
Deployment Workflow Model
CI serverJenkins
Chef WorkflowTest-kitchen + serverspecDo not destroy instance
Additional JobsDeployment workflow executed
![Page 33: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/33.jpg)
Deployment Workflow Model
CI serverJenkins
Chef WorkflowTest-kitchen + serverspecDo not destroy instance
Additional JobsDeployment workflow executed
Integration tests, load tests, user tests, etc. Additional Jobs
![Page 34: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/34.jpg)
Deployment Workflow Model
CI serverJenkins
Chef Workflow
FinalHuman/automated
Test-kitchen + serverspecDo not destroy instance
Additional JobsDeployment workflow executed
Integration tests, load tests, user tests, etc. Additional Jobs
![Page 35: Using DevOps Tools to Achieve Continuous Integration](https://reader035.fdocuments.in/reader035/viewer/2022062319/554f875fb4c905435d8b4c84/html5/thumbnails/35.jpg)
RACKSPACE® HOSTING | 1 FANATICAL PLACE | SAN ANTONIO, TX 78218
US SALES: 1-800-961-2888 | US SUPPORT: 1-800-961-4454 | WWW.RACKSPACE.COM
RACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COMRACKSPACE® HOSTING | © RACKSPACE US, INC. | RACKSPACE® AND FANATICAL SUPPORT® ARE SERVICE MARKS OF RACKSPACE US, INC. REGISTERED IN THE UNITED STATES AND OTHER COUNTRIES. | WWW.RACKSPACE.COM