Live data from Hacker News

You want microservices, but do you need them?

docker.com

21–30 of 151 posts

Re: You want microservices, but do you need them?

#21

I would really like to send this article out to all the developers in my small company (only 120+ people, about 40 dev & test) but the political path has been chosen and the new shiny tech has people entranced. What we do (physics simulation software) doesn’t need all the complexity (in my option as a long time software developer & tester) and software engineering knowledge that splitting stuff into micro services re…

I started making the case for organizational efficiency rather than a technical argument. Demonstrating where the larger number of people and teams necessary to make a decision and a change and how that impacts the amount of time to ship new features has been more effective IME.

Re: You want microservices, but do you need them?

#22

On the theme of several other responders: I don't want microservices; I want an executable. Memory is shared directly, and the IDE and compiler know about the whole system by virtue of it being integrated.

I love the idea that I can compile all my functionality including HTML templates, javascript, and CSS into a single albeit huge Golang binary.

I have never done this yet.

But I love the idea of it.

Re: You want microservices, but do you need them?

#24
post #18

Earlier quoted context omitted.

1 micro-service per pizza sized team seems to work pretty well. Put it into a monorepo so the other teams have visibility in what is going on and can create PRs if needed.

Uh? You eat less than a pizza per person?

8x engineer

Re: You want microservices, but do you need them?

#25
I feel like this has been beaten to death and this article isn't saying much new. As usual the answer is somewhere in the middle (what the article calls "miniservices"). Ultimately

1. Full-on microservices, i.e. one independent lambda per request type, is a good idea pretty much never. It's a meme that caught on because a few engineers at Netflix did it as a joke that nobody else was in on

2. Full-on monolith, i.e. every developer contributes to the same application code that gets deployed, does work, but you do eventually reach a breaking point as either the code ages and/or the team scales. The difficulty of upgrading core libraries like your ORM, monitoring/alerting, pandas/numpy, etc, or infrastructure like your Java or Python runtime, grows superlinearly with the amount of code, and everything being in one deployed artifact makes partial upgrades either extremely tricky or impossible depending on the language. On the operational and managerial side, deployments and ownership (i.e. "bug happened, who's responsible for fixing?") eventually get way too complex as your organization scales. These are solvable problems though, so it's the best approach if you have a less experienced team.

3. If you're implementing any sort of SoA without having done it before -- you will fuck it up. Maybe I'm just speaking as a cynical veteran now, but IMO lots of orgs have keen but relatively junior staff leading the charge for services and kubernetes and whatnot (for mostly selfish resume-driven development purposes, but that's a separate topic) and end up making critical mistakes. Usually some combination of: multiple services using a shared database; not thinking about API versioning; not properly separating the domains; using shared libraries that end up requiring synchronized upgrades.

There's a lot of service-oriented footguns that are much harder to unwind than mistakes made in a monolithic app, but it's really hard to beat SoA done well with respect to maintainability and operations, in my opinion.

Re: You want microservices, but do you need them?

#26

On the theme of several other responders: I don't want microservices; I want an executable. Memory is shared directly, and the IDE and compiler know about the whole system by virtue of it being integrated.

I love the idea that I can compile all my functionality including HTML templates, javascript, and CSS into a single albeit huge Golang binary. I have never done this yet. But I love the idea of it.

I loved uberjars back when I was writing Scala. I don't miss much about the JVM, but I really miss having a single executable I could just upload and run without having to pay attention to the environment on the host machine.

Re: You want microservices, but do you need them?

#28

I would really like to send this article out to all the developers in my small company (only 120+ people, about 40 dev & test) but the political path has been chosen and the new shiny tech has people entranced. What we do (physics simulation software) doesn’t need all the complexity (in my option as a long time software developer & tester) and software engineering knowledge that splitting stuff into micro services re…

I started making the case for organizational efficiency rather than a technical argument. Demonstrating where the larger number of people and teams necessary to make a decision and a change and how that impacts the amount of time to ship new features has been more effective IME.

[dead]

Re: You want microservices, but do you need them?

#29
post #18

Earlier quoted context omitted.

1 micro-service per pizza sized team seems to work pretty well. Put it into a monorepo so the other teams have visibility in what is going on and can create PRs if needed.

Uh? You eat less than a pizza per person?

To be fair pizzas are quite easy to scale from small kid sizes up to enough for several persons.

But it is a bit sad that the poster apparently never bought a pizza just for themselves.

Re: You want microservices, but do you need them?

#30

On the theme of several other responders: I don't want microservices; I want an executable. Memory is shared directly, and the IDE and compiler know about the whole system by virtue of it being integrated.

I love the idea that I can compile all my functionality including HTML templates, javascript, and CSS into a single albeit huge Golang binary. I have never done this yet. But I love the idea of it.

You can already do this with Deno Compile

https://deno.com/blog/deno-compile-executable-programs

Post reply on HN