Platform as a Service
The word pretty much describes it, you will get a platform. What’s happening is that when you move into PaaS, you’re taking a lot of management (including that of the operating system) out of the equation.
With Platform as a Service on Microsoft Azure, a lot is managed for you. Such as:
- Operating system updates, patches, etc.;
- In most cases you will get a high availability (SLA) by default;
- Security (note that this is a shared responsibility);
- Networking;
- Logging;
- Authentication (comes out of the box).
Some of the most notable PaaS solutions on Azure include App Services (Web Apps), Azure SQL, Storage and Azure Kubernetes Services (AKS).
With PaaS you will focus on deployment and minor configurations on the platform, but don’t bother with traditional IT operations. In general, this does not require a complete overhaul of your application but it does require you to develop and deploy according to the standards provided. If you want your application to run successfully on PaaS you then have to understand the platform and implement the preferred practices. For instance: if you’re running an IIS website right now and you save files to a local disk, w you might want to consider storing data on a blob storage or implement caching solutions such as Azure Redis Cache, or you will risk limiting yourself in terms of flexibility (look into the concept of stateless).
As with Microsoft Compute, with PaaS you will still pay for what you provisioned. If you run an App Service plan you will pay the price per hour. But: the on and off scenario doesn’t go here. You cannot deprovision PaaS resources, you delete them if you don’t need them. As opposed to IaaS where you can implement this scenario. However, PaaS solutions cost less compared to IaaS solutions so the on and off scenario might not be that relevant.
Serverless
To top it off we have the serverless proposition. Serverless will give you the biggest bang for your buck. It’s platform that is the highest in the stack and completely development driven. Serverless computing is the abstraction of servers, infrastructure, and operating systems.
There are many solutions available (https://azure.microsoft.com/is-is/overview/serverless-computing/) with some of the most notable being: Azure Functions, CosmosDB and EventGrid. Serverless is generally being defined as consumption based. Where you pay a price per hour for IaaS and PaaS, with serverless you pay for what you actually use. Let’s take Azure Functions for example. You will pay €0,169 per million executions, where you get the first million executions for free.
Additionally, the scaling is virtually unlimited and automated. If you execute a function once or hundreds of times simultaneously – the performance will be the same and Microsoft will managed the scaling for you.
Another big benefit of using serverless is that it will allow you to truly deploy your solutions on a world wide scale without much effort. Because you’re focusing on development and not so much on IT infrastructure (as this is being managed for you) all you have to worry about is where you deploy your solution.
Then if you look at data, you might want to look into Azure CosmosDB, the prime example for serverless storage / database. With CosmosDB you get turnkey global distrubtion unmatched availability and no platform management at all and what you worry about it is, once again, where you want to store your data.
To be honest, going to serverless is not the first thing you might think of when coming from a rehosting project but from a cost and efficiency perspective it is definitely the way you want to go. Serverless is best suited for event-driven architecture, Micro service architecture and helps you with decoupling your application (look at Azure Service Bus or Event Grid - https://www.intercept.nl/en/news/is-your-software-architecture-ready-for-innovation/).
Wrap-up
We’ve seen the several platforms you can choose from, but when do you pick what? Let’s do a little recap. First of: Different Architectures comes with different benefits. What you want to do is find the right benefits you are looking for based on your motivation to move to the public cloud and it all depends on where you are in the process right now (Rehost, refactor, rearchitect or rebuild).
To recap, the different platforms have different benefits:
Please note that this list is not set in stone but intended to help you find your way and choose the right architecture.