Cloud Computing Described Through The Analogy of (US) Thanksgiving Dinner
Ask a technical person what cloud computing is and you will most likely get a boilerplate answer that somewhere in it includes the terms “elastic”, “agility”, “broad network access”, “dynamic”, and “measurable”. However, for most individuals seeking an understanding of the role cloud computing will play in their IT environment, these definitions really don’t answer the mail. That is why I have developed an analogy based on US Thanksgiving dinner to help introduce the concepts of cloud computing. So far, this analogy has worked out pretty well in discussions with customers for creating a visualization of what we are attempting to achieve with cloud and why it’s different than what IT is typically doing today.
Let’s start with the carving the turkey. Every year you invite ten people to Thanksgiving dinner. Since you invite the same people every year, you’ve learned after the first couple of years exactly how to carve up an eighteen pound turkey so that there are enough pieces to feed everyone. Moreover, you know exactly how much white meat there will be and how much dark meat. Additionally, since you invite the same ten people every year, you have an understanding of which pieces each of these individuals prefer. The result is that everyone is, mostly, happy and you have a wonderful Thanksgiving dinner. The reason I said “mostly happy” is because some people settle for less preferential pieces, but they don’t complain and make due with what’s available.
This pretty much epitomizes today’s Infrastructure-as-a-Service offerings. There’s a set of resources (the turkey) and it gets carved up into small, medium and large sized virtual machines. There’s very little deviation from the template. You get a certain amount of memory, CPU and bandwidth associated with your selection. Carving up the resource pool in this manner means that operations can more easily manage the cloud environment, ensure that there’s enough “turkey” for everyone and it satisfies a well-known audience. Based on this approach, it’s easy to monitor capacity and define rules for expanding the resource pool. Additionally, the pool is expanded in fixed increments facilitating easier acquisition.
The above offering describes a good first step on the road to delivering cloud computing, but it is not cloud computing; it’s virtualization. Moreover, IT organizations applying this approach are typically modeling their physical data center as a virtual entity. So, let’s explore what happens when we move from virtualization to cloud computing continuing our Thanksgiving dinner analogy.
This year, Crazy Uncle Joe returns from abroad and would like to attend your Thanksgiving dinner. Introducing Uncle Joe changes a lot about your environment. For one, Joe always asks for his turkey in a way that totally undermines your method of carving. That is, Joe wants a piece of the bird that you typically carve into two separate pieces. Additionally, Joe can’t get along with Aunt Mimi, which means that the seating for the table must also change. The issue before you is how can you accommodate Uncle Joe, while still being able to ensure there’s enough turkey for all the other guests and ensuring there’s not an all-out brawl in the middle of dinner? Now we’re talking cloud computing!
Restated as an operational problem, how can you carve up your compute resource pool in a dynamic way that ensures that your existing customers continue to be serviced at an expected service level, without adding resources—additional capacity may be required, but for this scenario, we are assuming the resources are there, but you need to approach carving the pool differently—and without allowing processes to co-reside next to each other that have the ability to limit each other’s performance. This is the challenge for IT organizations as they move to cloud computing.
Traditional approaches to IT rely on dedicated hardware for specific applications. Hence, if an application needs storage, throw a few more disks in the array. If it needs more processors, throw a couple of more blades into the chassis or a few more nodes into the rack. The application stack approach is rarely ever impacted by other applications running in the data center as they are usually separated by subnets with quality-of-service controls placed at the routers. All-in-all, if it wasn’t insanely expensive and wasteful, the simplicity has a sense of beauty. Take all those apps, throw them onto the same resource pool and the cost of power and cooling drops, resource utilization goes up and the overall complexity of managing the environment increases exponentially. That is, assuming you’re delivering cloud computing and not just virtualization.
To move from virtualization to cloud computing requires significant planning, training and new tools. Using our turkey analogy once again, once you lock in the way to carve the turkey, doing it year after year requires no changes. However, now that Uncle Joe is showing up, you need assistance to understand how carving the turkey to support Joe’s request will impact your approach to carving up what’s left. If, somehow, Uncle Joe finds his way to the seat next to Mimi, which happens as people move around to talk more freely, then this will certainly be a Thanksgiving the family will be talking about for many years to come. Hence, you need to play traffic cop as people move around governing where they can move and where they cannot.
The above scenario represents needs for tools to support cloud-based capacity management, governance controls over virtual machine execution, and automation and orchestration tools to simplify these tasks so that they do not consume all the human resources available to administer and operate the environment. In turn, these tools are supported by the likes of service catalogs and cloud managers. As you can see this is a comprehensive change to most existing IT environments.
So, in conclusion, hopefully this piece will be helpful for you in your quest to better understand cloud computing and to be able to explain to others what it is and what it takes to implement. There are great upsides for organizations that can harness this vision and make it work. Meeting workload demands in a dynamic fashion, better utilization of existing resources, and making the organization more agile are some of the key results that can be achieved by implementing cloud computing.
About the Author
JP Morgenthal is one of the world's foremost experts in IT strategy and cloud computing. He has over twenty-five years of expertise applying technology solutions to complex business problems. JP has strong business acumen complemented by technical depth and breadth. He is a respected author on topics of integration, software development and cloud computing and is a contributor on the forthcoming "Cloud Computing: Assessing the Risks" as well as is the Lead Cloud Computing editor for InfoQ.
Shane Hastie on Distributed Agile Teams, Product Ownership and the Agile Manifesto Translation Program
Shane Hastie Apr 17, 2015