Azure about PaaS and IaaS


When I started to work with Azure everyone told me that's there are two ways of creating things with Azure one way PaaS another way is IaaS.
So what's the difference and what it is in the first place?
PaaS is the new way of making things and IaaS is the old way,
what do I mean by old ways. Well long, long time ago there where desktops, and some times there were Virtual Machines working on desktops, it was pretty simple because virtual machine was almost the same as normal with the difference that it needed additional software to run and wasn't physically connected to hardware rather with proxy application like Dropbox or VMware or any other.
So IaaS is the same but on a could.
IaaS is a VM with all needed stuff somewhere in data center available for me via internet.
It's Infrastructure as a Service (Iaas). It's not only VM but IP address and other network related stuff I don't know too much about.


But what are the problems with VM why want to change anything. It worked well so many years. There is quite a lot of problems with this approach, I will list some:

  • infrastructure needs admins and constant work at keeping it secure and up to date
  • infrastructure can fail, and fail safe for VM is hard
  • it is very had to scale infrastructure because it s base on hardware so it involves more hardware (more money on hardware)
  • it's hard to scale application inside poorly scalable infrastructure.

The last case is the worst.
The story behind is: the Christmas is the biggest shopping oriented time of the year, every one is buying something as a present. Sides like Amazon are hit with the biggest traffic (throughout whole year statistics). To not let down customers Amazon increased infrastructure to fit the biggest traffic. But then after the traffic peak, Christmas was over and all the additional hardware was just covered in dust and useless. It was too expensive to not use it.
So they decided to monetize not needed hardware over network. And created PaaS.
Probably in this story I mentioned some details are twisted or shortened, but it's the idea that counts.
So what is PaaS.
Platform as a Service.
So I don't get VM I get a platform, that probably is some kind VM under the hood but I don't have to worry about it and even know about it. it's all I need, in form of service. For example I have web side (yeah I know, the easiest example) and want to run it, being Microsoft stuck dev I would need IIS and public access. I can have VM and worry about updates, security, restarting VM, or other real life cases, but no dev want's that. On the other hand I can have 'platform for running web side'. All updates are done for me, security, load balancing and even scaling is done for me (even automaticaly if I choose so) and it will probably cost me less plus I don't need to have system admin for configuring and maintaining my VM. I can configure it myself from web portal or even write code to do in automatically (and I'm developer - code I can understand).

Sounds nice so why people don't like it:

  • fear of novelty; 
  • fear of change;
    it's very hard to change way people think, how are things done,
    'it was good for so many years why change it now'
  • fear of future;
    if I'am ITPro responsible for maintaining infrastructure and I'm asked to give my recommendation on using PaaS, I wound be really scared to lose my job when not needed with new technology, so will I give positive recommendation??
  • costs - calculation;
    In some cases IaaS will be cheaper (even with added costs of admins).
  • dependency;
    some companies don't want to be dependent from Microsoft or any other company they choose to paddle their's own canoe.
  • integration;
    it's always valid point that integration can be a source of problem, there's also always a cost of integration. And there is this barrier to use not known components (one even greater if the component is open source and with new Microsoft strategy, it's probably already open sources).
  • adjustment to current reality;
    half year old code is a legacy code (IMHO), new frameworks, technology, patterns are being introduced all the time and it's not easy to keep up. Going PaaS may mean that a lot of existing solution must be rewritten.
If you are thinking 'should I use PaaS' the right answer is 'that depends' (like always). I'm a developer so for me PaaS is a natural way of thinking and architecture applications and I like PaaS capabilities, what's why I will continue on writing about them. 

It's nice to know the possibilities to make the right choose.

Popular posts from this blog

Azure post deployment scripts

Mobile view lifecycle. Fixing Xamarin.Forms Page lifecycle

Mobile application life-cycle Android vs iOS vs Xamarin.Forms