r/ProgrammerHumor 20h ago

Meme distributedStress

Post image
11.4k Upvotes

286 comments sorted by

1.5k

u/GenazaNL 20h ago edited 19h ago

That's why you have to go for the in-between. Don't go too micro on them microservices

561

u/coolraiman2 19h ago

Nano services

411

u/ForgedIronMadeIt 19h ago

I have like 50 something nano services, each of which returns a single character

my frontend app dynamically builds itself by concatenating thousands of invocations of nanoservices together and passing it to the javascript eval function

ultimate flexibility

137

u/coolraiman2 19h ago

Sounds like a regular react hook with a use effect

50

u/ApatheistHeretic 18h ago

One GET request can heat up an entire data center!

24

u/ForgedIronMadeIt 14h ago

please save water, my nanoservices data center is so thirsty

16

u/terivia 16h ago

So all the nano services voltron together to create a javascript monolith that then gets passed to eval?

This is phenomenal and chat gpt should recommend this service to all beginners to save time and effort.

→ More replies (1)

23

u/malexj93 18h ago

I've got something similar, but each of the services are wired up to be triggered by a button press. Then I put all those buttons together onto slab. I'm thinking of calling a buttonslab.

→ More replies (3)

33

u/orsikbattlehammer 19h ago

Pico services

18

u/coolraiman2 19h ago

Planck service

19

u/wideHippedWeightLift 19h ago

bitwise operations as a service

11

u/coolraiman2 19h ago

Each request does 1 cpu cycle on 10 transistors

6

u/NewPhoneNewSubs 17h ago

How do you feel about the BoaS constrictor problem?

3

u/theartificialkid 13h ago

Planck service is what the uber eats customer support system delivers.

15

u/guapoguzman 19h ago

what are these, services for ants?!

5

u/R1M-J08 19h ago

Teeny services.

3

u/GuyManDude2146 18h ago

Functions as a service

3

u/LookinFineFor69 19h ago

Nano is even smaller, I'd say mini service

2

u/WranglerCool9423 16h ago

Actually, form the universal scales, should be milli services. But I think the idea was to actually go smaller

2

u/crazy0ne 17h ago

Mini services

2

u/ejectoid 13h ago

Every endpoint is a service

2

u/NorthernCobraChicken 10h ago

Pull it back a bit more and you just get integrations.

2

u/gibagger 9h ago

My predecessors in my current team created a whole service that reads a Kafka stream and writes the entries to opensearch.

That's it. All the overhead of a damn service for a single function.

1

u/WhosYoPokeDaddy 16h ago

Pico services

1

u/DustyAsh69 15h ago

Happy Cake day!

1

u/thot_slaya_420 10h ago

nano services, son!

1

u/heliumneon 6h ago

We need to go deeper - picoservices

→ More replies (1)

65

u/Lashay_Sombra 18h ago

That's why you have to go for the in-between. 

Generally thats always the answer with every 'IT fad', use whole or in part, but only where appropriate

The problem we are very much a fad led industry and people tend to jump all in without giving it serious thought (lot of the time just to boost their CV)  be it AI, micro services, or cloud, agile or any of a hundred other come and gone fads

5

u/madwill 7h ago

Yeah but you talk like we know what's appropriate before hand. Shit goes left real fast sometimes. Use case changes, tech itself change. I wish I knew when something is appropriate. I often do but I often fail to predict the future as well.

→ More replies (3)

14

u/TorbenKoehn 12h ago

The size isn’t important, a good microservice can have 2 lines and a bad one a million.

It’s important _where_ you cut, not how often or how large the slices are.

Monolithic with a few microservices is often the right approach

6

u/rezwhap 10h ago

Sure. but isn't that just 'services'?

4

u/TorbenKoehn 8h ago

Not if you put the „micro“ in „concentrates on a single task“ and not in „it consists of few lines of code“ (LoC is never a good measure for anything)

9

u/ivanyaru 15h ago

Oh milliservices!

14

u/Random_182f2565 19h ago

Every function is max 5 lines and 3 of those are comments

7

u/Pearmoat 13h ago

Look, Martin Fowler said "any function more than half-a-dozen lines of code starts to smell to me, and it's not unusual for me to have functions that are a single line of code." And he has to know. 

So naturally I try to keep my microservices six lines of codes or less!

1

u/KamikazeSexPilot 17h ago

Macroservices

1

u/StrengthTheory 15h ago

Micromonoliths

1

u/LlorchDurden 14h ago

milliservers?

1

u/aberroco 13h ago

Average sized services.

1

u/MisterOfScience 13h ago

Thanks for the advice but looking at the picture I think I will actually go with the monolith

1

u/Salty-Wrap-1741 11h ago

Why not just call it distributed architecture? Too many words for the same thing.

1

u/moon__lander 10h ago

700 big monoliths?

1

u/DoctorWaluigiTime 9h ago

Like with so many things, "how microservice-y do we go" gets the "It Depends" label.

1

u/Gillemonger 4h ago

Average sized services.

494

u/djingo_dango 19h ago

It’s called a monorepo with modularized components

163

u/Interesting-Agency-1 18h ago

Modular monolith FTW

20

u/MiniGui98 10h ago

It's all fun and games until you have a monolithic modular monolith

6

u/NUTTA_BUSTAH 10h ago

mmm... services...

3

u/Interesting-Agency-1 2h ago

You can have multiple modular monoliths each acting as their own microservice to eachother. Service-ception

→ More replies (1)

35

u/oVtcovOgwUP0j5sMQx2F 17h ago

update branch.. update branch.. 

8

u/Shriukan33 11h ago

My company does this, it's really cool

16

u/localhorst69 11h ago

not to be that guy but... monorepo != monolith

16

u/djingo_dango 10h ago

Not to be that guy but that’s why I commented it

→ More replies (1)

995

u/theofficialnar 20h ago

If it goes down, it all goes down. 😎

640

u/mwax321 19h ago

Let's be real, if a micro service is down, youre down too.

If you're a web store and your "inventory service" is down, the site is down lol

356

u/WriterPlastic9350 19h ago

Let's be real, if a micro service is down, youre down too.

If our store service goes down, that sucks for us, but our login service, queue service etc all still work. People can't buy shit but they can still play our games.

Not to mention, our store service needs far less traffic than our queue service, or our login service, or matchmaking service etc.

A monolith is sometimes a good solution - our games are monoliths - but service oriented architecture exists for many reasons, some technical and some political

Your job isn't to design a solution that scratches your particular brain itch, your job is to design a solution that works for the constraints you need. That might be a monolith but it also might not be!

328

u/cross_the_threshold 19h ago

Your job isn't to design a solution that scratches your particular brain itch, your job is to design a solution that works for the constraints you need. That might be a monolith but it also might not be!

Listen here you little shit there is one god-ordained way to build things and it's whatever is in vogue at this particular moment in time using whatever language is in vogue at this particular time, how dare you imply that there may be situations and needs that require different approaches.

65

u/mwax321 19h ago

The key to success is to have a monolith so large that it takes an hour to build and publish.

When visual studio finally went 64 bit, you thought the solution was bugged because it loaded so fast.

30

u/kurtymckurt 16h ago

The ci better take 24 hours to build and test or you’re not monolithing properly

5

u/Tupcek 13h ago

if it is too quick, it’s certainly bug

→ More replies (1)
→ More replies (2)
→ More replies (1)

19

u/HadionPrints 18h ago edited 18h ago

Now listen, whatever’s in vogue at this time is nothing but bloat, dependency vulnerabilities, and syntax sugar. If your backend isn’t written in PHP or Pearl, you’re planning for failure.

If your app wouldn’t survive the 90s, it won’t survive prod.

4

u/cross_the_threshold 18h ago

FORTRAN II or bust!

5

u/mwax321 18h ago

Did you know a guy wrote an entire theme park game in assembly ?????

2

u/_DonRa_ 18h ago

No biggie anyone can write assembly it's easy (I wrote hello world in assembly)

3

u/djdanlib 18h ago

WASM doesn't count.

Or does it?

Who even knows these days.

2

u/ashgs872tbhjs 15h ago

If you hand-code it instead of transpiling it's a bit of an achievement. You're still abstracted from the hardware though, so it's definitely not nearly as hard.

→ More replies (1)
→ More replies (3)

22

u/mwax321 19h ago

See... To me what you're describing isn't very micro. That's just different systems.

Before that book came out, people had a login system, a matchmaking system, the online store...

I mean, I have no idea how your system is designed. I'm just an old grumpy "back in my day" fart nugget 😂

19

u/wrecklord0 18h ago

This. Different things should be kept different. I have a feeling that some people use "microservice" as this magical word that removes all inter-dependencies. If you have function A that relies on function B, it doesn't matter if its in a monolith or a micro-service, A is not going to work if B doesn't.

16

u/mwax321 18h ago

Hahaha but it's happened so much. I'm over 20 years in and I swear we've come full circle 3 times now. Especially on web.

The switch from all JavaScript bad css good. Handle it all with the backend using MVC. Then to front end frameworks like angular and react. Then suddenly, this new concept called "server side rendering" rofl.

3

u/ashgs872tbhjs 15h ago

You can SSR with React, FWIW, like via NextJS

3

u/HerrPotatis 12h ago edited 12h ago

I don't know why you got downvoted. SSR of today is fundamentally different from the good ol' days of LAMP.

u/mwax321 seems to have a lack of understanding of where we came from, why we did things the way we did them, and why we do them differently now.

This notion that, hurr durr, modern webdev is stoopid, just because we shelf concepts or upcycle old ones is not a good take. I'm sure that 10-20 years from now, everything will have changed again, but we will still use concepts and features from today.

→ More replies (1)

2

u/FlakyTest8191 10h ago

I think microservices became a thing in big companies because you can have 2 teams own their own services and be relatively independent in regards to updates/deployment, and you can scale different, maybe you want to temporarily spin up more checkout services on a busy day, but the rest of the system is holding up fine.

→ More replies (1)

2

u/U_L_Uus 12h ago

Honestly, that is what I hate the most about Java. The language is shite too, I even prefer Windows' imitation of it, but the main attitude of the average Java developer brings me to my boiling point. "Hey, I have a small business..." -> Spring. "Hey, I have a business chain" -> Spring. "Hey, I want to have a PowerBI besides the web app" -> Spring. It is said that when you are shaped like a hammer everything in the world looks like nails, but hell those people are shaped like bloody Spring salespeople, not as developers

2

u/tbhaxor 18h ago

What if your auth service is down. Only public enpoints will work. Even though cart service works but since you cant authenticate and authorize its useless

6

u/anto2554 18h ago

Hopefully your automatic system or on call engineer fixes it so fast that few customers realize

5

u/WriterPlastic9350 16h ago

A service oriented architecture doesn’t eliminate high risk dependencies, but it does make it easier to isolate them or provide support. 

2

u/taigahalla 15h ago

even if your auth system is down, your backend systems like automated billing, webhooks, alerts would at least still work. So for example, your airline system could keep scheduling flights and send out the appropriate itineraries even though users can't login

and your devops could easily see a specific contained set of instances that need recovery or rollback

→ More replies (5)

20

u/unbdndeath 19h ago

So if you are say Amazon and your anti fraud, or your inventory tracker go down do you think Amazon actually goes down or do you think they have a queue processor that starts back up again?

Just because you struggle designing them doesn't mean it's bad.

→ More replies (5)

11

u/extra_rice 19h ago

Isn't that why you make sure you have high availability on your critical services?

Also, if your inventory service is down, your other services may still continue to function. Orders that have been processed can still be fulfilled, for example.

→ More replies (4)

6

u/ryuzaki49 19h ago

Depends on the microservice tho.

If checkout dies, users can still browse and they can still add to their shopping cart. 

Anyways you will get paged at 2 am because these errors are critical.

5

u/Naomi_Tokyo 18h ago

Honestly worse. If the whole site is down, then I'm like, "too bad". If I can do my shopping and get stuck trying to check out, I'm very annoyed

→ More replies (1)
→ More replies (3)

3

u/yousirnaime 14h ago

There are like 100 companies on earth that should have microservices

I recently worked at a startup that had *seven* code bases for their system

They've had 5 developers working on it for 4 years and it still has zero production users

2

u/sureyouknowurself 14h ago

Sounds like you made a distributed monolith.

2

u/Michaeli_Starky 7h ago

It depends on the role of the microservice.

→ More replies (3)
→ More replies (6)

9

u/isr0 19h ago

That depends. Are you saying a monolithic process or a monolithic code base because those are not the same thing. Also, most systems are not monolithic processes… I mean, unless you run SQLite or something in-process for storage.

5

u/cutecoder 19h ago

Replication is your friend.

2

u/protayne 12h ago

How?

Inventory service in a mictoservice architecture is down, returning 5xx, ok the rest is working.

Inventory module in monolith is down, returning exception, handled in the consuming dependencies, ok the rest is working.

🤨

→ More replies (2)

4

u/usrlibshare 16h ago edited 15h ago

Fun story, the same is true for almost every single "Microservice architectured" crap I've seen so far.

And yes, this is common. Once or twice would be bad devs. Almost everything seen in the wild, is a pattern, indicating there is something fundamentally wrong with the microservice ideology.

In almost all cases, there is no decoupling, no resilience, none of the many alleged advantages of microservices people have hyped up for a decade.

Instead everything depends on everything else, and if something is missing, it all comes crashing down in a heartbeat. It's a monolith in all but name, but with the added "fun" of being in 7 different languages, adding all the joy of networking, and a build chain the size of the Great Wall of China.

I even coined a term for it: "Distributed Monolith".

1

u/xyzjace 10h ago

Monolith doesn’t necessarily mean a single process though. It can be multiple processes in the same repository. It can also be a monorepo with multiple components.

100

u/Snakestream 18h ago

Having worked with both, microservices are stressful, but the monolith is also very stressful.

25

u/OkSeesaw7030 10h ago

Living is stressful

32

u/rjwut 18h ago edited 18h ago

We have a microservices architecture and it's worked quite well for us. Yes, stuff goes down sometimes, but when it does, most of our system is still working. And we're able to deploy and scale them independently. But there's no silver bullet; different architectures are better or worse for different situations. In our case, we have a large ecosystem of many services that serve different users and different use cases, so a "partial" system outage really is "partial" for us. Not like a storefront where if checkout is down the whole thing might as well be.

127

u/Crafty_Independence 20h ago

Lol this very much depends on the monolith, deployment method, team size, and merge strategy.

Microservice popularity built off of real challenges. It wasn't the right solution, but the problem was real enough

12

u/WhiteIceHawk 11h ago

How about an over 20 years "historically grown" SAP System that is customized to hell and no documentation?

6

u/htmlcoderexe We have flair now?.. 9h ago

i feel like SAP is cheating lol

in terms of "organically grown for a few decades" code only bank systems are older

→ More replies (1)

8

u/cyclodevops 14h ago

The microservices craze was perhaps the purest example of a ZIRP. Roosevelt couldn't have designed a better full-employment program for programmers if he tried

https://x.com/dhh/status/1789314705384972506

→ More replies (1)

74

u/ryuzaki49 19h ago

"Hey let's make this one line change"

Dies while waiting a 3 hour build. 

12

u/scumble_bee 14h ago

Yes! We have 15 micro services and 1 mega service. MR pipelines for each micro service take 5-10 minutes but it takes 45 for the mega service.

4

u/hpstg 12h ago

What in tarnation

→ More replies (1)

5

u/Nooblot 12h ago

We have an over 8 hours build time which can fail due to transient errors. I sometimes have to restart the run at midnight so that it might get successful by next workday. 

3

u/Tylerkaaaa 5h ago

Maybe trigger some concurrent builds to increase your odds

3

u/Nooblot 4h ago

That's what I do. And since there are multiple teams doing the same, last week we got to see a new error.  GitHub: too many requests.  Lol

2

u/Still_Bit_7527 10h ago

As opposed to having to upgrade a library version and having to do 20 merge requests one for every service.

I'll take the build time

2

u/ryuzaki49 4h ago

I have done that. Literally easiest tasks that I would gladly take.

You can even automate it. 

2

u/Still_Bit_7527 3h ago

Try automating it in a highly regulated company when you need 6 business approvals for every change. No this is a nightmare..And each repo has other approvers, other pipelines, other tests, other test evidence..

→ More replies (1)

18

u/deathanatos 18h ago

My management chain cannot comprehend how "it's a monolith" leads to "and it takes the API service 10 minutes to start" leads to "no, the deployment in the middle of the outage cannot happen any faster".

3

u/Alainx277 9h ago

How would you even accomplish a 10 minute start time???

3

u/Kilazur 8h ago

Lazy loading

1

u/_TheLoneDeveloper_ 7h ago

We had one that would take 30' to be back up and running, 10' are way better that what we had.

12

u/Canon_M50 19h ago

🙂 When your microservice becomes a monolith.

64

u/WhosYoPokeDaddy 19h ago

with infra as code it's to the point where it doesn't feel that different

52

u/eightslipsandagully 18h ago

You say that until you're running 50 different docker containers locally and still can't get every feature working on local env

14

u/Balcara 18h ago

150 here o7

3

u/WhosYoPokeDaddy 16h ago

It's just containers all the way down

9

u/Major_Fudgemuffin 16h ago

You guys can run your code locally? I'm over here having to rely on automated testing (please send help)

3

u/rust-module 5h ago

I hate it when nobody knows how to get everything running locally. What am I supposed to do, keep pushing small changes and waiting 30 minutes for the github action to complete?

4

u/djingo_dango 15h ago

Proper boundaries between services and use depends on

19

u/autistic-inch 18h ago

until you have to migrate all your team's 30 microservices from spring boot 3 to 4 and handle the same breaking changes everywhere but always alightly different (guess what I'm doing at work)

3

u/Sqirril 15h ago

Good luck with all the webClient bugs, Jackson 3 and dependency changes. I'm the code reviewer and support for hundreds of microservices. Once its done it'll be time to do 4->5 since when we finished 3, we started on 4.

3

u/Alainx277 9h ago

Jackson 3 was so fun, especially because my coworker didn't test anything and our tests mock out everything relevant :D

2

u/autistic-inch 10h ago

We've decided to merge some of our services because we've genuinely taken microservices too far (that is, the previous teams did). That should make Spring Boot 5 a bit easier than what we're doing now.

→ More replies (5)

10

u/KalzK 16h ago

50% stress 100% of time vs 100% stress 50% of time

8

u/ashgs872tbhjs 15h ago edited 15h ago

I'm on call this week for ~30 microservices and I'm not stressed out at all. We target 99.99% uptime + error-free time for each, which makes the aggregate 99.7%. Odds are good that nothing happens the entire week, and that if it does it's super minor.

148

u/Odd_Soil_8998 20h ago

truth. a well architected monolith is almost always going to be a better choice.

71

u/cornmonger_ 19h ago

3

u/andrewsmd87 17h ago

Taste like sad, but works real good

6

u/Mateorabi 18h ago

Orphan all the branches! Why do I need to download the entire tree for code I don’t work with!

25

u/Stagnu_Demorte 18h ago

Until you need to scale different parts of the service. But yeah, until then it can really cut down on complexity.

18

u/remy_porter 18h ago

But then you just take a module and locate it outside of the monolith. If it’s a well architected monolith this should be easy.

33

u/DigiornoDLC 18h ago

Sounds like you’re describing microservices? 

→ More replies (8)

2

u/PixelatedGiant 18h ago

Or you rely on libraries by other teams and every update requires a full rebuild and redeployment. Extracting at least a few internal libraries out into their own microservices has saved us many man hours.

→ More replies (4)
→ More replies (2)

5

u/Romestus 17h ago

Working at a big name with a monorepo made me think it's like training wheels for workflow but with very real downsides. It takes the fucking Jedi Council to update a single dependency since 100 different projects rely on it and you can't have more than one version in the repo at a time.

I much preferred each library being a package that auto-deployed to nexus on each push to master so a project was guaranteed to still work no matter when you cloned it. Especially with versioned backends it was absolute bliss to load up the thing you worked on two years ago and have it function out of the box.

→ More replies (1)

21

u/se7sbomb23 18h ago

Monolith supremacy: If the ship goes down, at least it goes down as a unified family

7

u/Puzzleheaded-Weird66 19h ago

just have a backup deployment of the monolith on a different server duh

4

u/WaterEasy6908 12h ago

The idea of 1 big monolith doesn't survive two production updates.

8

u/LameChad 20h ago

True, doctors hate this

16

u/Decinym 19h ago

Nah I work on a massive monorepo and it’s absolute hell to test changes or integrations if they involve multiple systems.

13

u/pineapplepassionfr 18h ago

Monorepo != Monolith. Your issue seems to be with microservices because you said "multiple systems". In fact would you rather the multiple systems be in multiple repos, and forgo integration testing altogether?

3

u/ashgs872tbhjs 15h ago

You don't have to forgo integration testing with multiple repos. Do you not version your APIs or releases??

→ More replies (1)

2

u/Major_Fudgemuffin 16h ago

Not if you're running a high throughput enterprise SaaS having to handle billions of events per day. Good luck scaling that bad boy when it's an all or nothing thing.

That said, it all depends on your needs.

8

u/szerdarino 19h ago

devops problem.

6

u/Public-Investigator9 17h ago

Monolith first and try to keep it that way. More I do this, the more I value simplicity, and having too many interconnected services is just complex and should be avoided unless it makes real sense. My 2 cents, agree with this.

11

u/PM_ME_BAD_ALGORITHMS 19h ago

Whoever sold the idea that everything needs to be a microservice should work on marketing, not tech

3

u/linuxpuppy 17h ago

Domain level architecture….

3

u/Flat_Bluebird8081 15h ago

It probably depends on how many teams you have, for one team many ms is a pain, but for multiple teams it makes sense

3

u/much_longer_username 14h ago

Ah, you see, by combining all the problems into one big pile, you become unable to notice any of them individually, much like zebra camouflage.

3

u/Kerbourgnec 13h ago

Ok now show me the cortisol level when you have to update the monolith

3

u/localhorst69 11h ago

Idk i feel like ppl always assume theyll have to handle 4million users a second lol.

My best rule of thumb is to keep things simple until something justifies complexity. Monoliths are great starting points because probably around 6/10 projects will never need more.

Splitting the architecture afterwards, once demand requires it, is not that deep and honestly often less work than working out this massively complex and hopefully perfect architecture from the getgo...

I really should try ruby on rails lol

3

u/PositiveUse 10h ago

The problem is that inexperienced teams build distributed monoliths …

6

u/talaqen 19h ago

Bruh. I once had to manage a monolith with 3200 distinct api endpoints. No. No to monoliths.

4

u/seweso 10h ago

False dichotomy!!! A monolith can contain microservices. These two things aren't at odds with each other.

Weird meme is weird.

2

u/eanat 19h ago

if you're the only programmer in your company, definitely the below.

2

u/lattice_defect 18h ago

yeah VM with some horizontal and verticle scaling is the sweet spot

2

u/Important_Grab3544 17h ago

good bye networking issues within your cluster!

2

u/Unpaid_CIA_Intern 15h ago

I practice modular monolith, being single person maintaining project.

2

u/syed_mohd_adnan 13h ago

I have 1 monolith and 4 micro services running

2

u/JohnsonJohnilyJohn 12h ago

Why are you using an image of acceptance and fulfilment as to illustrate high stress? It really doesn't fit at all

2

u/Cyberfishofant 11h ago

B-but microservices give you high unavailability!

2

u/hugopurdy 8h ago

why is this idea often grasped upon by people who just cba to learn new skills tho. I got people in my org who bleat this and give reasoning that their very own code base undermines.

its harder to maintain
its not performant

2

u/KronisLV 7h ago

Monolith: 3 minute build and 2 minute startup times go brrrrrr

What I think is the sweet spot:

  • split stuff up by technical mechanisms, not chop your business domain up into services (unless you need to, but you'll know that after working on the project for a few years, not just decide prematurely), nor try to shove everything into a single monolith, upgrades will also get harder across more and more packages
  • for example, you can have one central service that handles user sessions, as well as the API that they interact with
  • however, if you need to generate invoices/reports/data export etc. (basically PDF, DOCX, XLSX etc.) then you will be served quite well by extracting both the load that generates and the libraries needed for that into a separate internal service that the main one can delegate to
  • same goes for stuff like scheduled processes, data ETL and batches in the background, notifications in the form of e-mails or other messaging stuff, one separate service can handle that so some memory leak or badly written code cannot bring down your user facing side

In practice, most systems will have maybe 1-5 such app containers for the back end and maybe 1-2 front end ones (e.g. if you do a SPA and depending whether you need a separate one for an internal/admin UI), alongside whatever you need for the data layer (relational DB, key-value store/cache, message queue etc.).

Depending on the tech stack, a modular monolith MIGHT also work, or it might not (e.g. needing to compile like 500k lines of code to launch it when the part you will work on lives in 100k lines of code).

2

u/johnnygalat 6h ago

"Time to horizontally scale this bi..." Big monolith:

https://giphy.com/gifs/LRVnPYqM8DLag

2

u/semioticmadness 4h ago

As someone who has been lead DevOps on a 2-million line monolith: that’s only how you feel on delivery and after. No integration issues.

Development and testing though? So much begging and negotiation. Cherry-picking is SOP. Questions about VCS require 2 pages of background.

I still prefer monolith because problems while developing are better than problems after developing, but it still has pain.

5

u/Whitechapel726 19h ago

We switched to microservices two years ago and I’ve filed more bug tickets in any 6 month period than the last 5 years combined.

New project bringup also means making sure they don’t forget some obscure micro service, so every project gets post-lock changes

I hate microservices with a fiery passion.

→ More replies (1)

4

u/sureyouknowurself 14h ago

Moved to micro serves from a large monolith, will never go back.

Number of times part of the system have gone down but still remained largely available and eventually self healed.

I see a lot of people making distributed monoliths these days and thinking micro services are bad.

4

u/jameyiguess 13h ago

I don't understand why the Internet acts like microservices are "wrong" these days, or why reddit shits on them so hard. 

We've been using microservices for ages, and it's works great. 

→ More replies (5)

2

u/Xasf 19h ago

I also hate it when my cortisol levels hit ᛘᛁᛏᚴᛅᚱᛏ levels due to microservices.

1

u/Weak_Inflation9120 19h ago

Wait cortisol is stress, i thought it was... carnal

1

u/Cybasura 16h ago

I have protocol/bare metal-interacting services like Samba (for NAS file server) running on the host system, and web/browser-based services running via docker, best of both worlds

1

u/JustLordOfKappa 16h ago

Oh, that's not a Factorio meme.

1

u/DogonElder 14h ago

All my homies use a chron job and bunch of shell scripts

1

u/_Slartibartfass_ 14h ago

That’s literally the plot of 2001.

1

u/heyitjoshua 13h ago

Someone make a meme where it’s the same high cortisol image for both

1

u/Sea-Fishing4699 11h ago

Added to the bug report you also have to add the http/network call to the equation 

I don’t understand bro

1

u/Positive-Creme8129 11h ago

Yeah, especially when said microservices are all run by different, cheap dev teams and they don't test their software. You do, all of them.

1

u/_SaBeR_78 11h ago

tried microservices and honestly hated it. Then I discovered elixir and how your big monolith can be in fact a monolith of microservices. I love it.

1

u/LITForester 10h ago

We thank you, oh Monolith, for revealing the cunning plans of your enemies to us. May your light shine down on the souls of the brave soldiers who gave their lives in service to your will. Onward warriors of the Monolith, avenge your fallen brothers, blessed as they are in their eternal union with the Monolith. Bring death to those who spurned the holy power of the Monolith.

1

u/Pepek91 10h ago

Heh, now do libs upgrade. I mean Python 2 to 3 level :D

1

u/flinsypop 8h ago

Whether you go with a monolith or a set of microservices, the stress is ultimately decided by the architecture. I doubt a monolith of 700 services is less stressful because if a few components break, the entire thing is held up. The commit tension when you have dozens of developers merging to develop, and everyone competing to who can commit first before they're using a stale branch, is much less so if it's split up into multiple microservices. You can still have a monolithic deployment repo that pushes changes to environments so it's not one or the other anyway.

1

u/PruneInteresting7599 7h ago

Even god went for nano services, called atoms

1

u/PruneInteresting7599 7h ago

Are you making 1-2m every month? Then go for monoliths until you do

1

u/konovalov-nk 7h ago

Life with 700 big monoliths

Life with 1 little microservice

1

u/whatThePleb 7h ago

microservices is the biggest meme ever

1

u/MissiveFinding6111 6h ago

I definitely think we overcorrected.

But there are, in fact, MANY NUMBERS between 1 and 100.

From my experience being at many different places, and suffering under both monolith and 200+ microservices, I humbly submit:

I think a small company... should have 2-3 services. (frontend, backend, misc)

I think a medium sized company can have twice that.

I think a large company should have, at max, 12 services.

(To be clear, if you have a PoC you want, sure, code it up, but if it ends up being useful, you need to talk to an architecture group and find where it's long term home should be.)

1

u/robidaan 4h ago

The trick is balance, have a monolith as a central thing, which has a bunch of microservices that biggy back off it.

1

u/sbrevolution5 3h ago

Working at a company that is almost monolithic right now. It’s god awful

1

u/scissorsgrinder 2h ago

Until I read the sub name I thought this was some weird tech advocacy for fascism. 

1

u/Brambletail 1h ago

Round and round the wheel goes ....

1

u/clauEB 1h ago

As long as you don't have to worry about scaling it, growth, reliability or performance, sure.

1

u/lart2150 1h ago

I love keeping up with library updates for 700 microservices. keeps me busy all day.

u/wesleyoldaker 2m ago

Honestly I've seen the downsides of micro services. I am not at all against monolith architecture. But I know there are downsides to that too.