Quick software release is a core business process at fast growing organizations. Yet, on many teams this important process is manual or semi-automated — an approach that's painful, risky, costly and time consuming. Using DevOps tools to implement Continuous Integration can dramatically improve your software delivery pipeline.
Follow along with the webinar recording at http://youtu.be/u8PdgQvoSVo featuring @rgbkrk @rackninja from the Rackspace DevOps Automation Team and learn how to effectively deliver applications on API-driven infrastructure.
Additional resources available at:
http://www.rackspace.com/devops/
https://github.com/rackspace-cookbooks
https://github.com/rackspace-cookbooks/contributing
http://misheska.com/blog/2013/06/16/getting-started-writing-chef-cookbooks-the-berkshelf-way/
http://docs.ansible.com/intro_getting_started.html
https://travis-ci.org/
http://travis-ci.com/
4. 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
17. 17RACKSPACE® HOSTING | WWW.RACKSPACE.COM 17
How the DevOps Automation
Service tests our cookbooks
18. 18RACKSPACE® HOSTING | WWW.RACKSPACE.COM
Practical examples with Chef
•Our pipeline for testing
cookbooks
•Testing your chef powered
infrastructure
20. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
21. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
22. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
23. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
24. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional tests
Test-kitchen + serverspec
25. Our CI pipeline for Chef cookbooks
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional tests
Test-kitchen + serverspec
Thor
Human/automated
Post Steps
Final
26. 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)
27. 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).
29. Application Cookbook Workflow
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional tests
Test-kitchen + serverspec
Do not destroy instance
30. Application Cookbook Workflow
CI serverJenkins
WorkflowRake
Ruby Syntax/lint
Chef Syntax/lintFoodcritic
Unit testChefspec
Functional tests
Test-kitchen + serverspec
Do not destroy instance
Jenkins steps or additional jobs:
Integration tests, load tests, user tests, etc
Human/automated
Post Steps
Final
32. Deployment Workflow Model
CI serverJenkins
Chef Workflow
Test-kitchen + serverspec
Do not destroy instance
Additional JobsDeployment workflow executed
33. Deployment Workflow Model
CI serverJenkins
Chef Workflow
Test-kitchen + serverspec
Do not destroy instance
Additional JobsDeployment workflow executed
Integration tests, load tests, user tests, etc. Additional Jobs
34. Deployment Workflow Model
CI serverJenkins
Chef Workflow
FinalHuman/automated
Test-kitchen + serverspec
Do not destroy instance
Additional JobsDeployment workflow executed
Integration tests, load tests, user tests, etc. Additional Jobs