Join David Linthicum for an in-depth discussion in this video Why serverless computing?, part of Learning Cloud Computing: Serverless Computing (2017).
- [Instructor] So let's talk about what's important with serverless computing. Serverless computing removes the notion of a server from the use of computing resources. Now of course there are physical servers there. Cloud computing is not dealing with the lack of computers and we're still dealing with the service to server, however we don't have to allocate the server on behalf of the application and if you've taken other courses on cloud computing or are familiar with cloud computing, you know the first thing you need to do is to allocate a platform, either storage or computer, something else, a database, to get these resources online for your applications.
Serverless computing is an advantage over that paradigm because we're able to allocate the functions we need and leverage the services and the servers and the hardware and the virtual resources we need automatically. So it's more of a natural and cost effective way of building systems. Platform as a service has been doing this for years. Now infrastructure as a service provider and platform as a service provider such as Google, Microsoft and AWS have serverless offerings.
So what is serverless computing? Well, in the traditional sense, we have virtual machines, we're able to abstract the hardware. So in other words, we're able to layer a single operating system that may span any number of hardware platforms and it provides utilization of the hardware much more effectively. Containers really abstract the operating system, so containers are able to encapsulate the operating system and the application into a single bundle of memory that exists on a computer.
And that's also portable between computers. So containers are related to serverless but they're not exactly the same. Serverless abstracts the language runtime, so in other words, we're able to use any number of languages and any number of approaches to building these functions, these services, and we're able to leverage serverless computing to implement them in our infrastructure as a service environment. As we mentioned before, this is an automatic process, so in other words it gains access to the compute resources and the storage resources, any application resources that are needed for it to function, and so you can write in any language and employ on any number of platforms and you're able to, in essence, remove yourself from having to deal with the underlying details of the cloud computing platform you picked.
So the benefits of serverless computing are three major. Number one, no servers to manage. So this is serverless, so in other words, we allocate the functions, the operating system within the cloud, the cloud platform itself, will gain access to the resources you need to support those functions. Provides continuous scaling, so instead of you having to spin up new machine instances, either storage or compute or another application service, you're able to, in essence, fire up as many instances you need automatically behind the scenes.
The operating system, the cloud platform is doing that for you, and you never pay for idle time, so in other words, you're not allocating a server, leaving it out there for months and having to pay for that server being on the cloud and maintained within the cloud. You're only leveraging the services, the compute, the storage, the application resources that you need to support that function.
- Benefits of serverless computing
- Serverless computing use cases
- Serverless computing platforms
- AWS Lambda
- Microsoft Azure Functions
- Planning applications
- Mapping to serverless deployment