3 ms·
The biggest lesson i learned when i was in an org thay started using serverless heavily (because its the future!) is that its an unmaintanable mess. You end wit
by ecshafer 3y ago
The biggest lesson i learned when i was in an org thay started using serverless heavily (because its the future!) is that its an unmaintanable mess. You end with code spaghetti, but now its split across 100 repos that might be hard to find, and designed purely on architecture diagrams.
From what i can see its basically recreating mainframe batch processing but in the cloud. X happens which triggers Y Job which triggers Z job and so on.
- politelemon 3y agoThat sounds like micro services in general rather than lambda the Aws service selectively. I've seen the same unsustainable mess with k8s crazy teams. The lesson I've learned instead is to start boring and traditional, then use serverless tech when you hit a problem the current setup cannot solve
- ecshafer 3y agoI agree that its like microservices, but the problem is turned up to 11 with serverless. 1 microservice now becomes 10 lambdas. The issue is fundamentally one of discovery, and as teams churn out more and more functions, that arent all in the same repo, youre bound to lose traxk of whats happening.
- abrookewood 3y agoAgreed. From what I have seen, lambda functions are typically even smaller than micro-services & you end up with even more of them.
- losteric 3y agoServerless has it's faults, but spaghetti code spread across 100 repos is definitely a "user error"...
- ecshafer 3y agoHow do you solve the discoverability issue when theres 1000 serverless functions written by 10 different teams then? Serverless worsens the issue of having knowledge of the entire system i think, and i dont think this is even solvable.
- inhumantsar 3y agoLambdas are rarely entirely standalone, they support a larger service or glue services together. Creating one repo per Lambda is going to make things messy of course, just as breaking every little internal library out into its own repo. Regardless of the system or what it runs on, it's an easy trap to fall into but it's absolutely solvable with some technical leadership around standards.
- cassianoleal 3y ago> Lambdas are rarely entirely standalone, they support a larger service or glue services together. I wish that was the case in real life. Unfortunately, the trend I've been noticing is to run anything that's an API call in Lambda, and then chaining multiple Lambdas in order to process whatever is needed for that API call.
- latchkey 3y agoOne serverless function is effectively a http router that knows how to call the appropriate code path to reach the 1000 handlers.