Serverless refers to a computing model where the existence of servers is hidden from developers. Within AWS’s eco-system “Lambda” (a compute service based on event programming model where you can execute code for a maximum of 5 minutes at a time) is one such offering.
Lambda is not the only serverless service AWS offers, however it will be one of the services you use to architect a serverless offering. Below is a list of additional serverless offerings from AWS and by no means complete.
- Storage – S3
- Compute – Lambda
- Database – DynamoDB, ElasticCache
- API Proxy – API Gateway
- Analytics – AWS Kinesis
- Messaging & Queues – AWS SNS, SQS
- State Management – AWS Step Functions
- Diagnostics – AWS X-Ray
Using serverless technologies enable businesses to focus on business objectives and not concern themselves with operational issues while reducing costs. Using this technology as an enabler of business while reducing the costs in terms of time, resources and operational costs, are compelling reasons to look towards architecting a serverless solution. Developers need not concern themselves with operating systems, provisioning servers, nothing to manage there. It is not that there are no servers involved when taking a serverless approach it’s, just not your concern. You still need to think about backup and there are operational elements to think about but running and availability of server(s) has now been off loaded to Amazon.
AWS clients pay for 100 milliseconds of code execution and get continuous scaling, with AWS free tier offering, you get 1 million requests per month and 400,00 GB-seconds per month. It’s possible to have production solutions where some use cases have no cost due to design and usage on Lambda service. Free tier is not provided with every serverless offering and you should conduct your own research for your own specific goals.
Serverless offers benefits to organisations in terms of:
- Reduced operational cost
- No more over capacity issues
- Continuous scaling
- You don’t pay for idle time
- Consistent reliability and availability
- No load balancing, no security patches
- Easier operational management
- Greener computing – only pay for what you use
- Quicker to market – focus on development and services
- Improved latency and geolocation
An interesting point I have found during my serverless research is uses cases, here are some that I have found but, this is by no means an exhaustive list:
- Static web site hosting – S3 is capable of hosting a website, when used in conjunction with Lambda you can add dynamic functionality to the site.
- Log analysis on the fly – Lambda and other AWS services sends log entries LogStream CloudWatch its perfectly reasonable to fire a CloudWatch log event to watch for particular events occurring within logs
- Automated backups and everyday tasks – It’s possible to schedule an event which creates snapshots and clean them up for you on EC2 EBS volumes.
- Processing uploaded S3 objects – Useful technique for generating thumbnail images
- Filtering and transforming data on the fly – Also known as ETL within the database world.
- Real-time data processing – Collect and process records in real-time.
N-tier application design, where data applications are separated into multiple tiers. A typical n-tier application includes, presentation tier, data access tier, logical tier and data storage tier. Each having its own clear separation. With serverless you can still architect a n-tier style solution the diagram below shows how a typical transformation might look like using a serverless approach.
Learning Curve for Severless
The learning curve in practice is not steep, recently ECS Digital held a DevOps Playground lab session where we created a static website and added dynamic functionality to the website via Lambda and form processing capabilities. There are many online courses on udemy, acloud.guru and tutorials on AWS website should you wish to look further into the topic.
Do get in touch if you’re interested in discussing what’s involved in our DevOps Maturity Assessment or if you have any questions for us. We’d love the chance to discuss how we can help you in your adoption of DevOps.