Serverless Compute is a very hot topic in Cloud and PaaS (Platform as a Service) compute these days. It really takes the premise of PaaS from just Managed VMs even further into the realm of Managed Applications. There are many features that make perfect sense to abstract away such as IaaS and other PaaS features. However, the introduction of Serverless Compute into the Cloud Computing space is the beginning of “Cloud native” capabilities like no other in the on-premises world.
The evolution of the cloud began with just putting your servers into someone else’s data center, then to Managed VMs (Virtual Machiens), and then into the PaaS realm with fully managed platform services such as storage, queues, and databases. Serverless is about taking all those PaaS innovations to the next level of innovation and abstraction by eliminating the idea of the VM and even the hosting application itself!
Serverless Compute is really the 3rd generation of Cloud technologies made possible by previous technology that came before it. Without the previous foundations of both IaaS and PaaS, the evolution of Serverless Compute really wouldn’t have been possible.
The evolution of the Cloud from the early days of “a server in someone else’s data center” to the Serverless Compute landscape have followed a natural step-by-step evolution. Here’s the list of the major steps of evolution of the Cloud:
- Pre-Cloud – On-Premises data centers made of Physical Servers and Virtual Machines
- Cloud Generation 1 – Virtual Machines and the first PaaS services (database and storage)
- Cloud Generation 2 – Software Defined Networking enabling more advanced VM scenarios and more advanced PaaS services (Azure App Service Web Apps, Mobile Apps, and API Apps)
- Cloud Generation 3 – The birth of Serverless Compute / Architecture with Azure Functions and Azure Logic Apps
Before the Cloud, the IT space was filled with On-Premises data centers and Co-Locations to host your servers and workloads. Most of these servers needed to be managed manually by your IT staff, while some of them were “managed” (in other words you paid someone else to manually manage them.) This was the early days of the corporate / enterprise data centers and was fairly expensive to build, operate, and maintain.
Co-Locations offered the ability to place your servers in someone else’s data center with some benefits, but you were still largely responsible for your servers.
Cloud Generation 1 – IaaS & PaaS
With the introduction of the Cloud and it’s IaaS (Infrastructure as a Service) and PaaS (Platform as a Service) features, you had less VM’s to manage and could focus more on your applications and data. This freed up many resources of the organizations / enterprises that utilized the early Cloud, but it was still rough around the edges leaving much still under your responsiblity; with other parts of the platform a bit encumbered with certain limitations.
This was an interesting time that brought with it the birth of the first Cloud VMs, as well as PaaS storage and database options.
Cloud Generation 2 – Better IaaS & PaaS
Generation 2 of the Cloud brought with it some interesting changes such as Software Defined Networking that allowed you to have more control and flexibility over the networking configurations of your VMs running in the Cloud. The second generation also brought with it the emergence of more advanced PaaS services such as Azure App Service that allow you to run an Application in the cloud without requiring any of your attention towards the underlying Virtual Machine. This meant zero OS updates, or software installs and patches to be applied.
Cloud Generation 3 – Birth of Serverless
We are currently in the midst of Generation 3 Cloud Computing. This generation has brought us the birth of Serverless Computing. The serverless offering from Microsoft Azure include Azure Functions and Azure Logic Apps. These each come at Serverless Architecture form different angles, but they both make the underlying Managed VMs completely invisible in addition to the actual hosted applications where your code resides. Serverless Compute & Architecture really take the idea of Platform as a Service (PaaS) as it pertains to Web Application and Compute hosting up to 11!
Here’s a link that explains a little more detail about what Serverless Architecture is.
Azure Functions enable you to develop and deploy small snippets of code (or functions) without setting up the complicated infrastructure or hosting application that would otherwise be necessary. Azure Functions build on top of Azure Web Jobs to provide serverless Functions as a Service hosting. Functions can also be written in any language or framework.
Azure Functions provides some of the following key features:
- Pay-per-run pricing model where you only pay when your code is actually running / executing
- Your choice of language, including C#, F#, Node.js, Python, PHP, batch, bash, or any command-line executable
- Integrated Security with OAuth providers such as Azure AD, Facebook, Google, Twitter, and Microsoft
- C# and Node.js based Functions can be authored, edited, and deploy directly from within the Azure Portal
Azure Logic Apps
Azure Logic Apps enable simplify the building and integration of scalable business process workflows in the cloud. They are built using the combination of a visual WYSIWYG designer and a JSON configuration file behind the scenes. You don’t need to be a programmer to setup and integrate workflows with Azure Logic Apps!
Azure Logic Apps provides some of the following benefits:
- Get started quickly with pre-built templates
- Easy to understand design tools for designing complex processes
- More easily implement workflows that would otherwise be difficult to code
- Customize Logic Apps with custom APIs
- Connect and synchronize disparate systems across on-premises and cloud services
If you are interested in learning more about Azure Logic Apps then you’l want to go check out the “Building Solutions with Azure Logic Apps” Opsgility online training course.