Over the last few months, we have talked about several cloud models in use by organizations all around the world. In this blog we will look at the most popular ways in which the cloud is delivered to us; more specifically Infrastructure as a Service(IaaS), Platform as a Service (Paas), and Software as a Service (SaaS).
In previous blogs, we highlighted that the cloud allows you to offload a significant part of your operations over to a third party to do the lifting. With large data centers available from Microsoft, Google and Amazon spread out in regions all across the world, we can offload a substantial portion of the maintenance of our applications.
The degree to which we do this is what we are focusing on here. All three forms of ‘as a service’ allow increasing degrees of capacity to be carried by the vendors.
The key takeaway away here is that what you control, you can tweak – so the more responsibility you give away to a third party, the less flexibility you have to change things. Just like Google’s Android and Apple’s IOS. Android lets you do awesome and crazy things, but can break and is messy. IOS won’t let you change a thing, but it tends to just work and is stable.
So let’s explore the 3 options we have with a great analogy – pizza.
On-premise offerings basically mean that you have all the hardware in your possession physically. Nothing is in the cloud and you are running the whole pizza shop. You control the show here and there is no service from the cloud.
Infrastructure as a Service (IaaS)
With IaaS, you have made the initial transition to the cloud. In this case, you have your virtual machines, storage, and network under control. You can scale as you see fit, tweak settings on individual machines, and tear down and build up environments when needed.
With our pizza shop analogy, it’s kind of like you are renting the kitchen from the vendors. They take care of the underlying equipment, but you are in charge of whatever you cook up.
With IaaS, you work in the cloud, but how everything runs is up to you nearly entirely (of course limited to the ever-increasing options from the vendors). You are responsible to make sure your systems are secure as well, which could be a downside, however, the flexibility offered to you could lead to significant cost savings making it well worth it!
Examples of this would be infrastructure offerings from Microsoft Azure, Google Cloud, and Amazon Web Services.
Platform as a Service
With PaaS, we take a step further by laying off some of the hard liftings. With PaaS, along with the hardware, you also relieve control of the Software you are building on. In this case, you let the vendors take care of the hardware and software that are needed to host a platform. You then have all the freedom to build your applications on top of this platform as you see fit.
This would be like running a pizza shop and having the dough taken care of because all pizzas are basically dough with toppings right? We would come in and choose our toppings, throw them in the oven and we got pizza. This does however mean we don’t get to change the texture, ingredients, and thickness of the dough!
In the same way, it gets a bit more challenging in this case to run custom code or tweaks, but it does save a lot of time with getting the whole platform up and running. You don’t have to take care of keeping it up to date.
An example, in this case, would be Red Hat Openshift. Here the layer provided above Kubernetes allows for easier use as you manage your containerized workloads
Software as a Service
SaaS is where you give away all your freedom!
No, not entirely, but kinda.
With SaaS, we tell the vendors to please just make sure everything works and runs – we want to plugin and use it! If we compare it to our pizza analogy it’s like we give control of the whole shop to the vendors, all we want are the pizzas at the end.
You’ve probably made use of several of these Saas offerings. Think about Microsoft Office 365 or your Gmail account. You just create an account and get going. You don’t worry about anything running underneath, all you see is the application and you let the vendor do the rest. Of course, the downside with this is that you are extremely limited with what you can change through the application’s settings. However, for organizations that are relatively young and low on capital, this could be a great option!
Your Pizza is served!
In the end, all these delivery models have a common goal of getting you the pizza you need. Each application and project is a balancing act between customization with risk and stability with restrictions. This, alongside careful consideration of costs and the demands from the business, allow for multiple solutions to get up and running. Just make sure you aware of the trade-offs at the start, and not halfway through building out your application landscape!