Today i was listening to talk given by Yan Cui on Serverless computing (specific to AWS Lambda) at ServerlessDays
If you have time to watch, it will be 33 minutes well spent. If not, let me summarize what he talked about.
Serverless doesn’t mean No Servers
If you are thinking this way, you are missing the point. Serverless means you are Not required to manage Servers on which your Compute runs.
“Serverless is serverless in the same way Wireless is wireless” – Gojko Adzic
There are still cables running around but when you think of WIFI, you don’t think of connecting with cables. Same analogy applies to Serverless computing
Benefits
- No worry about paying when Not using it(Compute)
- No worry about scaling
- No worry about provisioning and managing servers
Where does this fit in “As a Service”
Serverless is sometimes also referred to as Function-as-a-Service (FaaS). You can think of it as being on top of the “As-a-Service stack”
FaaS à(Function-as-a-service)
PaaS à(Platform-as-a-service)
CaaS à(Container-as-a-service)
IaaS à(Infra-as-a-service)
However, with PaaS, you are deploying your Application as a unit of deployment. But with FaaS, your unit of deployment becomes a Function.
All Serverless is FaaS but Not all FaaS is Serverless
You can use services like Kubeless and KNative, which allows deployment of Functions on your own Kubernetes cluster. So, this is not exactly Serverless, as you own the cluster and keep it running and you have to manage the cluster and pay for it. This is not what Serverless stands for. Right.
#Quote
“Serverless with fundamentally change how we build businesses around technology and how you code” – Simon Wardley
Benefits Redux
- More scalable and Scales faster à No waiting for EC2 to come up
- Cheaper à Don’t pay for idle servers
- Resilience à Out of the box Redundancy and Multi-Az
- Less Security burden à Push this work to cloud provider
- Greater Velocity from Idea to Product
Minimizes Undifferentiated heavy-lifting
Since you don’t have to do things like Capacity Planning, AMIs, Elastic Load balancing, Auto scaling, Deployment planning etc.
Also less things that you have to provision means Less operations overhead of managing them and in turn Less Operational Responsibility on your shoulders
FinDev and Not DevOps
Simon Wardley wrote in 2016 that Serverless computing will spawn new business models around worth based development and will cause the collision of finance and development. Hence FinDev is a more appropriate Moniker for Serverless computing than DevOps
Return on Investment (ROI)
With Serverless computing, the Returns are not just in tangible terms like Cost Savings. But you also have to factor returns in intangibles like Opportunity Cost, Time to market, Cognitive Burden on teams etc. In the worst case, if your Lambda bill is equal to EC2, you will still benefit from the intangibles
#Quote
“Premature optimization is the root of all evil” – Book: The Art of Computer Programming
Hiring People
Yan Cui says, “Recruitment is one of the most important thing you can do as an employee”. “Identity of the company lives and dies by the people that walk through that door”
So it is important to make the right investment of hiring the right people and giving them the right tools to work with in order to get the Best Return on Investment out of your employees.
Is Serverless computing a Panacea
Of course not. There are cases where Serverless computing does not fit. So you have to evaluate your use case and make sure it fits with Serverless in order to get maximum benefits
Leverage: Do more with less
Serverless computing gives you more Leverage. This means that you will find you are able to get more work done from your engineers in less time and for less money. There is already a joke going on in Amazon where they are thinking whether a 2-pizza team too big, with the advent of Serverless computing paradigm. Also, less Engineers means less Managers required to manage and in turn leads to Less organizational overhead
Real Benefits of using Serverless in a Project
Yan worked on converting a social media project to Serverless and here is snapshot of benefits. However, Cost savings was just a side-effect. The driving force behind moving to Serverless was to Build features faster, Ship things quicker. They went from building a new feature in weeks to sometimes delivering the feature on the Same day.
Computing Return on Investment Per Feature
With Serverless, it is easy to calculate the Cost of Developing a new feature, as Development and Release are don’t on that level of granularity.
It is also easy to compute Cost of Execution per feature, as you will only incur cost when the feature is being Executed. There is no bill for leaving some VM’s ON for days even though they are not utilized at their full capacity.
It is easy to compute
- How much cost is it going to take to Build a new feature
- How much time is it going to take to Release it
- How much cost is it going to take to Run it
Serverless helps you in running your infrastructure exactly to the required capacity all the time
From Cost per Transaction to ROI
Tools like Lumigo (https://lumigo.io/) can give you the cost of running a transaction. This helps Businesses to calculate Cost for running a Feature. From Revenues received, Business can get a good idea of what is the ROI of running a feature. This is helpful for Businesses in understanding the costs of running a feature.
Hence this becomes a key metric to evaluate which Features are bring more money and which are not and focus the energies on serving and enhancing the best revenue-earning features.
Hence Serverless computing seems like a promising alternative and looks like we are just getting started.
[…] evolution of the rapid progress we are making in Cloud computing. You can refer to my first blog [1] Serverless – more FinDev than DevOps by Yan Cui for more […]
LikeLiked by 1 person