Several days ago, I uploaded to my YouTube channel a new video (watch at the end of this post), explaining Serverless with a short introduction to AWS Lambda (in Hebrew). This video was a great opportunity to revisit a post I’ve published in 2016 and check what’s new with Lambda and how Serverless technology looks like 4 years later.
What is Serverless?
The basic idea of Serverless, that was introduced by AWS in 2014 and became GA in 2016, is that you write your code (with some basic rule and requirements) and your cloud provider (AWS in our case) will run this code for you, every time something ,that was defined as the trigger for this code, is happening.
These days there are a variety of triggers such as changes to files in Amazon S3, changes in your Database, IoT events, CloudWatch events, API calls and many others. In general, Event Driven Development evolved a lot in the last few years and today you can find robust architectures, dealing with huge amounts of events and data, calling processes (or functions) without deploying a single server.
The transition to Serverless allows us to enjoy 4 major benefits:
- No Servers – I don’t need to manage my infrastructure.
- Better alignment to my application requirements – The system will automatically scale based on the application needs and we don’t need to do anything to define that.
- Security and high availability out of the box – You can define different security policies, using tools and services that will help you protect your application, your data and your users by setting who can execute your code and which parts of the system your code can access. In addition, AWS will run your code in multiple availability zones, to provide built in redundancy in case of a problem in one of them.
- Pay per use – You are only paying for the consumed resources used for your code execution, based on the measured execution time of your function, in 100ms increments, memory allocation and the number of executions.
You are welcome to learn more about Serverless and Lambda in the official AWS documentation.
What’s new with Serverless after 4 years?
The biggest change I see since GA is the adoption of Serverless technologies by developers and companies, for a variety of use cases, project sizes, architectures and more.
I personally know startups that built their entire stack and product without a single server, enterprises developing complex systems, with millions of requests to Lambda functions per day and new ideas to use this technology, that get updated each time there is a new trigger announcement or an additional integration with new tools and 3rd party services.
There are few specific changes that happened in those 4 years that I would like to mention:
- When Lambda first launched, in 2016, the maximum execution time of a single function was limited to 5 minutes. Today this limit was increased to 15 minutes per execution.
- Same goes for maximum memory allocation that was set in 2016 to 1.5GB and was changed to 3GB later on.
- There are more than 20 different triggers to fire your Lambda functions and new ones are added regularly. The possibilities are enormous and allow you to develop more and more complex applications, without any servers.
- One of the most popular triggers for Lambda, Amazon API gateway, got several updates during those years. From WebSockets support to a simpler and cheaper API service, called HTTP API, which provides a better solution for many use cases, where the advanced features of the original REST API, were an overkill in some scenarios.
- Lambda supports today more programming languages than ever and if your language of choice is not officially supported, you can add your own runtimes, as long as there is a version of it for Linux) using Custom Runtimes – yes, even PHP.
So, after 4 years, Serverless turned into my go to technology for anything I develop these days. Yes, it is not mainstream development practice yet, it might not be a good fit for any project or system and it will take some time until the majority of developers will adopt this technology but I have no doubt that this is going to happen, the advantages of Serverless are just too big to ignore.