RightScale Blog - Chefhttp://www.rightscale.com/blog/tag/chef
enRightScale and Chef Integration: Cooking Up Better ServerTemplateshttp://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p>As part of the RightScale "bring your own configuration management" (BYOCM) strategy that I <a href="http://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale" target="_blank">wrote about a couple of weeks ago</a>, 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.</p><p>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.</p><p style="text-align:center;font-style:italic;font-size:90%;"><iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="http://player.vimeo.com/video/72416162" webkitallowfullscreen="" width="500"></iframe><br>A three-minute demonstration of the Chef UI changes in RightScale</p><p>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.</p><p>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.</p><p>As we went through the process of removing RepoPaths, we also made some related improvements, such as:</p><ul><li>implementing cookbook namespacing in RightScale so that you can have multiple instances of the same cookbook version.</li><li>upgrading the Scripts tab of ServerTemplates to make dealing with recipes and RightScripts™ easier.</li><li>enhancing the way that cookbooks are downloaded from repositories to simplify development workflows.</li><li>building out our API so that all of these tasks can be automated.</li></ul><h3>The ServerTemplate Scripts Tab</h3><p>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.</p><p>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.</p><p>For more information on the new Scripts tab, see the <a href="http://support.rightscale.com/12-Guides/Dashboard_Users_Guide/Design/RightScripts/Actions/Add_a_RightScript_or_Recipe_to_a_ServerTemplate" target="_blank">more detailed explanation</a> on the RightScale Support site.</p><h3>Account-Wide Cookbooks</h3><p>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.</p><p>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.</p><p>To learn more about <a href="http://support.rightscale.com/12-Guides/Dashboard_Users_Guide/Design/Cookbooks" target="_blank">using cookbooks</a> and <a href="http://support.rightscale.com/12-Guides/Dashboard_Users_Guide/Design/Repositories/Concepts/Primary_and_Alternate_Namespaces" target="_blank">how namespaces work</a>, see more detail on our support site.</p><h3>Account-Wide Repositories</h3><p>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.</p><p>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.</p><p>You can find <a href="http://support.rightscale.com/12-Guides/Dashboard_Users_Guide/Design/Repositories">more information on the new repositories functionality</a> on the RightScale Support site.</p><h3>All Through the API</h3><p>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.</p><p>For details on the API, see the <a href="http://reference.rightscale.com/api1.5/index.html" target="_blank">API 1.5 reference documentation</a> (note the new Design resources won't be available until the release).</p><h3>A Look Ahead</h3><p>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.</p><p><a href="http://support.rightscale.com/12-Guides/Dashboard_Users_Guide/Repositories%2C_Cookbooks%2C_Recipes_and_Scripts_Changes" target="_blank">Visit our support site to view more details about the current changes and for short introductory videos.</a></p><p>As always, we appreciate your feedback, so please leave a comment here or voice and <a href="http://feedback.rightscale.com" target="_blank">vote your opinion on our feedback forums</a>.</p><div class="drupal-embed" delta="ai_blog_ads-block_5" embed_type="block" module="views"></div><p>&nbsp;</p> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="RightScale and Chef Integration: Cooking Up Better ServerTemplates">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Thu, 15 Aug 2013 17:30:42 +0000Ryan O'Leary303 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates#commentsPreview: Bring Your Own Configuration Management from RightScalehttp://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p>Cloud computing and automated configuration management are a natural match. The cloud makes it trivially easy to spin up servers on demand, but it would be a prohibitively expensive and likely error-prone process to configure each one manually, especially when operating at scale. Configuration management provides tools to automate the creation of cloud servers and manage their configuration details, saving organizations time when launching new clouds and administering existing ones — and that time savings translates directly into cost savings.</p><p>When RightScale first introduced <a href="http://www.rightscale.com/products/cloud-management.php">cloud management software</a> in 2006, configuration management was in its infancy and not well-adapted to the cloud, so we built a configuration management solution into our platform. As cloud configuration management solutions have matured and their adoption has increased, we have been evolving the RightScale platform to make it easier for our customers to use third-party configuration management solutions. We call this initiative BYOCM — Bring Your Own Configuration Management.</p><h3>A Brief History of RightScale Configuration Management</h3><p>Before I get into the details of what BYOCM is, let’s take a quick look back at the history of configuration management in the cloud and at RightScale. In 2006, we developed <a href="https://www.rightscale.com/blog/cloud-management-best-practices/configuring-servers-rightscripts" target="_blank">RightScript™ technology</a>&nbsp;that used scripts written in Bash, PowerShell, Python, and other languages to configure servers after booting a base image. At the time, there were no established configuration management technologies — Puppet had only been around for a short time, and Opscode had not yet released Chef.</p><p><img alt="" class="media-image" height="150" style="padding: 10px; line-height: 1.538em; width: 150px; height: 150px; float: left;" width="150" typeof="foaf:Image" src="http://www.rightscale.com/blog/sites/default/files/zfaPuzzle-adambindslev.jpg" /></p><p>In the following years, cloud innovators began to increasingly use object-oriented, specialized technologies in Puppet and Chef, which provided built-in facilities for idempotency and common utilities for managing server configurations. In 2009, RightScale introduced support for Chef recipes alongside our RightScripts to manage servers and began developing all of our Linux ServerTemplates™&nbsp;using Chef recipes instead of RightScripts.</p><p>Now, in 2013, the <a href="https://www.rightscale.com/blog/cloud-industry-insights/rightscale-state-cloud-2013-look-ahead" target="_blank">RightScale State of the Cloud Report</a>&nbsp;shows that fully one-third of organizations in the cloud use a configuration management technology. As these solutions continue to mature, organizations have more options than ever to take advantage of the tactical benefits of configuration management.</p><p>Increasingly in large enterprises, we see a mix of configuration management tools in­ use: One business unit using Chef, another using Puppet, and still others that haven’t started down the path at all. RightScale's mission is to provide an overarching cloud management platform that enables users to choose the right configuration management tool for the job without sacrificing the visibility, governance, time-to-market, and support benefits that RightScale provides.</p><p>Our BYOCM initiative is designed to fulfill this mission by providing the full benefits&nbsp;of the RightScale multi-cloud management platform while giving organizations the freedom to utilize the native features and community assets of existing third-party configuration management technologies. The initiative will evolve over the next few months, but here’s a preview of what we have now and what’s coming in the near future.</p><h3>Client ServerTemplates</h3><p>BYOCM provides supported ServerTemplates that let you connect easily to existing configuration management systems. Working closely with the Opscode team, we started by releasing a <a href="http://www.google.com/url?q=http%3A%2F%2Fwww.rightscale.com%2Flibrary%2Fserver_templates%2FChef-Client-Beta-v13-4-1-%2Flineage%2F20349&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFcnkbWv8kDE0fwYlo7z36cy7vT-g" target="_blank">Chef Client</a>&nbsp;that connects to an existing Chef Server (Private or Hosted) to complete configuration on boot. We’ve also just released a <a href="http://www.rightscale.com/library/server_templates/Puppet-Client-Beta-v13-4-/lineage/21573" target="_blank">Puppet Client</a>&nbsp;that works with an organization’s existing Puppet Master. Both of these ServerTemplates provide you with an easy way to get the benefits of RightScale while maintaining your configuration with the solution of your choice.</p><p>To get started, you first import the ServerTemplate into your account and then select a cloud and base image using RightScale. By using a set of simple inputs, the servers connect to your existing Chef Server or Puppet Master to complete their configuration. RightScale continues to provide all the other functions you need for managing your cloud infrastructure: monitoring, alerting, access management, reporting, deployments, analytics, security, and so forth.</p><p>The end result is a full-featured, integrated multi-cloud automation platform that provides the freedom to choose and use the technologies that are right for you, allowing you to continuously evolve your DevOps workflow by leveraging the combined strength of RightScale and your community best practices. Of course you aren’t limited to the ServerTemplates that we publish — you could use this same approach for any other configuration management solution that you use by customizing the <a href="http://www.rightscale.com/library/server_templates/Base-ServerTemplate-for-Linux-/lineage/8160" target="_blank">Base ServerTemplate</a>&nbsp;with the client of your choice.</p><h3>Management ServerTemplates</h3><p>Coming soon, we will introduce complementary ServerTemplates for Private Chef servers and open source Puppet Masters that will allow you to run your entire configuration management system inside of RightScale, taking advantage of our built-in high-availability and disaster recovery functions. Using the client and server ServerTemplates together with RightScale will provide a best-of-breed configuration management solution under your full control.</p><h3>Configuration Management Connectors</h3><p>Once we have released all of these ServerTemplates, we plan to introduce Connectors that will integrate the configuration management server of your choice directly into RightScale, providing full access to our user interface and API for inputs, monitoring, and other operations.&nbsp;Initially, we will continue to work closely with Opscode and focus support on Chef Server. Then, we’ll extend that integration to include open source Puppet Master. The extensible architecture will allow us to continue to evaluate other configuration management technologies, such as Ansible and Salt, and potentially integrate with them as well.</p><p>One of the major benefits of this approach is that RightScale will provide a single pane of glass for server configuration management, allowing you to use any combination of RightScripts, Chef, and Puppet to configure your servers. No matter which technology you choose or which community resources you want to use, you will be able to incorporate them into the servers that you manage with RightScale.</p><p>So, if you’re already using Chef Server, import our <a href="http://www.rightscale.com/library/server_templates/Chef-Client-Beta-v13-4-1-/lineage/20349" target="_blank">Chef Client ServerTemplate</a>&nbsp;today. If you’re a <a href="http://www.rightscale.com/solutions/managing-the-cloud/puppet.php" target="_blank">Puppet configuration management</a> shop, import our <a href="http://www.rightscale.com/library/server_templates/Puppet-Client-Beta-v13-4-/lineage/21573" target="_blank">Puppet Client ServerTemplate</a>.&nbsp;As always, we welcome feedback on all of our ServerTemplates and any RightScale topics through our <a href="https://feedback.rightscale.com" target="_blank">feedback forums</a>.</p><!-- Image courtesy of http://flickr.com/photos/adambindslev --> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="Preview: Bring Your Own Configuration Management from RightScale">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Tue, 30 Jul 2013 19:28:00 +0000Ryan O'Leary299 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/rightscale-news/preview-bring-your-own-configuration-management-rightscale#commentsThoughts on AWS OpsWorks Application Managementhttp://www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p>Since RightScale pioneered the category of cloud management six years ago, we’ve watched a variety of players large and small offer software and services targeted at some form of management of cloud applications and resources. We like to keep tabs on these changes, especially from the point of view of how new technologies affect companies' choices as they adopt cloud computing. Last week Amazon Web Services introduced a new application management service called OpsWorks, which joins its patchwork of management tools for its cloud services that includes CloudFormation, AWS Console, and Elastic Beanstalk. While still in beta, OpsWorks is an interesting service and we’d like to share our thoughts on what it means for customers – beyond the fact that it’s a clear validation of the need for a more comprehensive management solution.</p><p><!--more-->First, a bit of context. In the years since RightScale started in 2006, we’ve always focused on customers who were ready to do something in cloud. But as time has passed, we’ve seen a huge shift from startups and web 2.0-style companies, who were the first to adopt cloud, to central IT shops in large enterprises grappling with cloud strategies for diverse application portfolios. With this shift has also come a change in requirements for any <a href="http://www.rightscale.com/products-and-services/products/cloud-management" target="_blank" title="cloud management platform">cloud management platform</a>.</p><p>In the early days, requirements from our customers were pretty basic: “Please tell us how to get our web app into the cloud and help us with tools and preconfigured templates.” To a large degree, these requirements were legacy-free. As we fast-forward to 2013, the picture is very different. Organizations still want “best practices” help and advice, and they still want tools and ready-to-go assets. But cloud computing also has to fit into a complex environment that reaches throughout an organization, so any cloud management solution needs to enable future flexibility to address companies’ diverse and evolving needs. Even smaller enterprises coming to the cloud today have more experience and more sophisticated expectations, raising the bar for what they want out of their cloud management solution. As a result, those basic requirements of six years ago are no longer sufficient.</p><p>One key new requirement centers on heterogeneity. It has been apparent from the early days of cloud computing that there would be multiple, significant providers for public and private clouds as well as many specialty cloud providers. Customers have told us that they want the ability to choose the best cloud, public or private, for each of their applications. As a result, we’ve worked hard to create a sophisticated <a href="http://www.rightscale.com/products-and-services/multi-cloud-platform" target="_blank" title="multi-cloud platform">multi-cloud platform</a> that integrates with the varying cloud APIs and, more importantly, bridges the different behaviors of each cloud provider. In today’s multi-cloud world, we see ever-increasing demand for a cloud management platform that provides a standardized framework that helps avoid lock-in to any single cloud provider.</p><p>Customers have also told us that they value the flexibility and freedom of choice that comes with open approaches and standards. One of the trends that has been evident in the AWS “move up the stack” is a reliance on proprietary versions of open source technology that seems designed to create greater stickiness for AWS-only solutions. We believe this approach is contrary to what customers want. As an example, at RightScale, we support a variety of multiple load balancing solutions from AWS’ Elastic Load Balancer and Riverbed’s Stingray Traffic Manager&nbsp;to the open-source HAproxy. An example where we forged our own path is when <a href="http://www.rightscale.com/blog/rightscale-news/rightscale-and-chef-integration-cooking-better-servertemplates" target="_blank" title="we integrated Chef into RightScale a few years ago">we integrated Chef into RightScale a few years ago</a> and had to extend Chef with additional functionality to meet customer needs. Since then, Chef has continued to evolve, now offering that missing functionality, and we’re in the process of aligning with the latest versions of Chef so that we can offer our customers the choice of any Opscode-compatible Chef offering. Surprisingly, given the current capabilities of Chef, AWS has chosen to fork an older version of Chef for the OpsWorks solution. At the same time, <a href="http://support.rightscale.com/06-FAQs/FAQ_0181_-_Does_RightScale_support_Puppet%3F" target="_blank" title="RightScale also supports Puppet">RightScale also supports Puppet</a> and simple shell scripts, since many customers prefer those options and because heterogeneity is the norm in the IT world.</p><p>Lastly, RightScale cloud experts have spent a lot of time working with customers to help them <a href="http://www.rightscale.com/solutions/cloud-computing-uses/disaster-recovery" target="_blank" title="architect resilient multi-cloud and multi-region solutions">architect resilient multi-cloud and multi-region solutions</a>. By working with cloud leaders to deploy their production workloads into the cloud, we have evolved our solutions to fit these sophisticated needs. For example, our database templates are pre-configured for a replicated master-slave for disaster recovery, which enabled our customers to stay up and running during recent AWS outages. OpsWorks doesn’t address these issues.</p><p>OpsWorks in this first release addresses only a small part of the cloud management challenge. On the plus side, it has a wizard-like setup flow for basic configurations that is targeted at the DevOps community and possibly the PaaS user. It will be interesting to see how this interface evolves as more advanced features are added. Overall, OpsWorks validates the notion of the need for a higher-level cloud management platform like RightScale that manages the interaction of users, application blueprints, and cloud infrastructure resources. AWS is also following RightScale’s lead by adopting a template approach to server configuration as opposed to virtual machine images that are challenging to update and manage. Our introduction of <a href="http://www.rightscale.com/blog/cloud-management-best-practices/rightscale-servertemplates-explained" title="ServerTemplates">ServerTemplates</a>™ in 2006 answered the need for fully automated configuration management, a requirement that remains just as critical today for companies of any size who want to create an efficient, automated IT infrastructure.</p><p>Ultimately, while OpsWorks will no doubt take its place as another tool in the AWS wheelhouse, the question is whether a management solution that is so focused on a single cloud will find broad adoption. At a point in time where the customer base has broadened to include many large enterprises that use a diverse portfolio of technologies and where the market has broadened to include multiple public mega-clouds, many specialty cloud providers, and fast multiplying private cloud deployments, such a single-cloud management system seems almost anachronistic.</p><p>I’m interested in hearing your thoughts, so please share your comments below. And better yet, continue the discussion by joining us at the upcoming <a href="http://www.rightscalecompute.com/" target="_blank" title="RightScale Compute">RightScale Compute</a> conference on April 25-26 in San Francisco. It is the first truly customer-focused multi-cloud conference, where you’ll be able to hear from a variety of companies using cloud as well as leading voices in the cloud community. We’ll feature content that covers everything from hands-on training to business strategy to technical deep dives.</p><hr> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="Thoughts on AWS OpsWorks Application Management">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Tue, 26 Feb 2013 02:05:58 +0000Thorsten von Eicken210 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/cloud-industry-insights/thoughts-aws-opsworks-application-management#commentsBest Practices: Managing Web Application Sessionshttp://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p>Everyone has an opinion about how you should write your application. Whether it's the structure, language, or database (or not!) that you choose, there are plenty of people telling you what you should do, but not how to do it. So I'm going to focus on the application tier and address several issues regarding application session management — one of the trickiest aspects to tackle in high-performance and cloud-deployed applications and something that most developers take for granted.</p><p><!--more-->My recommendations are based on best practices we follow at RightScale. If you want to apply them to managing your web application sessions in the cloud, <a href="https://www.rightscale.com/free-trial?utm_source=blog&amp;utm_medium=122112&amp;utm_content=toptextlink&amp;utm_campaign=UnifiedFreeTrial" target="_blank">sign up for a </a><a href="http://bit.ly/WBhzr2" target="_blank" title="RightScale Free Edition">RightScale free trial</a>.</p><h3>A Confession about Sessions</h3><p>It's often easier to use the built-in session management tools in your application server (not a best practice, but I've done it, too), and it will usually work even when you get to the point of having multiple servers behind a load balancer (as long as you enable sticky sessions). But using built-in tools causes problems when those servers need to be updated, such as at release time or when they end up failing.</p><p>Managing session data and deciding what's kept in memory versus other data stores is something that developers often don't consider until there's a problem with the application. While it would be nice to be able to get rid of session data altogether, realistically it's something that we should still consider and plan for from an infrastructure and configuration management perspective. Keeping in mind the mantra "build it right the first time," here are some good, better, and best options for you to consider.</p><p><b>Good Option:</b> Get your session data out of the same process as your application or web server, which will enable you to restart your web server and retain session data if set up properly.&nbsp; This is a bit of a niche solution, but some platforms such as .NET allow you to run the <a href="http://msdn.microsoft.com/en-us/library/ms178586(v=vs.100).aspx" target="_blank" title="State Service">State Service</a> separately from the web server (IIS). The main advantage of this is that you can reload your application or even redeploy without disrupting user sessions, although the data is still being kept on the same server.&nbsp; This is a great option when session serialization isn't possible and is as simple as a small change to your application's web.config file and starting a Windows service for the .NET platform.</p><p><b>Better Option:</b> Ship your session data to a database or take advantage of other built-in features related to session data storage and replication across your application farm. Some application servers like <a href="http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/beta500/html/clustering-http-state.html" target="_blank" title="JBoss">JBoss</a> or <a href="http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html" target="_blank" title="Tomcat">Tomcat</a> have built-in mechanisms to handle cross-server replication of session data. These configuration-heavy setups certainly have some significant advantages, and more server technologies are building in solutions to distribute session data and even cache data.</p><p>Something to consider is how you'll manage the machines in the cluster so that they are aware of each other. RightScale tags are a great fit for this scenario, and we use this mechanism ourselves at RightScale to manage the auto-attachment process of web servers to our load balancer with the <a href="http://www.rightscale.com/library/server_templates/Load-Balancer-with-HAProxy-v13/lineage/9103" target="_blank" title="HAProxy ServerTemplate">HAProxy ServerTemplate</a>™. RightScale ServerTemplates are built from modular images, scripts, and variable inputs to enable you to dynamically provision your servers at boot time using your chosen configuration and variable inputs.</p><p><b>Best Option:</b> Check out a solution like <a href="http://www.rightscale.com/library/server_templates/Memcached-Standalone/lineage/4147" target="_blank" title="memcached">memcached</a> in a clustered configuration, which is both out-of-process related to the web server and off-machine so that any server can serve up the same session. <a href="http://www.rightscale.com/library/server_templates/All?s%5badvanced%5d=&amp;s%5bfilter_value%5d=couchbase&amp;x=0&amp;y=0&amp;s%5bfilter_type%5d=title_and_description&amp;s%5bcategory%5d=All&amp;s%5bcloud_vendor%5d=&amp;s%5bcloud%5d=&amp;s%5border%5d=date_desc" target="_blank" title="Couchbase">Couchbase</a> also offers a great distributed session toolset. Solutions like this are tuned to manage sessions or simply to reduce the overhead of storing data so that your session data is saved and retrieved efficiently and effectively. Get it set up right and you could even consider ditching that sticky session configuration on your load balancer.</p><h3>A Few More Tips on Web Application Session Management</h3><p>Keep in mind that when you start shipping your session data to a centralized server, you'll need to make sure that your data is serialized and de-serialized properly. So don't forget to test to make sure that the change in how you're managing sessions (if you're migrating from another process) doesn't break your application. The most common issues regarding serialization are related to the time it takes to serialize large session objects and the problems that can occur with serializing binary objects — two great reasons to only use application session objects when absolutely necessary.</p><p>The devil's always in the details, so automating the work of standing up these systems and relying on a set of proven assets to implement your infrastructure on top of it is a huge advantage and will save you tons of time over the long run. RightScale offers a number of built-in tools, scripts, and <a href="http://www.rightscale.com/solutions/managing-the-cloud/chef.php" target="_blank" title="Chef">Chef</a><a href="http://www.rightscale.com/library/server_templates/Chef" target="_blank"> recipes</a> to set up these types of configurations and can serve as a great starting point with ServerTemplates that have been tested by both RightScale and the entire community.</p><p>If you'd like to see dynamic configuration in action, request a <a href="http://pages.rightscale.com/cloud-consulting.html?utm_source=blog&amp;utm_medium=122112&amp;utm_content=textlink&amp;utm_campaign=CloudSight" target="_blank" title="request a Free RightScale demo">free consultation</a> or get started with a<a href="https://www.rightscale.com/free-trial?utm_source=blog&amp;utm_medium=122112&amp;utm_content=bottomtextlink&amp;utm_campaign=UnifiedFreeTrial" target="_blank"> </a><a href="http://bit.ly/WBhzr2" target="_blank" title="free RightScale trial">free RightScale trial</a>.</p> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="Best Practices: Managing Web Application Sessions">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Fri, 21 Dec 2012 20:14:50 +0000Patrick McClory149 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/cloud-management-best-practices/best-practices-managing-web-application-sessions#commentsRightScale Release: MultiCloud ServerTemplates and RightImageshttp://www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p><em>This is Part Two of our release series.&nbsp; <a href="http://blog.rightscale.com/2011/08/25/rightscale-release-multicloud-api-server-assistant-community-translations/" title="RightScale Release: New MultiCloud API, New Add Server Assistant, and Community&nbsp;Translations">A couple weeks ago, we announced a lot of goodies</a> and we're going to talk about some new stuff today. </em></p><p>It has been a R.A.C.E. to the finish line this sprint, but we have some exciting news!&nbsp; RightScale's current ServerTemplate release showcases the entire PHP 3-tier stack across the <span style="text-decoration:underline;">R</span>ackspace Cloud, <span style="text-decoration:underline;">A</span>mazon's Elastic Compute Cloud, <span style="text-decoration:underline;">C</span>loud.com's CloudStack and <span style="text-decoration:underline;">E</span>ucalyptus Systems (hence R.A.C.E).&nbsp; These new HAProxy Load Balancer, PHP App Server and Database Manager for MySQL 5.1 ServerTemplates are available now <a href="http://www.rightscale.com/library/server_templates/All?s[advanced]=true&amp;s[filter_value]=RightScale&amp;x=0&amp;y=0&amp;s[filter_type]=publisher&amp;s[price]=&amp;s[category]=All&amp;s[order]=date_desc" title="RightScale MultiCloud Marketplace">in the MultiCloud MarketPlace</a>.</p><p><a href="/sites/default/files/2011/09/screen-shot-2011-09-06-at-8-39-08-am1.png"><img alt="" class="media-image aligncenter size-full wp-image-957" height="300" style="" title="MultiCloud Marketplace" width="480" typeof="foaf:Image" src="http://www.rightscale.com/blog/sites/default/files/styles/large/public/2011/09/screen-shot-2011-09-06-at-8-39-08-am1_0.png?itok=mEnUwUfe" /></a></p><p>Underneath all these templates, we're releasing a new CentOS 5.6 MultiCloud Image with RightLink 5.7 for all EC2 regions, Rackspace Cloud Servers, Cloud.com's CloudStack and Eucalyptus Systems.&nbsp;&nbsp;For a complete list of ServerTemplates and MultiCloud Images we released, check out our <a href="http://support.rightscale.com/18-Release_Notes/ServerTemplates_and_RightImages/Current" title="release notes">latest release notes</a>.</p><p>People often talk about developing for the cloud and associated challenges.&nbsp; But what about building platforms on which other people develop their apps in the cloud?&nbsp; It is very challenging building for the "general use case", but it is even more important when you build for generality that it works well.&nbsp; A lot of time and effort goes into designing and building our ServerTemplates.&nbsp; During development, and especially before release, we conduct extensive manual and automated testing cycles where we put our templates through the wringer.&nbsp; Below is a sample test matrix that represents our checklist for one ServerTemplate.</p><p><a href="/sites/default/files/2011/09/screen-shot-2011-09-07-at-1-17-48-pm.png"><img alt="" class="media-image aligncenter size-full wp-image-971" height="422" style="" title="Sample Test Matrix" width="480" typeof="foaf:Image" src="http://www.rightscale.com/blog/sites/default/files/styles/large/public/2011/09/screen-shot-2011-09-07-at-1-17-48-pm_0.png?itok=FgR2gKsl" /></a></p><p>Notice that we test this one ServerTemplate across 2 separate images in 7 clouds each.&nbsp; Considering that we released 9 ServerTemplates last week, this makes for quite a few permutations.&nbsp; Of course, we also find bugs and have to retest rapidly.</p><p>Luckily we have help with a home-grown automation tool that we call Virtual Monkey. The monkey uses the RightScale API to create deployments with servers to test, launches them, runs tests against them, collects the results, shuts everything down, and cleans up. In most cases the tests include entire 3-tier application deployments so we can test the interactions between the servers and ensure things work end-to-end. All in all we launch hundreds of servers a day in various clouds to test these ServerTemplates and make sure they work before we let them loose in the wild.</p><h3>Not all clouds are created equal...</h3><p>If you've done anything on multiple clouds, you'll appreciate the behind-the-scenes presented above.&nbsp; When launching hundreds of servers and developing infrastructure-as-a-service agnostic solutions, small nuances can be big blockers towards expected end-user functionality on the solution.&nbsp; From security groups on Amazon versus iptables management on Rackspace to volume snapshot API response differences in Eucalyptus and CloudStack, the ServerTemplate needs to be aware and abstract away differences.&nbsp; Do our customers really care about these differences?&nbsp; Of course not.&nbsp; They just expect one solution to work on one cloud type just as well as it works on another cloud type.&nbsp; You may have noticed that we utilized Chef for many of our recently released ServerTemplates.&nbsp; Chef allows us to abstract the business logic away from the details of the cloud, &nbsp;making it easier to propagate the same solution to as many clouds as we can get our hands on.</p><h3>Wait, each cloud has different profiles for instance types!</h3><p>But Chef isn't the only innovation that we use.&nbsp; We also have to support many 'by design' cloud architecture differences. For example, pre-defined instance types.&nbsp; Instance types in Amazon, while being the same across all regions within Amazon, do not align well to flavors in Rackspace.&nbsp; Plus, in private clouds, you can either use the default instance types or custom configure to what your application demands.&nbsp; How then does a specific ServerTemplate correctly configure a new instance for optimal performance?&nbsp; Seems like that's (yet another) real prerequisite for proper application setup.</p><p>In the specific case of MySQL, our ServerTemplate will <em>auto-tune</em> configuration parameters including innodb_additional_mem_pool_size and table_cache.&nbsp; The tuning is based off of an instance's available memory.&nbsp; Of course this can be overridden on a per-server basis.&nbsp; This mechanism extends well to our PHP App and Load Balancer ServerTemplates where you override parameter defaults specified in apache2.conf and haproxy_http.</p><p>All of this is just the tip of the iceberg.&nbsp; Check out the <a href="http://www.rightscale.com/products/configuration-framework.php">ServerTemplates</a> for yourself and <a href="http://feedback.rightscale.com">let us know what you think</a>.</p> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="RightScale Release: MultiCloud ServerTemplates and RightImages">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Thu, 08 Sep 2011 21:29:57 +0000Shivan Bindal113 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/rightscale-news/rightscale-release-multicloud-servertemplates-and-rightimages#commentsRightScale ServerTemplate Library and Machine Tagshttp://www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"> <p>Yesterday's release of the RightScale platform introduced two new features that I'm really excited about: the ServerTemplate Library and the use of Machine Tags on servers. &nbsp;</p><p>We've had sophisticated sharing of <a href="http://www.rightscale.com/products/configuration-framework.php">ServerTemplates in RightScale</a> for over a year now allowing certain users to share ServerTemplates, RightScripts and other design artifacts with other RightScale users. This enables us to publish free ServerTemplates to all our users and premium ones to our customers, and it also lets ISVs on our platform publish ServerTemplates for free or for pay to their users and customers. In addition, each of the design artifacts is versioned such that users who have launched servers with a ServerTemplate last year can still launch new servers with exactly the same version of that ServerTemplate.</p><p>A result of all this publishing, sharing, and versioning is that there's a lot to choose from - so much that drop-down menus have become unwieldy, and this is where the new library comes into play. In the past, when adding a server to a deployment, you had to find the correct ServerTemplate from the list of all available templates in the RightScale system. Now this has become a two-step process where you first import the ServerTemplates of interest from the library into your account, &nbsp;then only the imported templates are shown in all the drop-down selection menus. Separating the library import/export step also allows us to significantly upgrade the experience of browsing all the design artifacts in the library over the coming releases.</p><p>We introduced Flickr style <a href="http://www.flickr.com/groups/api/discuss/72157594497877875/">machine tags</a> recently, and we're expanding their use with this release. One of the really exciting new features is that servers now have tags, and we've integrated the tags with the routing of messages between servers, with Chef (via the RightLink agents) and with the UI. All this is still in alpha but it's starting to take shape. Our first real use case is the registration of application servers with load balancers. When a load balancer comes up and is ready for operation, it adds a "loadbalancer:lb=www" tag to say "I'm a load balancer for the www vhost." When an app server starts up, it requests all servers in the deployment with a "loadbalancer:lb=www" tag to run a Chef recipe that adds the app server to the load balancer rotation. This way, the app server doesn't need to know which or how many load balancers there are. The tag matching, communication, and running of the Chef recipe are all done by the RightLink agents.</p><p>To let new load balancers come up when app servers are already running we can do the same tag-location in reverse: app servers announce "loadbalancer:app=www" to say "I'm an app server serving vhost www" and load balancers on startup can add all app servers to their config by querying for all servers with that tag. For overall resiliency it's a good idea for load balancers to requery the set of app servers and to update their configs accordingly. This catches race conditions as well as issues where portions of the app servers may be temporarily invisible due to network partitions. The theme here is eventual consistency, and we're still evaluating what the best primitives are to support high availability.</p><p>You may wonder why the examples above use such long tags. That's really where machine tags come in. The "loadbalancer:" prefix helps isolate the tags to coordinate the load balancer registration from other tags. Think of "loadbalancer" as being the name of the application or feature that uses these tags, e.g. the load balancer registration. The "lb=www" and "app=www" tag predicate and value can be used to support multiple vhosts. So a load balancer could announce "loadbalancer:lb=www" and "loadbalancer:lb=api" to indicate that it's load balancing the www and api vhosts. And an API app server then would only query for the "lb=api" tag and it would only announce the "app=api" counterpart.</p><p>While all this is happening among the servers, the RightScale UI provides access to all the tags, so one can see the servers announce the various tags and one can even intervene and manually modify these tags. We might provide a "don't touch" notion for some tags, but right now it's more important to us to be able to expose all this machinery. As an ops guy, there are few things I loathe more than hidden automation that I can't inspect and override when I need to.</p><p>Of course there's more in the new release than just these two features: more support for Rackspace (monitoring in particular), improved support for Chef, support for new AWS features, <a href="http://support.rightscale.com/18-Release_Notes/01-RightScale_Dashboard/Current">and more</a>.</p> </div></div></div><div class="easy_social_box clearfix vertical easy_social_lang_und">
<div class="easy_social-widget easy_social-widget-twitter first"><a href="http://twitter.com/share" class="twitter-share-button"
data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags"
data-count="vertical"
data-lang = "en"
data-via=""
data-related=":Check it out!"
data-text="RightScale ServerTemplate Library and Machine Tags">Tweet</a></div>
<div class="easy_social-widget easy_social-widget-facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A//www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags&amp;send=false&amp;layout=box_count&amp;width=48&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=&amp;height=90&amp;appId=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:90px;" allowTransparency="true"></iframe></div>
<div class="easy_social-widget easy_social-widget-googleplus"><div class="g-plusone" data-size="tall" data-annotation="bubble" data-href="http://www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags"></div></div>
<div class="easy_social-widget easy_social-widget-linkedin last"><script type="in/share" data-url="http://www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags" data-counter="top"></script></div>
</div> <!-- /.easy_social_box -->Wed, 28 Oct 2009 19:35:02 +0000Thorsten von Eicken78 at http://www.rightscale.com/bloghttp://www.rightscale.com/blog/rightscale-news/rightscale-servertemplate-library-and-machine-tags#comments