Who of you hasn’t bought a computer before? In this age and time, I would say no one. During your buying journey for a new computer, I’m sure you’ve stumbled upon some of the technologies that are used inside it, such as CPU, RAM, Disks and Network. You install a software operating system on top of the hardware you get and you start doing whatever you want with it. Servers are not much different than buying a computer for your own house, except that the components used inside a server are designed to serve a large number of people accessing the data inside those servers.
What does all of this have to do with “Cloud Computing Patterns”? I’m sure you’re wondering by now. My answer would be: if you’re able to tell the limits of a computer or a server, you could grasp the idea behind Cloud Computing Patterns easily. Let me explain.
I have been in the IT business for so long that I can always see over/under utilized servers, companies pour money into buying server hardware only to end up using a fraction of what the hardware can do. I’ve seen my share of the exact opposite scenario too where companies try to stay on a tight budget by buying the bare minimum of hardware requirements to run all the company apps on. Some will argue that Virtualization would be a solution to all of the above, I’ll leave this discussion for another post entirely.
Enter Cloud Computing Patterns to the rescue, a concept that allows you to utilize and use hardware components on the cloud depending on your app needs. A concept much known by the term “Elastic Cloud“. The term came from the idea that if you deploy an application on the cloud, you can configure it to increase or decrease the amount of CPU, RAM, Disks and Network that its using based on current load and other factors you may choose to use.
If you’re wondering why you should know all about this and why you should care, perhaps reading my “Cloud Computing? Anyone?” introductory post to Cloud Computing would be a good idea now.
Alright, lets jump into talking about the five most cloud computing patterns out there, shall we?
- Static Pattern: If you’re using physical computer or just the default installation of a server on the cloud, you’re using the Static Pattern, you’re not getting the “Elasticity” of the cloud. The resources you have will not scale up or down based on your needs, and you’ll end up paying the same amount for the resources allocated regardless if you’re using them or not. Not our preferred pattern but its faster to deploy in terms of time.
- Predictable Bursting Pattern: With this kind of pattern, the resources you’re utilizing are scaled up/down on regular bases and on known times. This is suitable for scenarios where the hardware resources being used are no longer needed and can be scaled down to cut cost, such as the end of a working day where employees are no longer working. The opposite also applies where your apps are in need for more hardware resources to run smoothly, such as the beginning of a working day.
- Unpredictable Bursting Pattern: Unlike the predictable bursting pattern, we don’t know when a spike of demand will appear to our app, and we don’t have any reading to when or how our app will be utilized. The unpredictable bursting pattern will help in this case by allowing hardware resources to scale up/down based on the app need without user intervention. This is very ideal for scenarios such as a social media site or a news websites where users will be accessing the site at random times based on real time events.
- Growing-Fast Pattern: with this type of cloud patterns, we start small and start scaling up gradually as demand starts to increase. The hardware resources will be added automatically as long as there is demand on the app. This is very useful for startups and companies who are just developing and evaluating new ideas, they start by paying the bare minimum and scale up as demand grows.
- Once in a lifetime Pattern: In this type, the hardware resources are utilized for only one time and then discarded. This scenario is very useful for apps that are used during special events like an online event or the new year celebration. Once the event is done the hardware resources can be safely deleted since they’re no longer in use.