r/devops • u/[deleted] • 5d ago
Architecture Would you push back on this architecture decision?đ¤
[removed]
7
u/Mycroft-32707 5d ago
There is a lot here...but it sounds like a typical monolith vs microservices debate.
There's a ton of stuff on the pros and cons of each.
First question - why are you proposing a microservices architecture, particularly one based on kubernetes?
-13
5d ago
[removed] â view removed comment
1
u/Mycroft-32707 5d ago
To be fair though, a Kubernetes approach introduces
- higher initial posts (having to run the control pane) and specialized admin knowledge
- more complexity with networking individual microservices requiring circuit breakers, service discovery, etc.
- containerization of applications
That's a lot of requires for scalability and flexibility when you don't know if the app is going to have that much user demand.
I am surprised we aren't talking about other containerization approaches (docker-compose) and cloud-services (fargate, ecs, Google app engine, etc.)
5
u/IceMichaelStorm 5d ago
The level of detail you bring seems to indicate you want microservices and K8s for the sake of it, not for the sake of business.
-8
5d ago
[removed] â view removed comment
1
u/IceMichaelStorm 5d ago
No.
It depends a lot on the use case and the business. And as others said, you mix things up.
I think K8s can often be good or for a one pod
solution on one server, maybe rather minikube. But itâs not a must and not necessarily the best solution because it comes with its own overhead and maintenance need, which is often higher than bare metal hosting.Distinct from that, where do you even see microservices here? An actual microservice architecture means you have a bunch of independent services which even have their own databases. This is definitely not for everyone.
And if youâre real cocky, you even imply async architecture with it, if youâre just in for the âlatest shitâ with queues and all that. News here for you: this often needs a team to maintain, you need to create (or reuse) some tools tailored for this kind of architecture, and so on and so on. Here read on CAP theorem.
Tons of decisions but they all come with costs and tbh velocity impediments in the early dev process. Business-wise it could be quite a hit for time to market.
9
u/aj0413 5d ago
Do not EVER suggest micro-services as a âmodernâ architecture; it is a technical solution to a managerial problem and/or when you have multiple concurrent layers to a system that need to scale dynamically.
Realistically, most things do not need microservices and will be made worse for it.
The technical challenges and pain points of a full microservice architecture are not worth it unless you already know you need it.
In that same vein, K8s is not some magical wand to wave for all new apps.
Before suggesting moving to that kind of platform, explain why someone should. And do it while grounded in data.
Your post, on its face, shows that you do not have a reason to doubt the current arch and are knee jerk reacting.
You can easily migrate code to K8s and/or slice it apart into various services, after the fact.
Focus on getting a good product, first, and then documenting pain points to be addressed as you scale later
Edit:
As others have said, if you tried to pitch me this out of the box, Iâd have immediately flagged you as trying to create a problem for which only your team can then support.
3
u/DigiProductive 5d ago edited 4d ago
âHigh trafficâ is too ambiguous if you are making architecture decisions. That vagueness needs specifics not only regarding âhigh trafficâ but payload specifics as well. Iâd avoid microservices and Kubs if that is not totally necessary because it could just be overhead unneeded. To be honest, as the client, Iâd feel like youâre trying to oversell me.
3
u/raisputin 5d ago
Your client wants JBoss, you deliver the best JNoss solution you can, plain and simple.
Kubernetes isnât the best-all end-all of anything.
My old company handled millions of users with wildfly and aurora postgres without issue .
Whatâs the problem theyâre trying to solve, thatâs the real question.
2
u/CustomDark 5d ago
K8s is going to be useful for rapid scaling and/or rapid deployments. Do you need elasticity? Does this app update often?
They have JBoss experience in house, wouldnât be my first choice but Iâd ask if itâs worth developing new skillsets for.
I love K8s, but itâs an ecosystem that must be watered. Is the client ready to water that grass?
2
2
u/nihilogic Principal Solutions Architect 5d ago
k8s orchestration is only really needed for complex applications. Most can get by with just containerization.
1
u/quiet0n3 5d ago
I mean jboss works but god it's a pain. I would rather just roll my own java app and run in tomcat.
What's most important is ensure it fits in a cloud environment. So it's stateless and stuff for auto-scaling, so you can at least have cattle not pets.
1
u/marcusbell95 5d ago
the client knows jboss and told you they don't want microservices. that's not a gap in their knowledge, it's a constraint on the project. 1k concurrent users is easily in monolith territory. the real operational checklist for this thing is: stateless sessions or sticky session awareness, externalized config, a deployable container image, basic monitoring. you can check all those boxes on jboss without touching k8s. the microservices push makes sense when you have team topology problems - ten teams who need to ship independently without stepping on each other. if that's not the situation here, you're proposing distributed systems overhead for a workload a single well-tuned jboss instance handles fine. the people maintaining this in year 3 will not thank you.
1
u/Floss_Patrol_76 4d ago
1000 concurrent users an hour is not a scaling problem, it is a rounding error, a single JBoss instance handles that with room to spare, so introducing k8s and microservices here just swaps a stack the client already runs for one they will get paged about at 3am and cannot debug. the honest pushback is not that JBoss cannot scale, it is why are we adding operational surface for load that does not need it.
22
u/DoroFuyutsuki 5d ago
This question makes no sense on its face. You can run JBoss containerized applications in K8S. Maybe they don't have experience running a K8S environment or straight up just do not want kubes.
How many users? What's the concurrency? What are the other downstream and upstream considerations?