Hello and welcome to 2016! This is the first post of the 2016 and I wanted to start with a series of posts on cloud services, because it appears to be a cool place that everyone wants to know about and there is quite a competition between the big four competitors out there: Amazon through Amazon Web Services(AWS), Microsoft through Azure, Google through Google Cloud Platform and IBM. I’ve been using Azure for years but relatively recently I started with AWS and I can talk about them from a developer perspective. I haven’t used the other two so I really can’t say.
But first let’s clear out a few concepts and explain what is this cloud thing.
PaaS – Platform as a Service
With PaaS developers get a framework they can build upon and which makes development, testing and deployment of application quick and simple. That being said as a developer you don’t care about the OS management, virtualization software, servers, storage, network and other things, you just manage your application.
IaaS – Infrastructure as a Service
With IaaS you get a self-service where you can access, monitor and manage infrastructure that is often located across the globe. A great advantage over traditional infrastructure is that you don’t have to pay for it out front, but pay as you go and based on the actual necessities and scaling is very easy and efficient. Opposed to PaaS you have to manage servers, storage, networking and OS.
Both Azure and AWS support support IaaS and PaaS and they offer very similar services however the user experience is a bit different. If you are still wondering what are the advantage of the PaaS/IaaS over traditional infrastructure here is a summary for you:
- It’s just there. You don’t need to manage your infrastructure, at least not entirely.
- You can focus on your application your are building instead of infrastructure that brings no value
- You can scale up and down as you please. You don’t have to get a ton of infrastructure that you’are only going to use during the peak season.
- You don’t care if servers break down, all is taken care of.
- Getting the infrastructure you need may be just a click away.
- You can have pre-configured infrastructure for you to deploy to right away.
- You can have the infrastructure in the geographical area you want so that the response time is as small as possible.
Because I want to cover both Azure and AWS in depth I will create separate posts for each one of them starting with Azure in the following days.
See you soon!
Great article!
Another advantage that the cloud offers and that might be worth mentioning is the possibility of “staging” development versions of an application. This, in turn, allows for easily (and with minimal downtime) switching between development and production versions when things go badly.
Thanks! That should be possible with traditional servers as well. It’s a matter of how you deploy your application, essentially you should be able to deploy an older version at will.