Serverless is the Future
What is Serverless?
Serverless computing is defined as "a cloud computing execution model in which the cloud provider dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. It is a form of utility computing." (Source: Wikipedia)
Serverless computing allows us to quickly build and assemble applications without thinking about provisioning, installing, configuring and scaling application infrastructure.
The common characteristics of Serverless solutions are:
- You don't pay for idle capacity - pay per request.
- Services spin-up, process the request and release resources.
- The focus of systems design is athe the trigger & event.
- Little or no infrastructure services to manage once deployed.
- Systems achieve linear performance and cost scaling under load.
The Benefits of Serverless
There are five primary benefits of Serverless solutions:
Lower cost - Lambda charges per-request and releases inactive resources, vs. EC2's always-on cost model.
Remove burdens - reduce the effort needed to build application stacks, monitor, manage and scale deployments.
Increased velocity - developers are freed from overhead chores, and can focus on creating value and user experiences.
Simplify & standardize architectures - shed technical debt and align with cloud roadmaps. Operate solutions that are easy to staff, develop and maintain.
Balance budgets & do more - Lower costs from streamlined architectures enables more to be delivered with your budgets.
How is Serverless used?
Serverless enables a range of common use cases, including:
Mobile & web application backends - dynamic website content, web API's and event-driven applications.
Microservices and Web API's - Decompose monoliths into small RESTful interfaces delivered by Lambda & API Gateway.
Systems integration middleware - orchestrate complex interactions between systems using API's, data & file integration.
Massively parallel data processing - migrate from Hadoop to parallelized Serverless MapReduce functions
Cloud ETL - deserializing, filtering, transforming, wrapping and delivering data between systems using Lambda.
Data storage & analysis - Data Lakes storing event data in S3 and query the data in-site using Athena.
On-demand compute processing - write Functions with the smallest code footprint, and discard when done.