1. The document discusses improving the software development process through local development, code collaboration, continuous integration, and deployment with Chef automation tools.
2. Key aspects covered include writing tests, documentation, and commit messages to enable safe, compliant, and fast changes.
3. Setting up continuous integration with tools like ChefSpec, Test Kitchen and Jenkins is recommended to test and validate code changes before deployment.
6. Ye Olde Automation Pattern
• Local Development (Vagrant, Chef, SSH)
• Source Control (Maybe)
• CI (Run it again!)
• Chef Server (chef-solo?)
• Deploy! (cross your fingers)
9. The path to safety
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
10. What
local development
/ˈlōk(ə)l dəˈveləpmənt/
noun
1. Development performed in an isolated environment, such as a laptop or individual virtual machine
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
ChefSpec Berkshelf
14. What
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
Isolation Collaboration
● No one can break my stuff
● In pursuit of perfection
● I know how it all works
● The Bubble
● My stuff could break at any moment
● Good enough to share
● I teach others how my piece works
● Leaving the Nest
15. What
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
documentation
/ˌdäkyəmənˈtāSH(ə)n/
noun
1. material that provides official information or evidence or that serves as a record
commit message
http://programmers.stackexchange.com/questions/52267/why-should-i-write-a-commit-message
Q: Why should I write a commit message? - acidzombie24
A: Because when some poor maintainer is hunting a bug and finds that it was added in rev. xyz, he will
want to know what rev. xyz was supposed to do. - Peter Taylor
16. When you file a pull request, all you’re doing is requesting that another developer
(e.g., the project maintainer) pulls a branch from your repository into their
repository.
https://www.atlassian.com/git/tutorials/making-a-pull-request
What
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
17. What
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
continuous integration
/kənˈtinyo͞ oəs ˌin(t)əˈɡrāSH(ə)n/
noun
1. a software development practice where members of a team integrate their work frequently
continuous delivery
/kənˈtinyo͞ oəs dəˈliv(ə)rē/
noun
1. a software development discipline where you build software in such a way that the software can be
released to production at any time
19. What
Code CollaborationLocal Development
Continuous
Integration
Chef Code
Deployment
What do you need to get started?
● SCM credentials (deploy key)
● Chef server account (service account)
● https://github.com/zts/cooking-with-jenkins
● http://www.cryptocracy.
com/blog/2014/01/03/cooking-with-jenkins-test-
kitchen-and-docker