Note: Please go to docs.rightscale.com to access the current RightScale documentation set. Also, feel free to Chat with us!
Home > Guides > Chef Cookbooks Developer Guide > Developer > Development Workflows > Chef ServerTemplate Migration Strategies

Chef ServerTemplate Migration Strategies

Table of Contents

Overview

If you are a new or existing RightScale user, you may need some help and guidance to determine where you should focus your development efforts before you start building custom ServerTemplates and deployments. If you are looking at this document, you most likely have several unanswered questions.

  • "Should I use the RightScript-based ServerTemplates of the 11H1 compatibility release or use the newer Chef-based (v12.11) ServerTemplates?"
  • "If I'm not comfortable using Chef, can I create RightScript-based ServerTemplates that support multiple clouds?"
  • "How do I modify a custom RightScript-based ServerTemplate so that it's compatible with the new Chef-based ServerTemplates?"

Things to Consider

Unfortunately, there is no single strategy that works for every scenario. You must take several factors into consideration before you can make the appropriate decision that best suits your business needs. This document will help guide your decision making process by making sure that you ask yourself the right questions.

There are currently three different types of ServerTemplate releases. 

  • Compatibility Release - In 2011, RightScale released the 11H1 compatibility release, which consists of ServerTemplates that use a library of compatible RightScripts. It's a GA (general availability) release that is stable and suitable for building production environments in Amazon EC2.
  • LTS - In 2012, RightScale published the v12.11 LTS multi-cloud release, which consists of primarily Chef-based ServerTemplates that can be used on a variety of infrastructure clouds such as Amazon EC2, Rackspace, Cloudstack, etc.). The LTS (long term support) release is based off of a stable branch, which will only receive minor updates for the duration of its supported lifecycle (18 months). The LTS release is recommended for building production environments. Note: A newer LTS ServerTemplate release was published in August 2013 (v13.5 LTS).  
  • Infinity - In 2012, RightScale also introduced the multi-cloud infinity release, which consists of the most recently developed ServerTemplates that include support for new clouds and features. It also may include changes that are not backwards compatible with previous releases. If the current LTS does not support the clouds and system functionality that you require for your application you may want to start your development with the latest infinity release, which will eventually be cloned to create the next LTS release.


For more detailed information, see ServerTemplate Release and Lineage Methodology and the ServerTemplate Release Notes.

What are the differences between RightScript-based and Chef-based ServerTemplates?

There are several key differences between ServerTemplates that are built with only RightScripts (e.g. 11H1 compatibility release) and the newer ServerTemplates published by RightScale that only use Chef cookbooks and recipes. The first thing to remember is that by definition, compatibility releases are not guaranteed to be compatible with one another. Although you may be able to use 11H1 scripts successfully with another compatibility release, it's important to understand that such permutations were not tested. However, scripts within the same compatibility release should be compatible. In addition to the obvious compatibility issues there are some distinct differences between the 11H1 and the latest Chef-based (v12.11 LTS and Infinity) releases. 

  1. 11H1 ServerTemplates use only RightScripts whereas the newer v12.11 ServerTemplates only use Chef cookbooks and recipes. However, RightScale will continue to publish a "Base" ServerTemplate for both RightScript and Chef development purposes. 
  2. 11H1 ServerTemplates are designed and optimized for launching servers in AWS EC2 clouds/regions.
  3. The newer Chef-based ServerTemplates are designed to be cloud agnostic and support multiple public/private clouds in addition to the AWS EC2 clouds/regions. (e.g. Rackspace, CloudStack, etc.)
  4. 11H1 ServerTemplates were published with CentOS 5.4 and Ubuntu 10.04 RightImages. The v12.11-LTS ServerTemplates were published with CentOS 5.8, Ubuntu 10.04, Redhat Enterprise Linux 5.8, Windows 2008 R2, and Windows 2008 RightImages. 
  5. The interaction between different tiers in an application stack also changed. For example, the way that an application server connects/disconnects to/from a load balancer also changed. For example, in the 11H1 ServerTemplates, an application server would use the load balancer server's SSH key to remote into the instance and update it's configuration file whereas in the v12.11 ServerTemplates, tags and IP tables are used to establish connections between the application and load balancing tiers.

 

Description RightScript-based Chef-based
11H1 LTS Infinity
Built-in Cloud Support AWS

AWS
Rackspace
Logicworks
SoftLayer
Cloudstack

AWS
Rackspace
SoftLayer
Cloudstack
...and more*
Supported Lifecycle Period 18 months

18 months

N/A

Supported Operating Systems CentOS 5.4
Ubuntu 10.04

v13.5

CentOS 6.4
Ubuntu 12.04
RHEL 6.4
Windows 2012
Windows 2008R2-SP1

 

v12.11

CentOS 5.8 
Ubuntu 10.04
RHEL 5.8
Windows 2008-SP2
Windows 2008R2-SP1

v13

CentOS 6.4
Ubuntu 12.04
RHEL 6.4
Windows 2012
Windows 2008R2-SP1
...and more*
Compatible with RightScripts? Yes Yes Yes
Suitable for production environments? Yes Yes Yes
Inherit new features, changes and support for new clouds and operating systems? No No Yes
Can new minor releases include changes that break backwards compatibility? No No Yes
RightScript-based "Base" ServerTemplate available? Yes Yes Yes
Chef-based "Base" ServerTemplate available? No Yes Yes

* Additional OS support will be introduced in future Infinity releases as it becomes available.

Do you want to use the latest development branch from RightScale?

RightScale is constantly improving its library of published ServerTemplates to make them more robust, secure, easier to use, as well as provide built-in support for multiple cloud infrastructures and operating systems. RightScale's 11H1 ServerTemplates were primarily designed with built-in support for only the AWS EC2 clouds. Built-in support for non-AWS clouds will only be available in the newer Chef-based ServerTemplates.

If possible, it is recommended that you base your ServerTemplate development off of RightScale's newest LTS (Long Term Support) or Infinity ServerTemplates that are safe to use in production environments. However, if you previously developed RightScript-based ServerTemplates you must decide whether or not to spend the time and effort needed to upgrade to a Chef-based (LTS or Infinity) release to take advantage of the new features and support.

diag-ChefMigrationStrategies-Latest-v1.png

RightImages

It's also strongly recommended that you use the latest published RightImages from RightScale. See Release Notes.

If you are using a ServerTemplate that was developed with an older version of a RightImage, it is still recommended that you consider upgrading to the newer RightImages. Newer RightImages always include the latest version of RightLink, which is used for more efficient communication with the RightScale management platform, as well as newer operating systems and distributions that often include critical software updates and bug fixes. It's important to keep your environment up-to-date for security reasons. Before updating all of your existing ServerTemplates to use the latest RightImages, you should perform a basic test and launch a server using the existing ServerTemplate with a newer RightImage to verify that there are no compatibility issues. 

Don't forget that you can change the frozen repository date for several of the key software distributions if you need to use an older version of a repository for backwards compatibility issues.

Are you starting development on a new project?

New User
If you are a new user to RightScale and have not developed any custom ServerTemplates it's recommended that you start your development by using the latest Chef-based ServerTemplates published by RightScale to take advantage of the new features, bug fixes, and cloud support. 

Existing User
If you are an existing user of the RightScale management platform and have previously built custom ServerTemplates from scratch or cloned and modified ones from the MultiCloud Marketplace, you will need to determine if you want to use those customized SeverTemplates in your new project. If you do not plan to reuse any previous ServerTemplates, it's recommended that you start development for your new project using an existing LTS or Infinity ServerTemplate published by RightScale. If possible, you should clone and modify an existing ServerTemplate if you can find one that is similar to what you are trying to develop. If not, it's recommended that you start your development with one of the "Base" ServerTemplates. You will find "Base" ServerTemplates for both RightScript-based and Chef-based development in the MultiCloud Marketplace. 


diag-ChefMigrationStrategies-CloneBase-v1.png

Do you want to deploy your application on multiple clouds?

Although you may be currently satisfied with deploying your application on a single cloud infrastructure, you may want to consider the benefits of building ServerTemplates that can be used across multiple clouds for several reasons. Cost, performance, disaster recovery (e.g. launching a server into a different cloud/region), cloud SLAs or certification (e.g. ISO), private/public cloud architectures, and security are all reasons why you should strongly consider building multi-cloud ServerTemplates. Remember, if you're going to spend the time and effort to develop a custom ServerTemplate, there is no reason why you should not make it compatible across multiple clouds especially because it often does not require much more development effort.

If you are building a new ServerTemplate from scratch or customizing one from the MultiCloud Marketplace, you should start your development with one of RightScale's latest Chef-based ServerTemplates because they already have built-in support for multiple clouds.

If you want to use a RightScript-based ServerTemplate in a non-AWS cloud, you might be able to use an MCI from one of the LTS/Infinity releases. However, you will need to test the ServerTemplate to verify compatibility. Obviously if you have a script that is specific to AWS, it will fail. You will need to make sure that your RightScripts and MCIs support your chosen non-AWS cloud.

diag-ChefMigrationStrategies-MC-v1.png

Does a custom ServerTemplate need to interact with Chef-based ServerTemplates?

There are several different ways to make a custom ServerTemplate successfully interact with the ones that use Chef. However, if the custom ServerTemplate is used for launching a standalone application or does not need to interact with a server launched with a Chef-based ServerTemplate, you probably do not need to make any changes to your existing RightScript-based ServerTemplate.

Example
You may have a highly customized ServerTemplate that you created to launch an application server, but you want to use the latest HAProxy load balancer and MySQL database manager ServerTemplates from the latest Chef-based release. In such cases, you will need to use the new Chef recipes to properly connect the application server to the load balancing and database tiers since the 11H1 ServerTemplates used a different methodology that was specific to AWS EC2.

If you have an existing ServerTemplate (that you customized using RightScripts) that you want to use with some of the Chef-based ServerTemplates, there are a couple of different options depending on the type and amount of customizations, and whether or not you are comfortable using Chef for development purposes.  

If you are open to using Chef cookbooks and recipes instead of RightScripts, it is recommended that you base your ServerTemplate development off of RightScale's latest Chef-based ServerTemplates. If possible, you should recreate any custom RightScripts as Chef recipes. Although you can safely use RightScripts and Chef recipes in the same ServerTemplate, you might have an easier time developing and troubleshooting the scripts of your ServerTemplate if it uses only Chef recipes. Hopefully, you will find an existing Chef-based ServerTemplate that you can easily clone and modify instead of having to build a new ServerTemplate from scratch.

If you are not comfortable using Chef and would prefer to only use RightScripts for creating custom scripts, you can add the appropriate connect/disconnect Chef recipes into your existing RightScript-based ServerTemplate. 

diag-ChefMigrationStrategies-Interact-v1.png

You must to post a comment.
Last modified
09:56, 14 Oct 2013

Tags

This page has no custom tags.

Classifications

This page has no classifications.

Announcements

None


© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.