As part of the RightScale "bring your own configuration management" (BYOCM) strategy that I wrote about a couple of weeks ago, we will roll out a major upgrade to our Chef implementation in RightScale next week. This upgrade will affect all RightScale users, but will be particularly relevant for those who use Chef recipes in their ServerTemplates™, the reusable components that RightScale employs to define the characteristics of a cloud server.
When you access your RightScale account, you'll see that the Scripts tab of the ServerTemplate page has changed. Those of you who are using Chef will no longer see the RepoPath construct. Instead, repositories and cookbooks have become first-class objects in RightScale. In addition to more closely mirroring the Opscode way of dealing with cookbooks, this upgrade also drives some changes in workflows for developing Chef-based ServerTemplates.
A three-minute demonstration of the Chef UI changes in RightScale
Why the change? This upgrade improves the way that RightScale users can employ Chef to build ServerTemplates. It lays the foundation that will enable us to implement additional functionality for deeper integration with Chef and eventually with Puppet.
RightScale implemented Chef early in that product's maturity, and as a result we had to build some features into our platform that weren't yet available in Chef. The RepoPath construct was one of those features, and its time has now passed. In order for us to move forward, we are removing RepoPaths from the RightScale platform to free up the codebase for a more mature integration with Chef.
As we went through the process of removing RepoPaths, we also made some related improvements, such as:
- implementing cookbook namespacing in RightScale so that you can have multiple instances of the same cookbook version.
- upgrading the Scripts tab of ServerTemplates to make dealing with recipes and RightScripts™ easier.
- enhancing the way that cookbooks are downloaded from repositories to simplify development workflows.
- building out our API so that all of these tasks can be automated.
The ServerTemplate Scripts Tab
The primary change that you will notice is a major UI upgrade in the Scripts tab. The new Scripts tab has a cleaner, more modern UI, which enables quicker searching, attaching, and upgrading of scripts and recipes with ServerTemplates. In Modify mode (only available on HEAD ServerTemplates) the list of recipes and RightScripts attached to a ServerTemplate is now drag-and-drop, making modification of ServerTemplates much easier.
While RightScript functionality here has remained relatively unchanged, you'll see big changes on the Chef front. Rather than associating a RepoPath with your ServerTemplate, you instead attach cookbooks from your account. The cookbooks can come from any of the repositories in your account or from any ServerTemplate that you've imported. Once you've attached a cookbook, RightScale helps resolve the cookbook dependencies as specified in the metadata to attach any other needed cookbooks to the ServerTemplate.
For more information on the new Scripts tab, see the more detailed explanation on the RightScale Support site.
Cookbooks in RightScale are now first-class objects accessible in the Design menu, which more closely emulates the Chef Server way of doing things, while providing more advanced options to Chef experts.
If you're using Chef in RightScale, this change will have a significant impact on the way you interact with RightScale and design your ServerTemplates. All cookbooks will now live in your account no matter where they came from — they can be imported from a repository or from a ServerTemplate, and eventually we will support direct upload through the API (think knife). You will be able to browse your cookbooks and manage them through the UI and the API, and we have implemented a "namespace" feature that allows you to maintain multiple instances of the same cookbook and version in your account so you can avoid conflicts with imported cookbooks.
In addition to cookbooks, repositories are also now first-class objects in RightScale, which means you can store design elements in external repositories and maintain your development workflows with your tools of choice.
With the removal of RepoPaths, we brought repositories up to the account level so that you can set them up one time and then choose when and how often to refresh cookbooks from them. With repositories, we now enable automatic import of dependent cookbooks, provide functionality that allows cookbooks to be automatically refreshed, and offer the ability to scrape cookbooks at the top level of the repository. Soon we will also remove the requirement to generate metadata JSON files for consumption by the RightScale platform. In the future, having account-level repositories will allow for other RightScale objects, such as RightScripts, to be source-controlled outside of the platform.
You can find more information on the new repositories functionality on the RightScale Support site.
All Through the API
Every new screen and feature that you see with this upgrade has a common theme: It is backed by API 1.5 calls that are available for your use on release day. You will now be able to automate and manage your ServerTemplates, RightScripts, cookbooks, and repositories through API calls no matter which clouds you are using.
For details on the API, see the API 1.5 reference documentation (note the new Design resources won't be available until the release).
A Look Ahead
In the near term, we are working on additional features that will help you better use Chef in RightScale. For example, we will soon support community cookbooks through an automatic JSON metadata generator. As we continue to move forward, look for improvements to the UI as we learn from our users, and expect even more capability to be available through the API and UI as we progress down the BYOCM path.
As always, we appreciate your feedback, so please leave a comment here or voice and vote your opinion on our feedback forums.