The benefits of Serverless and Low-Ops
Here is a nice definition of ServerLess:
"A solution that costs you nothing to run if nobody is using it"
Well, that is a very attractive value proposition if you ask me. Dynamic value-based pricing starting from zero $ is the dream for any manager.
Today, paying for idle infrastructure and repetitive operational tasks is the norm across the industry, even though we have much better tools than before (e.g. Cloud Services/Docker/Kubernetes etc.).
In the ServerLess future, you might be considered a fool if you pay a lot of money for idle or low utilisation infrastructure (including salaries to maintain it). Servers should be serving.
Semantics and Strategy
ServerLess might be an extremely stupid name, because there are servers involved. It's an abstraction layer that hides a lot of complexity.
If I had to choose a better name I would just use "Managed micro-services" because i believe that ServerLess is just an evolution of the Managed Services trend that got popular with AWS, and now it extended to support the micro-service or function-as-a-service trends to enable easier deployment and management of small bits of functionality to the cloud.
The whole AWS ecosystem was built around the idea of micro-services interacting with each other and efficient UI's to remove the need for development or operations or both. This is why you can trigger a ServerLess function from dozens of AWS services. It's about seamless integration of reusable services. You can connect Lambda, API Gateway, RDS and DynamoDB with minimal overhead.
This is also why AWS Lambda (and related services) are winning the race of ServerLess. It's not about Lambda, but it's about all of AWS services that interact easily between each other, and your code is just an extension of that.
Amazon knows that the winning game is not making Lambda good, but integrating every single service in AWS with Lambda.
Why is Lambda so cheap?
As the Amazon business model was built on low margins (quoting Bezos: "Your margin is my opportunity"), the end-game is the lowest margin possible, or even freemium models, and then recouping losses at volume and playing on LTV, which is exactly what AWS is doing with Lambda and related services.
The world is inevitably moving towards "Low-Code" and "Low-Ops" at low cost, even though the puritan developers don't like it.
Mental Models
While developers think as ServerLess as a technical implementation detail ("Isn't it just a set of functions in the cloud?"), and SRE's/Ops blame the lack of features, flexibility, and control compared to their usual setup, the actual big benefits are on the operational and cost optimisation side of things, which makes it appeal to decision makers.
There will be a shift in perspective over time and even technical personnel will understand the benefits.
Established companies and startup founders will flock to ServerLess due to an order of magnitude cost-reduction benefit, even if they lose a bit of flexibility due to lock-in and dependency on cloud providers.
The promise of "Low-Ops" and not having to do server upgrades, security patches, and having an inflated head-count and operational overhead is just too attractive to be ignored in the company bottom-line.
Also, ServerLess takes the idea of auto-scaling to the next level, which removes concerns about scalability (of course, if the architecture and code is well-designed)
The Future
Of course, it's still a bit early, but there are many promising developments, especially in AWS and open-source tooling to connect all the dots and solve common problems of ServerLess.
There are nice things happening in the FaaS space in Kubernetes etc, but again, over time everything will move to a simpler UX for developers and nobody will care what's behind the simple operations to integrate, deploy and release code. At that point, it will certainly be an implementation detail.
Problems of lock-in will be managed by the tools to abstract the infrastructure layer and enable easier migration, like Terraform did back in the days for server provisioning. Tools like "Apex Up", "Zeit Now", "Netlify" and "Serverless Framework" give a glimpse into what that could be in the future.
One of the amazing new players is "Cloud Run" which runs on top of KNative in the Google-Cloud. It's how easy it is to deploy a docker container via Cloud Run on an auto-scaling infrastructure.
Proper ServerLess architectural design will be extremely important to unlock all the benefits and actually save costs, while delivering a proper solution.
And most importantly, companies will save shit-loads of money and focus on building features and value for the user, and not maintaining servers.
Having extra money, will enable iterating a bit more towards product and service success.
Faris, thanks for sharing!
Great post man! Confirm what you said and would add a very important relation between AWS and MS SQL Server... Microsoft SQL Server 2019 became generally available on November 8, 2019, and is now available on AWS. More big customers run SQL Server on AWS than any other cloud, and trust AWS for a number of reasons. The main reason is great price-performance. The story about Netflix then Pearson's migration is clear https://youtu.be/mn4i51FEaoU AWS fundamentally changed the way IT operates & they really applying the quote "Move FAST, be AGILE!"