6 ms·
Question for the frontend crowd: how have microservices/serverless aged over the past few years? I've largely avoided learning/using this type of architecture b
by testbot123 6y ago
Question for the frontend crowd: how have microservices/serverless aged over the past few years? I've largely avoided learning/using this type of architecture because intuitively it seems like a bad idea to split your app and business logic across a bunch of tiny services with unknown uptime stats (difficult to maintain, difficult to see macro view of your application, cascades of service dependencies, hard to onboard new people, etc). Are microservices and serverless architecture still considered a good idea? What are the benefits I'm not seeing?
- leerob 6y agoIt really depends on the scale of your organization. Microservices do have their place, but I'd argue that most of the time monoliths are fine.
- finestkludge 6y agoI'm not aware of a real "consensus," but a popular view (reflected by my experience) is that they're great for a large org with many teams working asynchronously (though they still introduce headaches), but that for most startups, the payoff is reduced greatly while the pain remains consistent. You've probably around seen this, but DHH has a good piece on this in Signal v. Noise: https://m.signalvnoise.com/the-majestic-monolith/ https://m.signalvnoise.com/the-majestic-monolith/
- ornornor 6y agoI feel this post is addressing something else. Serverless is pretty much simple especially with a framework of the same name or on say netlify. All your code is in one repo and you don’t have to worry about the servers at all. The blogpost is more about orgs deciding to manage their servers too, going full on kubernetes, docket, etc. That’s what complicated everything because now you need dozens of other systems just to make your container architecture work. But serverless? You need nothing. Just push to a repo and you’re done because someone else is doing the cat herding of running the containers.
- kennu 6y agoFor me Serverless has replaced 99% of servers and there's no going back. I have absolutely no desire to run, maintain, update and monitor servers or server processes. Once you deploy an app to AWS Lambda and API Gateway, it keeps running basically forever. The main reason for that is that there is no state (except for what is stored in DynamoDB, which in turn AWS takes care of). And thus your application is always in the same state as when it was deployed, without memory leaks or handle leaks or escaped background threads or anything like that. The remaining 1% are apps that require a persistent TCP or UDP connection with some protocol that AWS doesn't support in its Serverless services, or that require keeping some state in RAM, e.g. for online gaming.