What is serverless computing?
The idea of serverless computing is the logical conclusion of virtualization, separating where code is run from and what the code is running on.
In the period before ubiquitous virtualization, application deployment was a slow manual process. A server would be purchased, the operating system would be loaded and configured, and then the application installed upon it. The period from concept to execution was often a month or more. The adoption of virtualization reduced this period to a matter of days, allowing images of pre-configured operating systems to be deployed on demand, often delegated to developers.
The next step in this evolution was containers. Containers provided a mechanism to run multiple applications on the same virtual machine in an isolated manner. The proliferation of Docker gave rise to the paradigm of "micro-services", which allows the construction of applications in blocks. The limitation of containers is the application, the application must be configured, and the networking for the application must be configured. Although containers accelerate deployment, the speed is still limited by the constraints of applications.
Serverless is the most recent development in the progression of computing. Serverless does not require applications, virtual machines, or servers. In the case of functions-as-a-service, like AWS Lambda, all that is required is the desired code. Each of the major cloud providers has developed it's own Serverless ecology which include computer, databases, and integration tools.
Why serverless?
The key benefits of Serverless infrastructure are short development cycles, operational efficiency, and scalability.
The primary advantage of serverless computing is that it only requires the parameters of the components used and the developed code. This allows the development team to focus only on the business logic without needing to be concerned with any of the underlying infrastructure. This allows complex applications to be developed in days instead of weeks or months.
The high level of abstraction allows for the management of a highly complicated application with minimal staffing. A typical web application will require a firewall, load balancer, multiple web servers, middleware server, and multiple database servers; generally ranging from seven to twelve servers. Even in the cloud using virtual machines a significant amount of management effort is required, e.g. security configurations, patching, OS upgrades, and other configuration management. This effort can easily consume a full time equivalent of effort. The same application in Serverless can be managed using only a few hours a week.
The other part of operational efficiency is cost optimization. Unlike other cloud services in which one pays for a capacity, in Serverless you are charged for only what you use. In the counter example of a virtual machine, as long as the server is running a charge is applied, whether the machine is idle or being fully utilized the charges are the same. The charges in Serverless are limited to the scope of time when the code is being run. This results in right scaling of the application with minimal effort.
A powerful advantage of serverless is scalability. Using conventional architecture increasing scalability requires ever increasing complexity and capacity, often driving costs at an exponential rate. Serverless allows scaling to the limit that you set, with costs growing at a linear rate. A system that supports a million users requires the same level of effort as an application intended only for a dozen.
Amazon Web Services provides a number of example applications:
This is an example of a standard three tier web application. This application provides user authentication, a robust API, and a database. The application is scalable, maintainable, and easily modified.
UNICOM government has been working with our customers to implement Serverless solutions into their infrastructure as a means to improve organization efficiencies, through its costs savings and scalability. By continuing to learn more about Serverless implementations organizations can determine where they can implement this solution to take full advantage of its benefits. UNICOM Government’s engineers are here to guide you through this process.