Serverless computing is the execution of cloud computing model in which cloud providers itself managing machine resource allocation and take cares all endless chain of headaches from running a server as our own. At Google, we have a little bit more advanced definition of serverless architecture. Developers at Google don’t interact with any of the servers because they have a large number of servers in their data centers across the world. There are not a lot of people involved in managing those servers and most of them are automated, that means there are no many server operators working on managing the servers. This is the fundamental key to establishing serverless platform; something that automated and runs by themselves. You just write your code or logic and the infrastructure will take care of the rest.
Google Definition for Serverless.
Google uses this new definition for the serverless platform. There are mainly 3 pieces to enable a serverless environment.
The operating model for the underlying infrastructure needs to be zero operation. Means all operation will be automated, scales automatically, also will have necessary security pieces automatically.
The programming model is very much leading to the overhead, the reason is the applications are very specific to the compatibility of the operating system. The serverless can apply to all kind of applications; Of Course, that is a great news for all developers.
We have to pay only for the service which we used. Just the serverless compute capability is not sufficient but it needs to use a number of services also in order to allow the developer to build an application. The security piece and database are some examples of services. A developer can write the required code and can consume all of these services and can run on infrastructure.
The secret of serverless is the combination of Containers, Automation, and Granular metering. Containerizing the application because the applications are dependent on the underlying operating system so a container makes the application independent, then automating the management of infrastructure, Finally adding to the granular metering.
How Google does the Automation of infrastructure.? That’s for kubernetes comes for. Kubernetes is an open source system which helps to automate containizering application’s scaling, management and even automate the deployment. There are 17 different frameworks currently google engineers developed in kubernetes system to run functions.
Actually, kubernetes solves all the problems of a container. Containers are scalable but it is not easily scalable in case of if there are 50 to 100 containers. After scaling we have to manage all of these containers and its working right? It is not an easy job. So this is very important they are manageable when they are scaled. Kubernetes keeps analyzing the traffic to the application and the load that being used by the container when the traffic is reaching the threshold then autoscaling happens. Kubernetes is a container management tool which automates container deployment, container scaling, and container load balancing.