What is Serverless? The common misconception people have is, “Does this mean that we don’t have servers?”. Actually, no. What Serverless compute really means — it’s the next layer of abstraction in Cloud Computing. We’ve seen the evolution of Cloud Computing from Traditional Servers, and now, what this means for Serverless Computing, is the transition from Cloud Computing.
Cloud Computing essentially isn’t exactly servers in the cloud as people call it. It means that given your traditional server infrastructure, Cloud Computing reduces the maintenance costs of your infrastructure. Therefore, we introduce the three tiers to Cloud Computing. Infrastructure-as-a-Service (IaaS - Build), Platform-as-a-Service (PaaS - Deploy), and Software-as-a-Service (SaaS - Buy). Instead of building your server infrastructure from ground up, buying server racks, maintaining the network infrastructure, storage infrastructure etc. on your traditional servers, Cloud Computing abstracts that whole chunk to different tiers where you can build your applications on the cloud provided compute instance, without worrying about the maintenance of the components.
Infrastructure-as-a-Service, is the ‘build’ tier. Platforms like Windows Azure, Amazon AWS, Google Cloud Platform, are the infrastructure as a service provided to allow Cloud Solution Architects, Server Engineers, etc to build the infrastructure from ground up without the need to maintain the server racks at all. Theses are usually for solution architects to developers.
Platform-as-a-Service, is the ‘deploy’ tier. Tools like Heroku , CloudFoundry, OpenShift, Dokku, are the platforms where you as developers can develop and push your applications to production without the need to worry about the infrastructure. These are usually dedicated for developers.
Software-as-a-Service, is the ‘buy’ tier. We purchase off the shelf cloud softwares such as Microsoft OneDrive, Google Drive, Dropbox, are softwares that users purchase to use it immediately. These are usually dedicated for end-users.
Serverless comes in as a Function-as-a-Service or some calls its alternate name, Backend-as-a-Service.
In the following webcast, I’ll run through in details what exactly is Serverless, and how does that impact the way we build applications. With Serverless, we are able to abstract out components from our application to reduce the compute load by allowing the Functions itself to handle the heavy-lifting off your application load. In this paradigm shift, we’ll understand the architecture design patterns of how we have moved from Traditional Architecture Patterns to MicroService Architecture to Serverless Architecture. We’ll try to understand the Event-based Model that powers Serverless Compute.
[Updated] Here are some pictures from the event.
I’ll be speaking to NUS students at NUS Orbital 2017 Workshop.
Event details are here: NUS Orbital 2017
Here are the webcast & slides:
Credits: Michael Cheng from Engineers.sg for covering the event.