News for hackers. Stuff that matters.
Re:We're Leaving Kubernetes by animal_spirits on Monday November 04, 2024 @11:25PM (#42048595)
Invariably this is an ideal and does not match up in reality. I work at ~50 ish employee company and we have layers of dependencies between at least 6 or 7 various microservices. I can see this adding up in complexity as the product scales
Re:We're Leaving Kubernetes by flimsypremise on Tuesday November 05, 2024 @12:10AM (#42048760)
If the microservice has dependencies on other services it is not a microservice.
Re:We're Leaving Kubernetes by blitzar on Tuesday November 05, 2024 @03:59AM (#42049860)
Connecting to a messaging queue or database count as a dependency?

Why not break a microservice into a series of microservices, its microservices all the way down.

Re:We're Leaving Kubernetes by Cthulhu_ on Tuesday November 05, 2024 @07:31AM (#42051006)
Only if you cannot change one service without changing the other simultaneously. It's fine to have evolving messages on the queue but they have to be backwards compatible with any existing subscribers, because you cannot expect all subscribers to update at the same time. Unless you have a distributed monolith in a monorepo, but at least be honest about it.

Multiple services connecting to the same database has been considered a bad idea for a long time. I don't necessarily agree, but I have no experience in that department. It does mean more of your business logic lives in the database (rules, triggers, etc).

Re:We're Leaving Kubernetes by chipdart on Wednesday November 06, 2024 @02:10AM (#42057751)
> Only if you cannot change one service without changing the other simultaneously.

Not true at all.

You're conflating the need for distributed transactions with the definition of microservices. That's not it.

> Multiple services connecting to the same database has been considered a bad idea for a long time.

Not the same thing at all. Microservices do have the database per service pattern, and even the database instance per service instance pattern, but shared database pattern is also something that exists in the real world. That's not what makes a microservice a microservice.

Re:We're Leaving Kubernetes by dns_snek on Tuesday November 05, 2024 @05:31AM (#42050333)
According to whom? How do those microservices get anything done if they just live in their own isolated world where they can't depend on (call out to) any other microservice?
Re:We're Leaving Kubernetes by dns_snek on Tuesday November 05, 2024 @03:06PM (#42054729)
Would anyone care to explain the reasoning behind their down votes?
Re:We're Leaving Kubernetes by chipdart on Wednesday November 06, 2024 @02:05AM (#42057716)
> If the microservice has dependencies on other services it is not a microservice.

You should read up on microservices because that's definitely not what they are not anything resembling one of their traits.

Re:We're Leaving Kubernetes by rileymat2 on Monday November 04, 2024 @11:28PM (#42048603)
Yes, the real world trumps theory, hence my question.
Re:We're Leaving Kubernetes by jrs235 on Friday November 08, 2024 @09:48AM (#42087236)
Reminds me of a favorite quote: "What's the difference between between theory and practice (reality)? In theory, they're the same."
Re:We're Leaving Kubernetes by nightski on Tuesday November 05, 2024 @12:38AM (#42048862)
So basically a distributed monolith :P
Re:We're Leaving Kubernetes by Tainnor on Tuesday November 05, 2024 @06:00AM (#42050486)
I'm sure companies with well designed and properly isolated services exist but... in my time spent at several companies, "microservices" invariably degenerate to distributed monoliths.
Re:We're Leaving Kubernetes by chipdart on Tuesday November 05, 2024 @02:00AM (#42049224)
> Invariably this is an ideal and does not match up in reality.

No, this does indeed match reality. At least for those who work with microservices. This is microservices 101. It's baffling how this is even being argued.

We have industry behemoths building their whole development experience around this fact. Look at Microsoft. They even went to the extents of supporting Connected Services in Visual Studio 2022. Why on earth do you believe one of the most basic traits of backend development is unreal?

> I work at ~50 ish employee company and we have layers of dependencies between at least 6 or 7 various microservices.

Irrelevant. Each service has dependencies and consumers. When you need to run an instance of one of those services locally, you point it to it's dependencies and you unplug it from it's consumers. Done. This is not rocket science.

Re:We're Leaving Kubernetes by Tainnor on Tuesday November 05, 2024 @06:04AM (#42050504)
You can't compare Microsoft to your run-of-the-mill small (or even large) software shop, though. Maybe on HN, most people work on these amazingly designed systems, but in my experience most tech out there is shit and has no proper design or architecture beyond "we're doing microservices because everyone is".
Re:We're Leaving Kubernetes by chipdart on Tuesday November 05, 2024 @06:47AM (#42050764)
> You can't compare Microsoft to your run-of-the-mill small (or even large) software shop, though.

I'm talking about how Microsoft added support for connected services to Visual Studio. It's literally a tool that anyone in the world can use. They added the feature to address existing customer needs.

Re:We're Leaving Kubernetes by Tainnor on Tuesday November 05, 2024 @07:23AM (#42050955)
Apart from the fact that not everyone uses Visual Studio, "connected services" appears to be something by which you can connect to existing cloud-based services.

How does that solve the problem of a mess of interconnected services where you may have to change 3 or more of them simultaneously in order to implement a change?

Re:We're Leaving Kubernetes by chipdart on Tuesday November 05, 2024 @01:08PM (#42053807)
> Apart from the fact that not everyone uses Visual Studio, "connected services" appears to be something by which you can connect to existing cloud-based services.

Yes. That's the point.

> How does that solve the problem of a mess of interconnected services (...)

I don't think you got the point.

The whole point is that you only need to connect your local deployment to services that are up and running. There is absolutely no need to launch a set of ad-hoc self-contained services to run a service locally and work on it. That is the whole point.

Re:We're Leaving Kubernetes by Tainnor on Tuesday November 05, 2024 @03:53PM (#42055061)
Your whole argument boils down to "don't write shit software" which yeah, fair, but in the real world, the company that you just joined has shit code that evolved over 10 years and has accumulated all sorts of legacy cruft. The idea that there is "absolutely no need to launch a set of ad-hoc self-contained services to run a service locally and work on it" just doesn't match the reality of most places I've worked at. You either got very lucky or you didn't work on complex enough systems.
Re:We're Leaving Kubernetes by chipdart on Wednesday November 06, 2024 @01:18AM (#42057513)
> Your whole argument boils down to "don't write shit software" (...)

No. My whole argument is open your eyes, and look at what you're doing. Make it make sense.

Does it make sense to launch 50 instances locally to be able do work on a service? No. That's a stupid way of going about a problem.

What would make sense? Launch the services you need to change, of course. Whatever you need to debug, that's what you need to run locally. Everything else you consume it from a cloud environment that's up and running.

That's it. Simple.

If there's something preventing you from doing just that then that's an artiicifal constraint that you created for yourself, and thus that you need to fix. We're talking about things like auth. Once you fix that, go back to square one.

Re:We're Leaving Kubernetes by Tainnor on Wednesday November 06, 2024 @05:17AM (#42059322)
Just FYI, you come across as extremely antagonistic in the way you're conveying your message. The underlying tone seems to be "you're stupid".
Re:We're Leaving Kubernetes by marcosdumay on Tuesday November 05, 2024 @11:09AM (#42052606)
> You can't compare Microsoft to your run-of-the-mill small (or even large) software shop, though.

True. Your run-of-the-mill shop should have a simpler and more straight-forward system.

But you seem to want the reverse.

Re:We're Leaving Kubernetes by animal_spirits on Tuesday November 05, 2024 @11:21AM (#42052766)
No one wants the reverse, I would love if my microservices were perfectly isolated little boxes with known inputs and outputs! That would make my life easier. But I don’t have the ownership over the planning process and our sales person already told our customer we’d have the new feature they asked for that no one on the engineering team knew about delivered by next sprint. It would be nice if my company planned things well! But they don’t
Re:We're Leaving Kubernetes by therealdrag0 on Tuesday November 05, 2024 @12:48PM (#42053634)
So then it’s bad engineering being wagged by Sales, not some expected sane choice.
Re:We're Leaving Kubernetes by Tainnor on Tuesday November 05, 2024 @03:57PM (#42055093)
Most of the time it's bad engineering caused by other engineers.
Re:We're Leaving Kubernetes by marcosdumay on Tuesday November 05, 2024 @01:46PM (#42054150)
Just s/Sales/Management, because sales actually can't wag the development process. But yeah.
Re:We're Leaving Kubernetes by redman25 on Tuesday November 05, 2024 @10:00AM (#42051981)
Shouldn't all systems be tested end-to-end regardless of if they are microservices or not?
Re:We're Leaving Kubernetes by therealdrag0 on Tuesday November 05, 2024 @12:50PM (#42053648)
You don’t have to test them all end to end before merging a PR. You should have multiple stable pre prod environments for e2e testing. But if most changes fail e2e testing then your sdlc is broken before then and that should be fixed first. You need better designs and better collaboration and better local tests and code reviews.
Re:We're Leaving Kubernetes by chipdart on Wednesday November 06, 2024 @02:00AM (#42057688)
> You don’t have to test them all end to end before merging a PR.

You have to test the changes you want to push. That's the whole basis of CI/CD. The question is at which stage are you ok with seeing your pipeline build.

If you accept that you can block your whole pipeline by merging a bad PR then that's ok.

In the meantime, it is customary to configure pipelines to run unit, integration tests, and sometimes even contract tests when creating a feature branch. Some platforms even provide high-level support for spinning up sandbox environment as part of their pipeline infrastructure.