Last week, I had the privilege of announcing the launch of Chef Infra Client 16. In addition to providing a slew of features to improve ease of use, expand platform support and generally improve performance, we’ve invested significantly into improving the process of upgrading Chef Infra. In particular, we’ve added nearly 200 new cops to Cookstyle to provide insights and automatic remediations for a variety of deprecations and updated best practices.
As such, now is the perfect time to dig in a bit deeper, and provide some practical guidance on how to plan, test, and orchestrate Chef Infra upgrades within your environments. Over the next few weeks we’ll start by publishing a series of blogs focused on doing just that!
Before we Begin
There’s a lot of ground to cover when we talk about upgrades, and there are a lot of important concepts that don’t necessarily fit into some of the more specific topics we have in store. With that in mind, I wanted to spend a moment in this introduction to cover some key concepts that should prove invaluable going forward.
Chef Infra Server Versions
An incredibly important thing to note up front is that the Chef Infra Client follows a yearly major release schedule, whereas the Chef Infra Server does not. This structure allows us to continuously improve Chef Infra while providing a predictable timeline for any planned feature updates or breaking changes, but does mean that there is not parity between client and server version numbers.
As of this writing, the latest stable Chef Infra Server release is 13.2.0, and Chef provides support for 12.x and 13.x releases. Both should be compatible with all client versions released within the past 5+ years.
Chef Workstation & ChefDK
Chef Workstation was introduced two years ago, and is intended to act as a drop-in replacement for the ChefDK. While Chef still supports and maintains ChefDK, Workstation contains the same tools, alongside additional enhancements like ad-hoc task support with chef-run and a desktop application with auto-update facilities.
Also of note, regardless of what version of Chef Infra you’re using, Chef recommends running the latest version of Chef Workstation. Tools like Cookstyle and Test Kitchen provide built-in facilities for targeting specific Chef Infra versions, so upgrading workstation will not require you upgrade Infra Client as well.
Upgrading Cookbooks & Clients
Upgrading Chef Infra Client is really a twofold process:
- Updating Chef cookbooks to ensure compatibility
- Upgrading Chef Infra Client itself on managed systems
How much planning and work is required for each task will vary from organization to organization. Some may find that their cookbooks need very little work, and can focus their efforts on orchestrating client upgrades. Some will have large numbers and combinations of cookbooks in place across environments and platforms, and look to subdivide the upgrade process to keep the process manageable. In this series, we’ll address these tasks individually, and provide tips & tricks for each.
I hope you’re as excited as I am to dive into the Chef Infra upgrade process. Check back in coming weeks for posts dedicated to:
- Why Upgrade? Chef Infra improvements version by version
- Upgrading Chef Cookbooks: Cookstyle & Test Kitchen
- Upgrading Chef Client: chef_client_updater & Effortless Infrastructure
As ChefConf Online draws near, stay tuned for even more topics! We’ll be looking at implementing upgrades at scale, and determining when and how to adopt new paradigms and best practices.
Need help with your upgrade? Our professional service team wants to help! Through June 30th, we’re even offering 25% off eligible engagements. For a full list of updates in Chef Infra Client 16, be sure to check out our release notes.