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?
Ask HN: What's your biggest struggle with Microservices?
71–77 of 77 posts
Re: Ask HN: What's your biggest struggle with Microservices?
#72Earlier quoted context omitted.
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?
#73The easiness to develop a single service makes many engineers loose focus on the big picture. Without an proper architecture and governance in place, larger microservice projects tend to fail pretty fast and in horrible ways.
Re: Ask HN: What's your biggest struggle with Microservices?
#74Re: Ask HN: What's your biggest struggle with Microservices?
#75One big challenge I've found is the balance between standardization vs autonomy. E.g. monitoring, log formats, deployment, service discovery, etc are things that can benefit from being standardized across all services, but implementing it can be tricky. Too much autonomy and you end up reinventing the wheel (inevitably with variations) - too much standardization (e.g. by providing centralized libraries) can make deve…
Re: Ask HN: What's your biggest struggle with Microservices?
#76Earlier quoted context omitted.
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 bulle…
It's also a lot easier to prioritize process scheduling than it is to prioritize thread scheduling.
Re: Ask HN: What's your biggest struggle with Microservices?
#77Earlier quoted context omitted.
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?
One table is small in terms of data but involves an interactive service that might generate 50 updates/sec at peak times.
With the "hot" service implemented on top of a key-value store, the database is the ultimate commodity, I have many choices such as in-memory with logging, off-heap storage, distributed key-value stores, etc.
The service is not "in front" of MySQL, but is on the side of it so far as the app is concerned.