The phrase “Cloud Computing” probably has more meanings than any other technical term. This can lead to confusion, miscommunication, cats and dogs sleeping together, and all manner of unholy consequences. I think a universally-agreed upon definition of Cloud Computing is long overdue. So, for the preservation of humanity and for the sake of all that is good and noble and just, I’m going to try to do that here.
People in the IT industry often think of Cloud Computing as merely computing-at-a-distance. This (rather limited) view holds that all the infrastructure and data exist in some abstract, remote, even mysterious location. By this definition, all the other building blocks that form the service (e.g. networking, storage, servers, database, etc.) are analogous, or even identical, to the familiar systems that have formed the basis of Enterprise Computing for several decades. A server is a server no matter where it lives, right?
Well, let’s answer that by looking at what makes Cloud Computing different. There are four qualities that characterize Cloud Computing at its most fundamental level.
Cloud Computing has to be virtual. Virtual servers, virtual storage, virtual load-balancers, virtual firewalls, virtual networking—these are the building blocks that allow services to run in the Cloud. These pieces can be deployed at scale with far greater speed and agility than any physical implementation could hope to achieve.
But this is more than just speed. A virtual environment allows us to make multiple copies of a complete environment for testing, quality assurance, new deployments, disaster recovery, or simply to ensure the consistency of a configuration across all systems.
The Cloud is open for all to use. It’s like a giant vending machine with peanut M&M’s and those licorice things, and chocolate covered pretzels. Mmmmmm, chocolate… covered… pretzels. In the Cloud, there’s nothing separating the person from the pretzels. There’s no need to requisition a server weeks or even months in advance. The server is there when you need it. There’s no submitting tickets to add more disk space. The space is there when you want it. The cloud is designed for self-service and independence. It’s all chocolate covered pretzels, baby.
An application program interface (API) is a natural outgrowth of a self-service architecture. Self-service allows me to deploy one server (or get one bag of chocolate covered pretzels). What if I want 10 servers, or 100? What if I want 28 servers every time my code is ready to be tested, and then 2167 servers when I’m ready to deploy my new widget to every corner of the pretzel-loving world? This is why an API exists, and why you don’t get to dance at the Cloud Computing Ball without one.
A mature Cloud solution will likely have several API’s to allow integration with different programming languages (i.e. Python, Ruby, RESTful, PowerShell, etc.). And all of the functionality of the Web-based Graphical User Interface will be made available via the API.
The only constant is change, and any Cloud solution needs to respond to that. Cloud Computing should scale up to meet any requirement, any bandwidth need, or any deployment size. Likewise, it should scale down when resources aren’t needed. This reserve capacity is necessary to handle the all-too-common confluence of you and your closest army of pretzel-chewing IT commandos hitting “Buy NOW” at the same time. Or perhaps when everyone decides to deploy 2167 new servers. If your provider has ever run out of resources when and where you needed them, then I’d argue that you’re not talking to a Cloud Computing vendor.
The more insightful readers (who have made it this far) may have noticed that none of these four qualities are related to the location of the servers or the data they serve. Contrary to popular belief, Cloud Computing does not need to be “in the Cloud.” The word “cloud” is not a reference to a location so much as a process—a way of consuming computing resources in a seamless, dynamic way. In fact, the oft-maligned term “Private Cloud” is perfectly acceptable and accurate if the solution it references is virtual, scalable, API-driven, and provided as a self-service.
High Availability, Inc. has extensive experience with all types of Cloud Computing (including the Chocolate Covered Pretzel 2000xl). Contact you High Availability, Inc. account manager today to discuss your business’ Cloud Computing needs.