10. Applications reflect Quality of Organizations
Conway’s law
Organizations which design systems … are constrained to
produce designs which are copies of the communication
structures of these organizations.
11. Applications reflect Quality of Organizations
The resilience of an organization will be reflected in the
resilience of the applications and services built by the
organization.
12. 5 Critical Metrics of Resilient Organizations
• Willingness to tackle challenges.
• Sense of Agency.
• Adaptability.
• Diversity.
• Rope Factor
15. Borg Syndrome
• Embrace Diversity.
• Recognize differences in
perspectives.
• Eliminate system
blindness.
16. Rope Factor
Enough rope to get things done, not enough for cowboys.
Rope too short
Excessive time in meetings
Death march for each sprint
Rope too long
Cowboy behavior.
17. Resilience is ordinary.
• Intentional behaviors, thoughts, and actions.
• Reflection of the organization.
19. Resilience isn’t managed through limiting change.
• Security Patches?
• Over Engineering Delays in Schedule
• Under Engineering – Rewrite required to scale
Stability is a myth.
24. Chef is a language.
• Describe infrastructure as
code.
• Programmatically provision and
configure servers.
• Versioning, artifacts
25. Chef is a toolset
• Collection of tools that allow you to model, measure, and improve workflows.
26. chef is a command line utility
• Generate skeleton for application, cookbook, recipes, attributes, files, templates,
and custom resources.
• Prep environment with correct ruby gems.
• Verifies environment is configured and installed correctly.
27. Chef is a community.
• Mailing lists
• https://supermarket.chef.io/
• Chef Conf 3/31 – 4/2 Santa Clara
• Chef Summit
• IRC #chef
• Twitter @chef
CODE:
BUILDITBETTER
29. Infrastructure Automation is creating
control systems that reduce the
burden on people to manage services
and increase the quality, accuracy and
precision of a service to the
consumers of the service.
36. Cookbook
• A collection of recipes (and other elements like files and templates).
• Map 1-1 to a piece of software or functionality.
• Distribution unit
• Versioned
• Modular and re-usable.
37. Chef Provisioning – Part of Chef DK
https://flic.kr/p/knDPjc
• Describe multiple tier applications.
• Deploy many copies of your
application cluster.
• Spread cluster across different clouds/
machines.
• Orchestrate deployment.
• Parallelize machine deployment.
40. Multi-platform
• AWS
• Azure
• Fog
• Vagrant
• Docker
• LXC
• .. more
.. We’ll use AWS in this example
https://github.com/chef/chef-provisioning-aws
http://aws.amazon.com/start-ups/loft/
46. Edit Provision Recipe
require “chef/provisioning/aws_driver”
with_driver “aws”
machine ‘web1’ do
recipe ‘webserver’
converge true
end
47.
48. ..but I need multiple webservers
require “chef/provisioning/aws_driver”
with_driver “aws”
num_webservers = 3
(0… num_webservers).each do |i|
machine “web_0#{i}” do
recipe ‘apache’
end
end
59. Share your stories
• Blameless Postmortems are really useful.
• Knowledge sharing across teams.
• Share across companies – DevOpsDays
60. Don’t build tools that create
systems that encourage the
wrong behaviors.
61. Jumpstart Learning
• The LearnChef Site
• Guided Tutorials
• Chef Fundamentals intro
http://learnchef.com
• How-To’s, Conference Talks, Webinars, more
http://youtube.com/user/getchef
• Attend a Chef Fundamentals Class (HELLO-CHEF code)