5. Managing Complexity
• SSH, make with the typey typey
• Keep notes in ~/server.txt
• Move notes to the wiki
6. Managing Complexity
• SSH, make with the typey typey
• Keep notes in ~/server.txt
• Move notes to the wiki
• Custom scripts (setup.sh)
7. Managing Complexity
• SSH, make with the typey typey
• Keep notes in ~/server.txt
• Move notes to the wiki
• Custom scripts (setup.sh)
• Golden Images
8. Golden Images are not the answer
• Gold is heavy
• Hard to transport
• Hard to mold
• Easy to lose
configuration detail
http://www.flickr.com/photos/garysoup/2977173063/
15. Managing Complexity
• SSH, make with the typey typey
• Keep notes in ~/server.txt
• Move notes to the wiki
• Custom scripts (setup.sh)
• Golden Images
• Policy-driven configuration management
16. Policies
• Declarations about the state of thing in a system
• applied repeatedly and repair the system when needed
• often change
17. Repeatable Operations
• Idempotent
• can be applied an infinite number of times and yield the same result every time
• Convergent
• test state and repair if needed
21. What is Chef?
• Framework for managing complexity
• Infrastructure as code
• a domain-specific language (DSL) for describing convergent operations
• A community of professionals
• A company
22. The Chef Software Platform
Chef
Development Kit
Cookbook and
Policy Authoring
Test-Driven
Infrastructure
Chef Server
Management
Console
Analytics
Platform
High Availability
and Replication
Chef
Client
Nodes
Data
Center
The
Cloud
23. How does Chef work?
• Ensure desired state by continually testing and repairing individual resources in
the system
• Compose policies using a series of abstractions
29. Recipes
package "apache2"
template "/etc/apache2/apache2.conf" do
source "apache2.conf.erb"
owner "root"
group "root"
mode "0644"
variables(:allow_override => "All")
notifies :reload, "service[apache2]"
end
service "apache2" do
action [:enable,:start]
supports :reload => true
end
resource one
resource two
resource three
65. Increase CHEF adoption through ChefDK
● ChefDK: CHEF Software Development Kit, fully
supported with the Chef Premium Subscription
● Workflow Definition: Our recommendation on the
process to test and verify your infrastructure code
before committing it to source control and shipping
it to production.
● Workflow Enhancement: Based on customer
feedback and use cases
66. ChefDK: In the Box
First Class Support on Windows, Linux, and
OSX for the entire suite of Chef development
tools
● Test Kitchen: Virtualized testing harness
● Berkshelf: Dependency solver
● Chef-Vault: Secrets management
● Rubocop / Foodcritic: Code linting
● Chefspec: In-memory Unit Testing
● Chef.bin: New wrapper binary to tie it all
together, with new extensible cookbook
generators.
67. The Chef workflow
Create new
skeleton
cookbook.
Create a VM
environment for
cookbook
development.
Write/debug
cookbook
recipes
(iterative step).
Perform
acceptance
tests.
Deploy to
production.