Jesse Cotton | San Diego, CA |

Chef Workflow Refresh

Role: Engineer
Technologies: Chef, Git, RSpec, Serverspec

After adopting various emerging best practices for managing infrastructure and deploying code, a customer noticed their Chef workflow needed some updates as well. As part of this engagement I would work closely with their operations team to evaluate adopting Berkshelf and related best practices, and explore eliminating their Chef server. This proved to be a good direction. As a result I was tasked to:

  • train them on Berkshelf and a serverless Chef workflow including cookbook versioning and releases
  • train them on cookbook organization - library cookbooks, application cookbooks, environment cookbooks
  • prepare extensive documentation on cookbook development and the new workflow
  • help them split up their monolothic Chef repo (move each cookbook into its own separate Git repository with history)
  • help them eliminate forked cookbooks through one of several methods: contribute a change upstream, adopt a newer version of the forked cookbook, migrate to a better community cookbook
  • with the goal of training by example, enhance several cookbooks to include multiple layers of testing: linting (Rubocop, Foodcritic), unit testing (ChefSpec/RSpec), integration testing (Serverspec)