In my spare time I have been mucking around with 2 big
Functions-as-a-Service (FaaS) offerings,
AWS Lambda and
Azure Functions. I’ve been meaning to write up a “The state of
serverless development” post, but today
his overview of the market for serverless computing
and it’s far more thorough than I could ever be.
The whole thing is well worth a read if you’re interested in
the area, but these parts (emphasis mine) really resonated with
Serverless is not the correct approach for every problem, so be
wary of anyone who says it will replace all of your existing
architectures. Be careful if you take the plunge into Serverless
systems now, especially in the FaaS realm.
While there are riches — of scaling and saved deployment
effort — to be plundered, there also be dragons — of debugging
and monitoring — lurking right around the next corner.
Serverless services, and our understanding of how to use
them, are today (May 2018) in the “slightly awkward teenage
years” of maturity.
There will be many advances in the field over the coming years,
and it will be fascinating to see how Serverless fits into our
This is exactly right in my experience.
Lambda and Azure Functions let you write+deploy code quickly
without an infrastructure team and an execution platform. However,
the developer experience is often a big step backwards – Lambda
doesn’t offer any remote debugging support, and just
running+debugging functions locally is a big pain. Azure is
further ahead in debugging, but things are still more complicated
and less reliable than when debugging traditional apps.
Integration testing is difficult on both platforms.