Even if you only sipped the microservices kool-aid, I can easily see dozens of services.
Granted, it seems reasonable that a handful of monoliths could get the job done. Without having worked at HelloFresh, I'm inclined to think there's more to the story that we don't know. Maybe there's a good reason to have as many services as they do.
Next time, I want to ask them how they keep track of all those services!
edit: replaced an incorrectly-used idiom
Computers are awesome at automating things, that goes for dev tooling as well.
If you’ve touched the ITSM space you’re used to managing and maintaining many thousand of assets. A few hundred microservices is nothing, really.
My team use what you could call a simplified CMDB (configuration management database) which is cross referenced against the service discovery.
The cmdb keep info about every service, such as persistent data-sources, vm’s etc, but most important - relationships: domain, team, services and resources.
A microservice is basically a ”ci” (configuration item) with a managed lifecycle.
Log shipping is what we do from thousands of servers already (you should at least!), adding a shipper for a few 100 containers on a set of hosts is no big deal.
Fluent(d/bit) -> some kind of elastic? There are a few resonable patterns available that works and scales pretty well.
Failures and issues with the actual code - well I might have been lucky... DDD with somewhat senior devs where no spaghetti action takes place. The tooling we keep usually seem to pinpoint issues fairly well.
We’re on the scale of roughly 40 devs and my team of 3 support them with tooling that handles service lifecycle and operational stuff.
It let’s us be pretty fluent with what and how teams build and iterate stuff. I guess it requires a certain scale and experience though.
Or maybe we're in a tech bubble and if you want engineers, you have to acquiesce to their demands of working with the latest shiny tools while they create mountains of technical debt, because if you don't, they'll just go to another startup that allows that behavior, or they'll go twiddle their thumbs at a FAANG while banking $300k+ total comp for their 5-years of experience.
I'm not trying to say one could replicate this business with a few scripts, but it sure as hell doesn't need a service mesh that looks like a mutated SARS-CoV3.
All of those systems need each other's information. The shop needs to know if a product is available, and what price it is. Customer Service needs to know how it was sent and the tracking code etc,...
We've built hundreds of microservices to manage this. This is definitely not something that is easy in a monolith. (We came from a monolithic architecture, we're really happy we're now using microservices).
We're now also rolling out Istio on GKE. So who knows, they might be on to something at Hello Fresh.