What is serverless? Serverless is a cloud computing model that was first introduced by AWS in 2014 (AWS Lambda is the market leader to this day). It abstracts away most of the server operations to the cloud provider so developers can only focus on writing code and shipping new features. Serverless adoption is rapidly growing and it's mostly due to it's promise of providing significant cost and time efficiency for technology companies.
For new startups, just starting to build their first product, it's a no-brainer to build it on serverless. It's very cheap and quick to get started. You don't have to have that much knowledge about the backend processes, since the cloud providers handle all that and you can just focus on building your product and it's functionality. The go-to-market time is much shorter than with previous computing models and it scales automatically when you get successful and have tons of users pouring on your site. See, a no-brainer!
With already established companies, it's harder to switch to serverless because of the legacy systems and processes that they have in place, but I'm here to argue that it might be worth the pain!
For established companies (depending on their specific use case), serverless architecture gives the opportunity to save money that was previously paid for hosting idle code. With serverless, you only pay for it when your code is executed. The bigger the company and the more complex its technology has -- the bigger the potential savings can be.
"Using AWS Lambda, we've increased cost efficiency by a factor of two. We only pay for what we use, and we don't have to manage on-premises server infrastructure."
For new startups these costs can be trivial, but for some companies it can be a make-or-break question to get these costs down. For example, some companies have reported close to 90% of cost reductions just by switching to serverless.
Slightly bigger companies usually already have an established user base that is also rapidly growing. It means that they have the responsibility to keep the service reliable at all times. One of the nastiest things that can happen (and very often occurs in growing technology companies) is that your service gets a sudden peak in traffic -- either it's a really successful marketing campaign that just launched or some other reason that spikes the usage of your product very suddenly -- and your site can't handle that extra load. As a result, your customers get a bad experience with your product at the most unfortunate time -- when you are finally hitting it big.
Why serverless is so useful -- instead of constantly being ready for the potential spike and paying for the extra servers, you can let cloud providers worry about automatic scaling. Now the bigger influx of users won't just be a happy moment for your marketing team, but the engineers can also sleep well at night.
At a New Year's Eve event after migration to AWS Lambda, screenshots were taken at a rate of more than 6,000 per minute. "AWS Lambda had a striking effect. Image processing that used to take several hours was finished in a little over 10 seconds."
In established companies that have been around for some years, you might have lots of people working only on provisioning and scaling servers. Once this is "outsourced" to cloud providers, these people can restructure their work and focus on more business-critical tasks. Depending on the size of the company and the structure of the development team, it can be a huge benefit that not only saves time and money, but can also make hiring for some positions easier.
Zero time is now spent deploying or maintaining server instances, as Sportify's entire backend platform is based on AWS Lambda.
Serverless computing shortens the time from code development to putting that code in production. This puts the focus of the development team strictly on writing code that benefits the users or follows some specific business logic and goals.
Since serverless is just another layer of abstraction in cloud computing, its main benefit is to allow dev teams to write and ship better code, better functions, and therefore better products. It's the rocket fuel for future innovations and bigger companies can't afford to stop innovating.
Instead of worrying about the solution architecture and managing servers, they are freed up to focus on new projects and initiatives that can help grow the company.
It's commonly known that as companies grow, the execution speed goes down and there are more processes and more bureaucracy involved with every task. Since it's very easy and quick to launch new functionality (and also to scrap it) with serverless, established companies can reverse this process and bring back the experimental feature launching speed that small startups enjoy.
Building our product (Tailor) on a serverless architecture made it easy to modularize it for easier sharing with other divisions, or as an open-source package with non-Autodesk entities that have a use for it.
Serverless technology is not in its infancy anymore and yet it's not fully mature either. ...At least that's what the hesitant-to-jump-on-new-technology big companies are saying.
"The interesting part is that by abstracting away much of the Docker/Kubernetes complexity, serverless can be adopted faster and more easily, even though it's the newer tech."
There are also some unique challenges that come with this new computing paradigm -- slow cold starts, short-lived functions, a closed set of triggers, and a lack of observability and debugging options. There are workarounds and viable solutions for solving these though thanks to a growing community that works on documenting use cases and best practices.
One of the biggest problems -- lack of observability for the distributed serverless systems -- is solved by several newly emerged third-party tools, the most notable one being Dashbird. It gathers CloudWatch logs along with X-Ray and API Gateway data and gives a general overview of all your functions -- along with error alerts, tracing, live tailing, and much more.
Despite being careful about jumping on another bandwagon too quickly, established companies have a lot to win from migrating to serverless. Since serverless adoption is already skyrocketing, big businesses should not wait too long to get on board, because this new paradigm shift favors quick shipping and constant innovation -- and that's exactly what might give some new and hungry startups the edge to go against dinosaurs and beat them. ?