April 15 - 17, 2014 | San Francisco, CA

Program and Workshop Information

#ChefConf 2014 Workshops

Introduction to Chef - Managing Linux
Presenter: Chef

This is a hands-on tutorial that will cover the basics that everyone needs to know about how to use Chef for system and infrastructure management. We'll discuss the server API, the code primitives, and the tools required to successfully use Chef.

Hands-on exercises throughout the tutorial will reinforce the material discussed. The agenda will cover:

  • Overview of Chef 
  • Set-up a local workstation with Chef and connect to a Chef server 
  • Create a new cookbook to manage a basic website with Apache 
  • Refactor the cookbook to explore additional features of Chef 
  • Tying it all together - wrap–up of the work performed 
  • Further resources and references



Introduction to Chef - Managing Windows

Presenter: Chef

This is a hands-on tutorial that will cover the basics that everyone needs to know about how to use Chef for system and infrastructure management. We'll discuss the server API, the code primitives, and the tools required to successfully use Chef.

Hands-on exercises throughout the tutorial will reinforce the material discussed. The agenda will cover:

  • Overview of Chef 
  • Set-up a local workstation with Chef and connect to a Chef server 
  • Create a new cookbook to manage a basic website with IIS 
  • Refactor the cookbook to explore additional features of Chef 
  • Tying it all together - wrap–up of the work performed 
  • Further resources and references



Chef - Intermediate Topics

Presenter: Chef

This hands-on tutorial will take you beyond the basics and give you some experience with where to go with Chef after you’ve mastered the basics.

Hands-on exercises throughout the tutorial will reinforce the material discussed. The agenda will cover: 

  • Implementing custom resources using lightweight resources and providers (LWRPs) 
  • Using post-convergence operations to stay up-to-date on the state of your infrastructure (Exception and Report Handlers) 
  • Creating and managing ohai plugins for system-level discovery 
  • Debugging your Cookbooks and chef-client runs interactively with chef-shell 
  • Configure chef-client to run automatically and give everyone on your team access to the logs. 
  • Manage reboots on Windows 
  • Installing Enterprise Chef Server 
    • Architecture 
    • Security Model 
    • Database & Message Queue 
  • Push jobs with Enterprise Chef



Team Workflows with Chef

Presenter: Chef

This is a hands-on tutorial that will cover the basics that everyone needs to know about how to use Chef for system and infrastructure management. We'll discuss the server API, the code primitives, and the tools required to successfully use Chef.

  • Give everyone the same tool: team configuration of your knife.rb 
  • Managing Enterprise Chef User accounts and permissions 
  • Chef Environments - manage your cookbook versions 
  • Foodcritic for linting your cookbooks 
  • Branching, pull requests, and merging with git 
  • Prevent toe stomping with knife-spork



Testing Your Automation Code

Presenter: Chef

This is a hands-on tutorial that will cover the basics that everyone needs to know about how to test your automation code. We’ll start off by deploying a Jenkins server and then writing a fully-tested cookbook or two using linting, unit testing, integration testing, and cross-platform testing.

Hands-on exercises throughout the tutorial will reinforce the material discussed. The agenda will cover:

  • Test-driven Development (TDD) 
  • Build a Jenkins Server with Chef 
  • Adding tests to your build process 
    • syntax check - knife cookbook test 
    • linting - foodcritic 
    • unit testing - ChefSpec 
    • integration testing - ServerSpec 
  • Managing cookbook version constraints with Jenkins and Chef 



Introduction to Kanban for Operations & DevOps

Presenter: Dragos Dumitriu

Introduction to Kanban for Operations and DevOps is a workshop focused on helping people and teams in operations roles develop a new perspective, a new mindset that is easy to learn. By the end of the course, you learn how to balance planned tasks with break/fix issues; how to deal with interruptions; understand causes and costs of delay; see the value of having cross functional teams and how to minimize impact from unavailability of critical resources.



Awesome Postmortems

Presenter: Dave Zwieback

Failure is inevitable. A postmortem analysis, conducted in an open, blameless way, is the best way to learn from outages (and other failures and near-misses). Postmortems enable us to identify and address areas of fragility within systems and organizations. However, when the "root cause" is determined to be "human error" (or worse, particular humans), postmortems can actually make systems and teams more fragile, obscuring the real root cause and conditions of outages.

In this practical, hands-on workshop, we'll cover the theory and practice of conducting and participating in awesome postmortems, including:

  • Making postmortems blameless (or diffuse the blaming and shaming if it happens) -- the why? and how? 
  • Collecting the necessary data before the postmortem 
  • Communicating effectively in a charged, high-stakes conversation of the postmortem 
  • Determining the real root cause (yes, there is such a thing) and conditions of the outages 
  • Recognizing and mitigating the effects of stress during outages (including measuring Stress Surface) 
  • Cognitive biases during postmortems Writing up a postmortem (internal/external)



Git and Github Foundations (½ day)

Presenter: Peter Bell

Learn how to leverage the power of git and github to better manage your code and/or your infrastructure configuration. In this fast paced, hands on class you'll learn the basics of git and how to use branching to keep your projects under control. We'll then look at how to share your code on github and collaborate with others most effective via cloning, collaborating, forking and pull requests. If you'd like to go beyond the basics, consider also taking the intermediate and advanced class in the afternoon.



Intermediate and Advanced Git and Github Tips and Tricks (½ day)

Presenter: Peter Bell

Learn how to fix almost anything with amend, reset, revert, rebase and even the magical reflog. Learn about alternative workflows and best practices for collaboration using github and git. Whether you're comfortable with the basics of adding and committing to git, have a little experience with branching and know how to clone a github repo or have a couple of years of solid git experience, by the end of this class you'll understand git more deeply and be able to use it more elegantly. If you're completely new to git, consider taking the foundations class in the morning first so you're ready for this afternoon session.



Ruby for Chefs

Presenter: Jeff Casimir and Jorge Téllez from Jumpstart Lab

Ruby is a simple programming language that is designed to be easy to read and to behave in a predictable manner. It is a beautiful language designed to make programmers happy. The chef-client uses Ruby as its reference language for creating cookbooks and defining recipes, with an extended DSL (domain-specific language) that is used for specific resources. Enough resources are available to support the most common infrastructure automation scenarios natively within Chef; however, this DSL can also be extended when additional resources and capabilities are required.

This is a hands-on tutorial that will cover the basics that everyone needs to know about Ruby to be an effective Chef developer and will dig a little deeper into Ruby idioms and best practices. During this course you will learn:

  • How Ruby handles classes, methods, variables and collections. 
  • How Ruby can improve your cookbooks, environments, and roles. 
  • How to embed Ruby in your templates. 
  • How to use a Ruby library in your cookbooks.



Automatically Deploy Your PHP Apps using Chef and Zend Server

Presenter: Clark Everetts

This session will tackle the issue of automating deployment of development and production systems using Chef.   PHP powers over half the web, and is the backend platform for an ever-increasing number of mobile applications.  In today's fast-paced, virtualized environment,  DevOps, SysAdmins, and developers face a daily challenge to quickly and reliably provision servers. Traditionally they spent hours, or even days, setting up servers, and troubleshooting "but it works on my machine" claims. Chef reduced this to minutes, by shifting traditional operational techniques to creating automation strategies and policies.

The workshop will cover:

  • Hands-on development of a cookbook for automatically deploying PHP applications from development into staging and production environments.
  • A reusable wrapper Cookbook for the workshop, and beyond.
  • Setting up a PHP development environment.