Cloud Myth: Serverless Solves All My Problems
It’s easy to get caught up in the hype of the cloud, and the latest and greatest cloud service offering often seem like the solution to all your problems.
However, like any new technology, understanding how and where to apply the technology is critical to successfully using the technology.
This most certainly applies to the serverless computing, which many people believe will solve all their problems.
These offerings promise the ability to provide an execution environment for your software, without the need to build and maintain a farm of servers for the software to run on.
This serverless computing model is very attractive to companies that are wanting to use the cloud to reduce their infrastructure management costs.
But, like all new technologies, Functions as a Service offerings such as AWS Lambda are good for some class of problems and they are not good for other class of problems.
Yet, I often hear statements from individuals such as “Lambda will solve my computing infrastructure problems.”
Or, even worse, I’ll hear “we’re moving all of our software to Lambda” or “our application is running 100% on Lambda.” I’ve even heard this very statement from a major cloud training provider that specializes in teaching cloud capabilities to software engineers.
Will serverless solve my problems? Be careful
To people thinking that Functions as a Service offerings such as AWS Lambda are a solution to all your woes, I say this: Be very careful. AWS Lambda, Azure Functions, and other similar offerings give a huge advantage to certain class of computing environments, but they can be overused.
If they are force fit into solving problems they weren’t specifically designed to solve, they actually can create more problems for you, and your infrastructure management cost and complexity can increase significantly. You can make your infrastructure harder to use, harder to maintain, and more expensive to scale than if you used more traditional computational models.
Use Functions as a Service as an important part of your application architecture, but don’t depend on them to solve all your computing problems. Use them only where they make sense.
More articles from Lee Atchison: