Build and run applications without worrying about servers. The new serverless computing
What is AWS Serverless?
Serverless is an execution model characterized by the Cloud provider dynamically provisions on-demand computing resources such as CPU, memory and virtual machines transparently to the customer.
And AWS offers technologies to run code, manage data and integrate applications, all without having to manage servers.
What is Serverless?
We could define serverless computing as a cloud computing model, whose main characteristic is that the application developer has to focus only on the business logic and should not worry about factors such as:
- Computing capacity planning
- The configuration
- Fault tolerance
- Scaling of the infrastructure on which the application is run
Basically, it is about delegating tasks to the provider of the Serverless technology. In this case, the cloud provider, is who must guarantee that the stack on which our code runs is optimal, highly available, fault tolerant, offers the best possible performance and, very importantly, is billed for the time it has been in use, achieving a true pay-per-use.
Let's not forget that, in the case of virtual machines in the cloud, it is billed when the machine is up, regardless of whether the software it runs is receiving workload or not.
It is important to note that serverless does not only refer to computing, but is also applied to other cloud services where the same philosophy is applied, the so-called managed cloud services.
In the case of Amazon Web Services we have mainly the following:
- Computing (AWS Lambda or AWS Fargate)
- Storage (Amazon S3 or Amazon EFS)
- Data Management (Amazon Aurora Serverless or Amazon DynamoDB)
- Application Integration (Amazon API Gateway or Amazon SQS)
Why Serverless? Main advantages
Once the concept of serveless is understood, it is important to understand what advantages it brings to the business, i.e., what improvements a company will have if it applies this technology in the execution of its day-to-day workloads.
The main advantages are as follows:
This is the most immediate advantage, since if a workload is executed only during a specific period of time (such as data update, datawarehouse loading or any other periodic workload), we will only be billed for the time we have used the service.
Apart from the immediate savings, there is a second saving derived from the non-existence of possible costs due to programming errors in the switching on and off of the environments, which often involve a large cost that is only detected when the monthly invoice is received from the supplier.
2 Elimination of ownership costs
Within this section we include the costs associated with the resources (people) that we dedicate to maintaining the virtual machine ecosystem. Tasks such as: infrastructure deployments, operating system patching, capacity planning to respond to peaks with optimal costs, planning power on/off for specific loads, etc.
Thus, since there is no infrastructure to manage, there will be no management costs.
3 High availability and fault tolerance included
While when we deploy an application on a stack that we manage, we also have to ensure the high availability and fault tolerance of the deployed architecture (auto-scaling groups, clusters, active-passive configurations, etc.). In the case of Serverless technologies, the cloud provider usually solves this part.
Again, the costs associated with deploying services or methodologies that guarantee certain SLAs in terms of availability and fault tolerance are reduced, and in many cases eliminated, since the cloud provider has solved these problems.
4 Agility, performance, scalability and parallelization
Most of the Serverless services that we will see in this blog have in common a primary objective: to make the workload can be executed with maximum performance, minimum cost and maximum parallelization, and at the same time offer scalability to absorb the most demanding workload peaks that we can find, all without performance penalty.
For example, the flagship service within the AWS serveless family, namely AWS Lambda, offers a maximum concurrency of 1000 lambda functions running in parallel, a limit that could be increased if necessary.
As we can see, this is not a virtual machine that performs well until it reaches the limit of 500 concurrent requests and starts to suffer from request number 501. With AWS Lambda we are talking about the performance of function 1 being equal to that of function 501, without being influenced or harmed by the other.
How to deal with Serverless technology?
As we always say, technology is nothing more than an enabler to make business more optimal, economical and/or have some advantage over the competition.
Thus, the best way to understand how to adopt Serverless technology is to understand what the business KPIs are.
If you don't know where to start, contact us
At Neteris we have experience, both in the deployment of 100% Serverless solutions, and in the deployment of hybrid solutions, which allow a gradual modernization of current systems (monolithic), under the strategy of bringing functionalities to a Serverless environment at the pace that the development departments and the business allows it. In addition to that, we are experts in AWS.