You could just build a Docker web app eg Rails/Play, deployed in ECS or Elastic Beanstalk with the same scalability in easily 1/10 the time and complexity. And if you get sick of AWS trivially move it to GCP, Azure or on-premise.
You could just build a Docker web app eg Rails/Play, deployed in ECS or Elastic Beanstalk with the same scalability in easily 1/10 the time and complexity. And if you get sick of AWS trivially move it to GCP, Azure or on-premise.
The ease with which you can go from zero-to-production can make it easier to build something completely new than to fix or extend something old.
In time, you get a sprawl of half-baked services and a complex distributed system.
That can lead to each service's creator becoming the sole maintainer of their creation because they're the only one who fully understands how it fits into the puzzle.
I'm hoping this will get better as the newness subsides and mature practices leak back in. Better tooling could also help.
https://medium.com/@amiram_26122/the-hidden-costs-of-serverl...
https://cloudncode.blog/2018/03/22/is-aws-lambda-expensive-t...
Sure, but that "junk" is key to making things scale. Prototype on whatever you want, but if you have to leave the prototype phase you have to care about/get involved in that layer.
Until then, it’s not a mature technology, it should not be sold as such, and you take significant risk in implementing with it.
1. Biggest issue with serverless is debugging when you can't make a local environment and can't install anything like a conventional debugger in the serverless environment. I know of at least one company with a new and very elegant solution for this problem.
2. Visibility and monitoring is also a challenge and there are a bunch of serverless monitoring startups.
3. Security is interesting because, again, you can't install anything to protect your code: no Web Application Firewalls, for example. And there are several interesting theoretical attacks on serverless apps. Already, there are specialist serverless security companies.
A lot of companies don't 'migrate' to serverless. They use a Lambda or GCP Function to handle one small part of a backend task like image processing or some other form of backend tooling. Serverless is often just a good way of gluing other microservices together.
Lambda doesn't cost anything when there is no traffic, and it handles spikes very well.