I like to joke that every trouble starts somewhere at executive level… for example a golf field!!! Suddenly your boss comes to the office and this happens…
“You know what?… We are about to launch some new cloud services…” he says.
“Really?… What cloud services?”… you ask.
“Well, I don’t really know… think about something… just get it done”… he replies.
This is the time when you have to figure out what to do and how to do it…
There are a lot of different Cloud Services out there… so I’ll try to illustrate what the different things that people are offering really are. If we assume that more or less everything is a web-based application today, then we have the User Interface which is in the user’s browsers or iPAD Smartphone application or something like that. On the server-side, there is a Web Application which runs on top of a scripting environment, which runs on top of a web server that, by the way, uses a Database. Both, the Web Server and the Database use File System that is in some sort of Block Storage; and also both, Web Server and the Database are running on top of an Operating System that needs some CPU, RAM, Storage, and some networking access.
You can insert different things anywhere in between these lines and you’ll get different cloud services:
- If you put a service between the user and the Web Application, it is called Software as a Service (SaaS)
- If you give people an environment in which they can develop their own scalable web applications, it’s usually called Platform as a Service (PaaS) that could also derive in Database as a Service (DBaaS)
- We can also have two types of Storage as a Service (Storage-aaS): you could either offer File System as a Service or you can offer Block Storage as a Service
- Finally, the service on which nowadays many of Cloud Providers are most interested on… Infrastructure as a Service (IaaS), which is usually Server Virtualization plus a lot of things around it
What is the difference between traditional Web Hosting and Platform or Infrastructure as a Service?
Traditional Web Hosting was pretty static, so you could only get a web server or a virtual web server and that was it; if you got more demand of services, the web server just fell over and there was the beginning of many scalability issues.
A true complete IaaS solution should be scalable, elastic, location independent and the cloud service should be really on-demand, which means… I can consume it when I need it, no need to sign a contract and pay in advance for 6 months or so, and then get the service in three months.
- Scalability – Scale Out preferred over Scale Up
- Orchestration – There must be something behind scenes that auto-configures resources like computing, storage and networking. So that, the users can ask for the service and get the service when they need the service, not two days later.
- Customer-driven deployment
- Robust networking – Use of standard protocols that allows us to interact with any other networking element with no compatibility issue
- Lots of east-west traffic – Traffic within the data center (replication distributed file system, multi-tenant architectures)
- Robust local & global load balancing – Choose load balancers that offer high-level APIs (the more programmable, the better)
It is important to understand how an IaaS solution is built because it seems that most of the cloud offerings are implemented on top of IaaS service by means of server virtualization.