Say you have deployed a multi-tier web application in the cloud, with each tier made up of a few servers. How large does each tier need to be? That depends on the demand placed on the application at any given time, and in many cases this is hard, if not impossible, to predict. Each tier may have its own internal bottlenecks and will have to scale differently from the others. But in any case, it all boils down to:
Too little server resource and your application user’s experience will suffer;
Too much and you are over provisioning and over spending on infrastructure.
You want to make sure your application is able to scale to meet unpredictable workload demand. Naturally, the cloud is the right place for your application. There you can easily create all the pieces required to build a scalable application – application servers and load balancers to control how traffic is distributed across them and database servers configured to accommodate different reads and writes, cache servers; and so on.
As a Chef user, you’ll want to easily deploy Chef cookbooks to applications in the cloud. This could involve a lot of work and time, or can more easily be done. Let’s dive into the situation.
Your goal is to deploy a Chef cookbook to an application in the cloud. You have the cookbook from the Chef Supermarket, or maybe you have your own one, which describes an application that is specific to your organization. The Chef cookbook contains all the steps to get your application up and running, so it should be an easy task. But guess what? It’s not. There are still a number of steps that you have to go through before the cookbook can start doing its magic, building and running the application for you.