Serverless is the Future
time to launch
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 pay per invocation request, nor for idle capacity.
- Services spin-up, process the request and release resources.
- The focus of systems design are events and triggers.
- Little or no infrastructure services to manage once deployed.
- Achieve linear performance and cost scaling under load.
The Benefits of Serverless
The primary benefits of Serverless solutions:
Simplify & standardize architectures - shed technical debt and align with cloud roadmaps. Operate solutions that are easy to staff, develop and maintain.
Remove burdens - reduce the effort needed to build application stacks, monitor, manage and scale deployments.
Increase productivity - developers are freed from overhead tasks, and can focus on creating value and user experiences.
Faster time-to-market by accelerating development cycle times and reducing infrastructure activities,
Easier to support Functions typically have a few hundrew lines of code so are simple and easier to debug.
Lower operating cost - few labor tasks significantly reduce staffing bills and can free scarce resources for higher value tasks.
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.