Live data from Hacker News

Ask HN: What's your biggest struggle with Microservices?

news.ycombinator.com

61–70 of 77 posts

Re: Ask HN: What's your biggest struggle with Microservices?

#61
post #47

Earlier quoted context omitted.

I see no problem in a "monolith" using different kinds of databases.

Sure, but peeling off something that has radically different scaling properties is easier if you put a "web service" in the way.

Still, based on what you're describing it was MySQL in your case that was the bottleneck. In that case you scale database, either by sharding or creating separate ones for different usecases. It is irrelevant to whether you use microservices or not.

Re: Ask HN: What's your biggest struggle with Microservices?

#62
post #26
post #14

Testing and debugging inter-service concerns. These, in my opinion, are inherently difficult to do when working with this architecture. In other words a lot of ugly real-world complexity hides in the space between the neatly maintained gardens that is the inside of a single service giving a somewhat false view that the problem has been successfully chopped up into small, compose and manageable pieces.

This is interesting. Can you provide an example - where it wouldn't have made sense to collapse two such interacting services into one? My understanding is that an important litmus test for carving up microservice boundaries is ensuring 'true' isolation/separation of concerns. Admittedly, I don't have enough practical experience to know if this is a misguided assumption.

Someone here mentioned a great rule of thumb that addresses most of issues here: one team = one service.

Re: Ask HN: What's your biggest struggle with Microservices?

#63
post #47

Earlier quoted context omitted.

I see no problem in a "monolith" using different kinds of databases.

Sure, but peeling off something that has radically different scaling properties is easier if you put a "web service" in the way.

I don't understand why putting a web service in front of mysql and a key value store makes scaling easier. Would you mind explaining?

Re: Ask HN: What's your biggest struggle with Microservices?

#64

Earlier quoted context omitted.

One rules of thumb is "one team one service". If you have multiple teams working on a service then it might start making sense to migrate to multiple microservices.

That's a nice rule of thumb but it's radically different from the team I work on. We run half of one logical service (visible to users outside the team), but that logical service is implemented with a dozen or more microservices internally. We have user-facing services which need high priority, different flavors of batch jobs which need to be orchestrated and prioritized, and various other pieces of infrastructure. T…

Yeah I could totally see how if you have very strict uptime requirements and you want to allow different pieces of the infrastructure to be able go down at different times then it's an exception to the rule.

Just for every team that I see that has a good use case for micro services, and does the hard work of instrumentation and deployment, I see 8 teams that go with microservices because they think it's a magic bullet. Then they don't spend the time and effort necessary to get instrumentation and orchestration up and running. They don't aggregate logs, they don't spend the time to create defined contracts between the services, they don't make services robust to the failure of other services. They just complicate their debugging, deployment, uptime, and performance scenario without getting any of the benefits.

Re: Ask HN: What's your biggest struggle with Microservices?

#66
post #14

Testing and debugging inter-service concerns. These, in my opinion, are inherently difficult to do when working with this architecture. In other words a lot of ugly real-world complexity hides in the space between the neatly maintained gardens that is the inside of a single service giving a somewhat false view that the problem has been successfully chopped up into small, compose and manageable pieces.

I've found (the hard way) the same thing.

Testing of individual microservices in isolation is insufficient. Interaction between services has to be tested as well (because real APIs never work exactly as documented/mocked). Proper integration tests aren't any easier than testing a monolith.

Re: Ask HN: What's your biggest struggle with Microservices?

#69
post #13

We started with a monolith which made determining service boundaries that much easier. What we struggled with the most is the concept of sharing data between services. We started off with publish/subscribe method which quickly became very strenuous to maintain. Ended up switching to plain service-to-service communication over HTTP/S. This allowed us to focus on resiliency and performance of each micro-service more so…

"Ended up switching to plain service-to-service communication over HTTP/S."

That statement assumes this picture:

  ServiceA -> Network (https) -> ServiceB
I'm curious, what happens to the message being sent from ServiceA if Network or ServiceB is down?

Re: Ask HN: What's your biggest struggle with Microservices?

#70
post #13

We started with a monolith which made determining service boundaries that much easier. What we struggled with the most is the concept of sharing data between services. We started off with publish/subscribe method which quickly became very strenuous to maintain. Ended up switching to plain service-to-service communication over HTTP/S. This allowed us to focus on resiliency and performance of each micro-service more so…

detrimental?

instrumental is the right word lol :)
Post reply on HN