Azure compute services can generally be placed into three different categories:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Serverless
Each type of service solves different needs and offers different levels of control and pricing.
In these next articles we will review the different compute options offered by Azure and discuss the advantages and disadvantages of each service offering.
Infrastructure as a Service
Infrastructure as a Service (IaaS) is a model that allows the most control over your infrastructure and often times, the lowest pricing.
IaaS can be thought of as customized servers and networking equipment hosted by Microsoft, managed by you. Infrastructure is hosted in Microsoft data centers and full access is granted to the user. This drastically eliminates the amount of space and resources required to host on-premises systems.
Azure services that fall under the IaaS category include:
- Azure Virtual Machines
- Azure Networking
- Azure Storage
The combination of these services allows a company to customize their environment to exact specifications so they can meet the tailored needs of their applications.
Although IaaS gives users the most control over their environment out of the three categories of service offered, it requires more management and configuration up front.
Users are in control of setting up their environment from the ground up and must administrate the infrastructure in order to utilize it correctly.
Some companies do not need this level of control and need a solution that eliminates some of the overhead required to administrate the infrastructure behind their applications.
Platform as a Service
Platform as a Service (PaaS) is a cloud service model that abstracts some of the underlying infrastructure for the user. It provides the computing resources that the user needs without the overhead of having to manage the backbone of servers and operating systems.
Azure services that fall under the PaaS category include:
- Azure App Service
- Azure CDN
- Azure Container Instances
- Azure Kubernetes Service
- Azure SQL Database
- Azure Cosmos Database
With PaaS the underlying system is preconfigured and partially managed by Azure. Abstracting control away from the user makes common tasks easier and allows companies to create applications that are more scalable and agile. Instead of manually scaling and configuring the infrastructure behind the application, it is automatically done by Azure.
PaaS is more expensive than IaaS and is not suited for highly customized workflows that require specific dependencies and extensive control over the underlying infrastructure, but many companies do not need that level of control.
Serverless
Serverless architecture further abstracts away the infrastructure and applications serving your business needs.
Instead of configuring the infrastructure and applications, Azure offers fully managed services that can automatically compute data and process your business logic.
Azure manages the server infrastructure so you don’t have to, servers are completely abstracted from user. Users are charged per execution and the time the code runs.
Azure services that fall under the Serverless category include:
- Azure Logic Apps
- Microsoft Power Automate
- Azure Functions
Serverless architecture abstracts the hosting and relinquishes control of the infrastructure away from the user, but it allows companies to be much more adaptable with development.
Serverless applications allow companies to automatically scale data processing and it can be very useful for event-driven architecture that quickly responds to unpredictable demand. Common data processing tasks can be automated such as data conversions, conditional statements, loops, branching.
Serverless is not for all deployments. Azure Functions currently supports 7 languages:
C#, F#, Java, JavaScript, PowerShell, Python, and Typescript
Choosing the right Azure compute service will depend on your own business needs and technical proficiency. Before you choose a service, determine the amount of management and control you would like, as well as the the frequency of usage and budget requirements.
In the next series of articles we explore the different services much deeper, starting with Azure Virtual Machines.