Cloud computing has become the latest buzz word. Whether you a brand new startup or an established business, you will wonder if Cloud is right for you. The problem is also immensely complicated by the fact the Cloud providers vary in the services they offer and the prices they charge. In this post I will shed some light on the topic.
First a Little History…
The term “Cloud Computing” comes from the cloud shapes used to illustrate the internet in network diagrams. The origins of cloud computing date back to the mid 1990s, when a movement of companies named ASPs (Application Service Providers) or hosted providers created a new kind of application, one that did not require installation on site. Now instead setting up servers and hiring staff, companies could just pay a monthly fee. As time went on, the concept stuck, but the name changed.
In 1999 when Salesforce.com launched, they no longer called themselves an ASP; they called themselves a Software as a Service company (SaaS). Salesforce was great for companies, as it allowed them to pay a per user / per month fee, providing great financial savings over running a CRM server. As the concept caught on, more companies entered the race and more innovation followed. Amazon launched it’s Elastic Compute Cloud (EC2) in 2006 and Google developed Gmail and Docs for the enterprise. 2007 saw the introduction of Heroku, and 2008 brought the Google App Engine. All of these services are different in both design and purpose, the specifics of which we will see now.
Types of Clouds
Infrastructure as a Service (IaaS)
This type of cloud service does it’s best to mimic traditional data centers. You are able to provision individual “server” instances. These servers can then be configured with the required operating systems and software. The top vendors in this space are Amazon, Rack Space as well as IBM. The benefit of this solution is the flexibility of the design, which allows you to create very complex systems. But, there is always a trade-off, and in this case it is ease of use. When using an IaaS provider, you need to be knowledgeable in system architecture and data center administration. This is not a problem for large enterprise, but may be an issue for a small start-up with only a few individuals.
Platform as a Service (PaaS)
These services take you one step further from to the “metal.” With them you don’t have to worry about the specific servers or software. In many cases the provider will segment the solution into “services” like processing, storage and caching. This is a lot easier to manage for individuals who have a development background and not a hardware background. However, because you are now thinking in terms of pre-configured services, you have less flexibility in design and technology. Providers support specific software stacks and languages and choosing a provider is more likely to lock you into a particular platform, which is not the case with IaaS. Some well known companies in the PaaS field are Heroku, dotCloud, Microsoft Azure and Google App Engine. These services are easier to use and may be cheaper for smaller apps. The pricing however may exceed IaaS solutions for larger applications.
Software as a Service (SaaS)
This type of cloud provider is placed furthest from the “metal.” The provider has built a software system, and you are just customizing it to fit your need. Notable examples include Salesforce.com and Google Apps for Business. You may be able to customize the application to create a product that is more compatible with your needs, but your options will be somewhat limited. On the other hand, your need for technical expertise is also limited, so you are able to do more with fewer technical resources. The pricing on these services tends to be on a per user basis and may become pretty steep. However, this is offset by the fact that you need fewer technical resources to support the solution.
Some final words
There are many types of clouds and cloud providers; there is no one true solution but rather a gamut of options. Which one is right for your business? Well, that depends. Are you a large or a small business? Do you have technical people available? Do they know hardware or software better? How much custom work does your solution need and how much can you leverage what is already built? There are a lot of questions to be answered but asking them is the first step.
Dmitry Grekov is a technology architect with Accenture and a co-founder of Venue Cricket a marketplace for Chicago Event Venues which is a cloud hosted business, hosted on dotCloud. You can follow him on twitter: @dgrekov.