3. DevOps
(Development / Operations)
Combines disciplines of
software development /
QA with system
administration
4. Building/Deploying
• Manually
• Build scripts
• “I want to tell this computer how it should be set up, and
let it do the rest”
5. Chef
• Client/Server system for managing configuration
• Declarative Recipes define end state instead of
construction process
• Idempotent - re-running script only causes changes to
execute
6. No scripts - recipes
• Cookbooks - modules for adding support for software
• Recipes - contained by cookbooks, define server
configuration, templates, etc
• Attributes - configurable variables consumed by
recipes
• Recipes provide defaults, can be overridden by server,
role, or environment
• Some generated automatically
• Data Bags - hold arbitrary configuration data
7. Parts and pieces
• Chef Server - holds cookbooks and configuration for
your organization
• Chef Client - installed on servers via bootstrap process
to execute recipes, solo and client flavors
• Ohai - discovery utility that extracts automatic attributes
from servers
• Knife - command line tool for managing chef
8. Managing/Orchestration
• Chef Solo - One server, no management, cookbooks go
on server
• Hosted Chef - Opscode-provided server, fine-grained
permission controls
• Chef Server - Self-hosted chef management server
• Chef supports git, but git repo and servers don’t talk
9. Development cycle
• Create cookbook
• Develop/Test
• Upload recipe to chef server
• Execute on client servers
10. Blend Server Layout
/Sites
.conf - all apache vhost configs symlink here
[sitename]
conf - apache and other configs
htdocs - web app, usually apache root dir
logs - apache and other logs
deploy - deploy scripts
11. Development tools
• Berkshelf - code gen and dependency management
• Vagrant - automated testing environments