News for hackers. Stuff that matters.
Re:Uber migrates microservices to multi-cloud platform runni... by x86x87 on Sunday October 22, 2023 @10:10AM (#37975537)
Does Uber really need 4000 microservices?
Re:Uber migrates microservices to multi-cloud platform runni... by threeseed on Sunday October 22, 2023 @10:24AM (#37975650)
Uber is a global company (70+ countries) operating Uber and Uber Eats.

So almost certainly they are duplicating their entire stack per-country if only to get around the vastly different regulatory environments.

Re:Uber migrates microservices to multi-cloud platform runni... by id00 on Sunday October 22, 2023 @11:07AM (#37975988)
No, that's not correct (mostly). Services are written in the way to support global operations.

But that scale introduces a lot of complexity so you can't just have "one service for onboarding drivers"

Re:Uber migrates microservices to multi-cloud platform runni... by whatwhaaaaat on Sunday October 22, 2023 @11:35AM (#37976267)
Do you have knowledge of this?

I find this hard to believe given the regulations from some of the larger countries requiring, by law, customer data be processed in country.

Re:Uber migrates microservices to multi-cloud platform runni... by joneholland on Sunday October 22, 2023 @11:45AM (#37976370)
Deployments != unique codebases.
Re:Uber migrates microservices to multi-cloud platform runni... by whatwhaaaaat on Sunday October 22, 2023 @12:06PM (#37976589)
Try but read the full comment chain again to understand the context of our discussion.
Re:Uber migrates microservices to multi-cloud platform runni... by joneholland on Sunday October 22, 2023 @12:38PM (#37976865)
I did. Your concern about data needing to be isolated due to regulation doesn’t require you to make a complete copy of the code.
Re:Uber migrates microservices to multi-cloud platform runni... by whatwhaaaaat on Sunday October 22, 2023 @03:44PM (#37978425)
>“So almost certainly they are duplicating their entire stack per-country if only to get around the vastly different regulatory environments.”

Responding comment says no they are not and the services are built to handle global traffic.

I respond and say I doubt that due to on soil laws.

You can argue two regions with different configurations but the same code bases are different services but that’s not what we’re talking about here.

Re:Uber migrates microservices to multi-cloud platform runni... by jakewins on Sunday October 22, 2023 @12:44PM (#37976923)
I re-read the chain and don’t follow your argument.

Do you mean that your original point was about deployments to begin with?

FWIW I work in a microservices shop for a global app in an extremely regulation heavy industry, and we run a single codebase per service, segregating regulator-imposed behaviour via flags to deployments

Re:Uber migrates microservices to multi-cloud platform runni... by whatwhaaaaat on Sunday October 22, 2023 @03:47PM (#37978452)
were discussing if Uber has on soil deployments. Unless they are running afoul of on soil laws they likely do.

Your fwiw is exactly what we’re taking about here and I’d venture a guess nearly half this site works for some Corp with duck tape, hope, and micro services powering their junk. Me too!

Re:Uber migrates microservices to multi-cloud platform runni... by id00 on Sunday October 22, 2023 @03:45PM (#37978439)
Yep. There are might be some services that are entirely geo specific but I haven't seen them.

The same microservice that deployed in multiple geos still counts as one service, so considered to be 1 out of 4000 in this case.

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:36PM (#37979295)
It’s not just countries. I’ve used Uber across the US and you can look on the receipt and see different regulations in play depending on the city
Re:Uber migrates microservices to multi-cloud platform runni... by Isthatablackgsd on Sunday October 22, 2023 @01:01PM (#37977060)
I'm guessing it have to do with payment processors. I remember reading an article while back about why Uber app are large (100+ MB) that most of it is related to payment processors and taxes that it is operating globally.
Re:Uber migrates microservices to multi-cloud platform runni... by ninja3925 on Sunday October 22, 2023 @10:14AM (#37975570)
(Worked at Lyft) Our number of active micro services was small in comparison. 4,000 is likely a overblown number to highlight the accomplishment possibly counting inactive ones
Re:Uber migrates microservices to multi-cloud platform runni... by 0xblinq on Sunday October 22, 2023 @10:22AM (#37975631)
This guy promotions.
Re:Uber migrates microservices to multi-cloud platform runni... by drexlspivey on Sunday October 22, 2023 @10:57AM (#37975900)
Isn’t Lyft US only? Uber operates in 80+ countries
Re:Uber migrates microservices to multi-cloud platform runni... by zht on Sunday October 22, 2023 @11:16AM (#37976088)
Lyft also doesn’t do food delivery…
Re:Uber migrates microservices to multi-cloud platform runni... by latchkey on Sunday October 22, 2023 @01:42PM (#37977453)
Worked at Grab. They had a ton of micro services. It was their way of partitioning databases so that they didn't have to deal with joins. Yes, it caused a lot of problems.
Re:Uber migrates microservices to multi-cloud platform runni... by danpalmer on Sunday October 22, 2023 @10:15AM (#37975574)
A different (better?) question is, does Uber need 4000 API contracts?

The answer to that is probably yes. APIs let us split work across systems/people/teams/regions, and provide a way for both sides of a split to work together. Uber has a lot of teams, a lot of engineers, and so it makes sense that there are a lot of API boundaries to allow them to work together more efficiently. Sometimes those APIs make sense to package as microservices.

Re:Uber migrates microservices to multi-cloud platform runni... by davidw on Sunday October 22, 2023 @10:25AM (#37975652)
I wonder what setting up a local dev instance is like for anything involving more than one or two of those.
Re:Uber migrates microservices to multi-cloud platform runni... by threeseed on Sunday October 22, 2023 @10:29AM (#37975689)
I've worked on a couple of extremely large micro services projects.

And the thing is that nobody ever needs to run the entire stack other than end to end tests which get run in the cloud.

You just checkout the services you need and because they are designed to be isolated the dependencies will usually be automatically stubbed out. So it's just a matter of running them or chaining them together if you have a particular scenario to test.

Re:Uber migrates microservices to multi-cloud platform runni... by plonk on Sunday October 22, 2023 @10:46AM (#37975815)
Is there typically a “cold restart” plan to rebuild the whole infra from scratch? I’m thinking of things like circular dependencies when services boot.
Re:Uber migrates microservices to multi-cloud platform runni... by nurple on Sunday October 22, 2023 @12:06PM (#37976576)
I've found that the eventual consistency provided by orchestrators like k8s solve this problem rather well. If the services are written using the right paradigms to handle such a situation, they will also be much more resilient to platform disruptions.

I like to view k8s a lot like erlang's OTP, if something isn't right with the state of a service, I advocate calling 'exit()' and letting the restart with exponential backoff handle the transient.

Re:Uber migrates microservices to multi-cloud platform runni... by cma on Sunday October 22, 2023 @10:53AM (#37975874)
Nobody needs to if they can't possibly.
Re:Uber migrates microservices to multi-cloud platform runni... by x86x87 on Sunday October 22, 2023 @10:54AM (#37975878)
Question for you: how does performance measurement and optimization work in that environment? Is the key some sort of meta tooling that understands relationships between microservices? How would you express such relationships in the first place?

Q2: How do you ensure the stubbed deps behave like the real thing?

Q3: how do you handle logging and metrics in an unified way across the stack? And related to this: how do you ever get to upgrade services crosscutting concerns that ideally are not invented in every service?

Re:Uber migrates microservices to multi-cloud platform runni... by joshmanders on Sunday October 22, 2023 @11:19AM (#37976116)
Not OP, but I worked on a large microservices based system at a leading financial institute and when we needed to work on a single service, we had docker compose files that pulled the images needed for the dependency services of that service for us to develop what we needed. They all just ran in our local docker. If we wanted we could have a massive compose file with all services in it, but typically we only needed the iam service and a few other small ones depending on what services we were working on.
Re:Uber migrates microservices to multi-cloud platform runni... by eddtries on Sunday October 22, 2023 @12:21PM (#37976717)
Q2 - techniques like contract testing help here, beyond simple stubs. Also, mocked services maintained by the services original devs you can work against help
Re:Uber migrates microservices to multi-cloud platform runni... by oooyay on Sunday October 22, 2023 @12:45PM (#37976929)
> how does performance measurement and optimization work in that environment?

SRE here. Generally speaking, each API or each service will have a contract that it must adhere to depending on upstream and downstream relationships and their fail safes. Each service (or API) will then load test in isolation.

After that, if you want to be really sure about regressions (which would include fail safes) you load test the whole thing put together.

> Is the key some sort of meta tooling that understands relationships between microservices?

This is quite hard to do when you have a lot of transactions. I don't think there's commodity software that does this because you'd need to configure that software to map on keys, then map those keys to services. Generally, the easiest way is to get engineering teams to declare upstreams and downstreams.

> Q2: How do you ensure the stubbed deps behave like the real thing?

Generally, generation. Something like protobuf or Open API generation will do.

> Q3: how do you handle logging and metrics in an unified way across the stack?

You issue high level standards like, "We'll use JSON logging with UTC time formatting". At the end of the day logging is very contextual and in a service ownership model the service owners are usually the ones reading and alerting on their logs.

> And related to this: how do you ever get to upgrade services crosscutting concerns that ideally are not invented in every service?

Shared dependencies. I'm not actually sure what's a cross cutting concern; generally services that are this small should be designed to operate mostly independently. They're small, but "microservices" tend to have a lot of fail safes built in. If you're referring to how do we not write 4000 config loaders then there's usually a team that builds a very generic config loader and everyone or a majority use it.

Re:Uber migrates microservices to multi-cloud platform runni... by thakoppno on Monday October 23, 2023 @12:31AM (#37981656)
> JSON logging with UTC time formatting

perhaps simplest, biggest impact in my log life has been adhering these principles.

Re:Uber migrates microservices to multi-cloud platform runni... by gen220 on Sunday October 22, 2023 @08:46PM (#37980378)
I've worked at a place that architected 100s of microservices pretty well, in a similar way that Uber apparently does.

Q1: (perf) these tools exist, the buzzword phrase is "distributed tracing". The relationships are actually not explicitly defined for the tooling to work, but rather inferred. Visualize a network call as a call-stack, where each service is a level in the stack. Jaeger (a CNCF project addressing distributed tracing) was coincidentally started by Uber.

Q2 (stubs): In my experience, mocked responses get you a long, long way. Typically the API response type that you're mocking is generated from a protobuf (or thrift, OpenAPI, etc.) file. If your dependency changes that type in a way that breaks your test, the CI platform will let them know.

If it's a more subtle change (like, it used to deterministically return 18 and now it deterministically returns 20), it's really on the service owners to communicate changes and grep the code base before making the change.

Q3 (logging/metrics): Typically by using shared "logging" and "metrics" lib for each language. Every service will typically be a gRPC service and accordingly a standardized + generated-from-protobufs set of metrics to Prometheus, by default.

Q4 (how to upgrade common libraries): this is definitely a tricky one. The answer is, basically, really carefully. Typically, you'll want your infrastructure to be compatible with vX and vX+1, and give teams a deadline to cut over from logging X to X+1. The couple of weeks before that deadline usually involves a lot of cat-herding and handwringing.

Re:Uber migrates microservices to multi-cloud platform runni... by dboreham on Sunday October 22, 2023 @09:18PM (#37980550)
What you are imagining happens (it's not pretty).
Re:Uber migrates microservices to multi-cloud platform runni... by jameshart on Sunday October 22, 2023 @12:09PM (#37976613)
In general in a micro service environment, you try to build things so that 1) you don't need to run other things locally, and 2) if you did need to, the services are just containers so it's pretty easy to run one.

But you tend to try to write your service so that it treats everything else it depends on like a vendor-provided API. Like, if you were building a Slack bot, you wouldn't ask Slack to let you pull down and run a local copy of Slack's API to test against. You'd maybe set up a test account in Slack's production system, and run your local bot against that to test it before you deploy it with credentials to run against your real slack account.

In a microservice architecture, you integrate with other internal systems in the same way.

Re:Uber migrates microservices to multi-cloud platform runni... by magicalhippo on Sunday October 22, 2023 @12:45PM (#37976928)
We're not big on microservices, but we do integrate with a lot of other systems.

I find the opaqueness of other services to reduce development speed quite drastically. With local code I can view both sides of the fence and easily see if I'm using it wrong or if it's a bug in my colleagues code.

Seems that if you're constantly developing against opaque services you'd end up in the same quagmire quite quickly?

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:34PM (#37979286)
You shouldn’t care about anything outside of published contracts for dependencies. You’re slwags dependent on underlying APIs
Re:Uber migrates microservices to multi-cloud platform runni... by magicalhippo on Sunday October 22, 2023 @06:14PM (#37979573)
Of course I shouldn't.

But when things don't work as I expect, it's far more efficient to be able to view the code on both sides, rather than only on my own side and try to guess what the other side is doing.

Besides the usual suspect of wrong understanding on my end leading to misuse, this can also be due to lacking or wrong documentation of the other system, or bugs in the other system due to unexpected inputs or similar.

Like just a few days ago we spent an unreasonable amount of time with an API of one of our customers, where we would get empty list back for some of our queries. Turned out something in their service crashed when handed national characters, despite accepting JSON and hence UTF-8 input and nothing in the documentation about English letters only. Rather than returning 400 or 500, the service returned 200 with an empty list, leading us to assume we did something wrong.

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @06:35PM (#37979695)
> But when things don't work as I expect, it's far more efficient to be able to view the code on both sides, rather than only on my own side and try to guess what the other side is doing.

Are you able to view the source code of your platform vendor? Everyone is at some level dependent on Black box APIs.

If you can document where with certain input you don’t get the expected output, you reach out to the team that is responsible for it whether internally or externally and they either explain it or they fix it.

This is the API service I’ve been working with over the past five+ years - three actually working at AWS (Professional Services).

https://boto3.amazonaws.com/v1/documentation/api/latest/inde...

I found a bug in one relatively new API that a service team released, I reached out to the team with a documented scenario and they fixed it.

Other times they explained what I was doing wrong. That’s what any large organization does.

I’ve worked with other vendors and internal teams plenty of times over the years.

Re:Uber migrates microservices to multi-cloud platform runni... by gen220 on Sunday October 22, 2023 @08:50PM (#37980397)
This is exactly why the "microservices" pattern is usually adopted along with the "monorepo" pattern. IMO, it's a strong anti-pattern to have the former without the latter.
Re:Uber migrates microservices to multi-cloud platform runni... by fizx on Sunday October 22, 2023 @12:26PM (#37976764)
Something like https://tilt.dev/ where you spin up a subset of the service graph in a cloud environment that hot-reloads based on local edits.
Re:Uber migrates microservices to multi-cloud platform runni... by aeyes on Sunday October 22, 2023 @02:44PM (#37977945)
Looks like they are shifting away from local development: https://www.uber.com/en-CL/blog/devpod-improving-developer-p...
Re:Uber migrates microservices to multi-cloud platform runni... by maronato on Sunday October 22, 2023 @06:28PM (#37979655)
When you want to run a local version of a service, you start it locally as normal and configure either local stubs of dependencies and dependents, or you can hook up the actual “production” services to your local service process. If doing the latter, you can create special user accounts and events that change how the networking routing happens. Events from those fake users pass through regular production apps up until the service you’re testing, then they are instead routed to your local version, and you can continue the calls to other prod services.

Uber employees’ apps are special and allow us to log in as these fake users and create fake rides or deliveries, and then we can look at the traces and logs to debug and stuff.

Re:Uber migrates microservices to multi-cloud platform runni... by 4death4 on Sunday October 22, 2023 @10:49AM (#37975840)
> Uber has a lot of teams, a lot of engineers, and so it makes sense that there are a lot of API boundaries to allow them to work together more efficiently.

Isn’t that the premise of the question? Does Uber need so many engineers?

Re:Uber migrates microservices to multi-cloud platform runni... by joshmanders on Sunday October 22, 2023 @11:16AM (#37976089)
> Isn’t that the premise of the question? Does Uber need so many engineers?

The only people who can answer that are employees at Uber.

Re:Uber migrates microservices to multi-cloud platform runni... by christkv on Sunday October 22, 2023 @12:27PM (#37976769)
New unrelated databases, frameworks and queue services don’t write themselves duh
Re:Uber migrates microservices to multi-cloud platform runni... by lhorie on Sunday October 22, 2023 @12:34PM (#37976839)
Uber has several different APIs for users. A naive purist might think that's silly until you realize a rider is user, a driver is a user, a courier is a user, a restaurant owner is a user, a line cook is a user, a doctor's secretary is a user, a Uber employee is a user, a freight broker is a user, an advertising manager is a user... people can simultaneously be multiple types of users and have multiple profiles as a single type of user, and did I mention that you have to properly secure PII due to being in a high regulated industry? And that's just users.

Don't even get me started on anything money related :)

Re:Uber migrates microservices to multi-cloud platform runni... by parthdesai on Sunday October 22, 2023 @01:22PM (#37977272)
> a line cook is a user, a doctor's secretary is a user

I was with you on other types of users, but can you elaborate on these particular use cases?

Re:Uber migrates microservices to multi-cloud platform runni... by anon84873628 on Sunday October 22, 2023 @01:42PM (#37977445)
UberEats
Re:Uber migrates microservices to multi-cloud platform runni... by parthdesai on Sunday October 22, 2023 @02:02PM (#37977610)
Where does a line cook's use case fit in it? From what I know, uber eats sends a order to a restaurant, an employee manually punches in the order on their POS system, and the order ticket goes into the kitchen
Re:Uber migrates microservices to multi-cloud platform runni... by anon84873628 on Sunday October 22, 2023 @04:05PM (#37978612)
You don't think there are a variety of people at a restaurant who might interact with the system? Is this particular detail so very important to the point of the parent comment?
Re:Uber migrates microservices to multi-cloud platform runni... by edgyquant on Sunday October 22, 2023 @11:03PM (#37981131)
I think the parent comment tried to prove a point by making an extremely frivolous claim and naming every person they could think of as a “user” which means they are either wrong or they failed to adequately make whatever point they were trying to. Uber doesn’t need an api for line cooks, so using them as a justification for a large number or micro services was not rhetorically sound.
Re:Uber migrates microservices to multi-cloud platform runni... by piyh on Sunday October 22, 2023 @01:57PM (#37977578)
Plus there's a surprisingly high floor on the number of apis a large company needs for basic stuff like "set up new hires automatically in all the system needed"
Re:Uber migrates microservices to multi-cloud platform runni... by mitjam on Sunday October 22, 2023 @04:36PM (#37978859)
Microservices allow development orgs to scale horizontally which enables businesses to expand to adjacent markets, faster.
Re:Uber migrates microservices to multi-cloud platform runni... by dehrmann on Sunday October 22, 2023 @06:13PM (#37979568)
Static function calls are also API contracts.
Re:Uber migrates microservices to multi-cloud platform runni... by 0xDEF on Sunday October 22, 2023 @10:40AM (#37975768)
Yes, there are specific business rules for each nation, region/state, and city.
Re:Uber migrates microservices to multi-cloud platform runni... by talent_deprived on Sunday October 22, 2023 @10:25AM (#37975658)
I've seen at least one place with many more than that in recent years. If you have one microservice "listener" per queue and another for the database processing and persistence (business logic) and another providing an API for one or more frontend UI's related to it then the microservice tally goes up very fast. It's kind of surprising to read so many comments indicating HN readers weren't aware of this.
Re:Uber migrates microservices to multi-cloud platform runni... by herval on Sunday October 22, 2023 @10:46AM (#37975816)
sounds like a massive nightmare
Re:Uber migrates microservices to multi-cloud platform runni... by donutshop on Sunday October 22, 2023 @12:40PM (#37976885)
Massive scale*
Re:Uber migrates microservices to multi-cloud platform runni... by isbvhodnvemrwvn on Monday October 23, 2023 @02:59AM (#37982371)
Most are likely limited to some subdomain, with limited communication between domains.
Re:Uber migrates microservices to multi-cloud platform runni... by whynotmaybe on Sunday October 22, 2023 @10:23AM (#37975634)
There's quite a sizing range between monolith and microservice.

If all their It needs are behind micro "micro" services, that figure is understandable.

Outside of the map, taxi, food, payments, onboarding, they also have monitoring, deployment, HR, billing, legal, taxes, internationalized stufd, and the usual "..." for what I'm missing.

If you just take a standard ERP, you could easily split it in dozens even hundreds of microservices.

Re:Uber migrates microservices to multi-cloud platform runni... by bcrosby95 on Sunday October 22, 2023 @10:26AM (#37975662)
> If all their It needs are behind micro "micro" services, that figure is understandable.

I call them nano services.

Re:Uber migrates microservices to multi-cloud platform runni... by whynotmaybe on Sunday October 22, 2023 @12:04PM (#37976552)
And you're pinpointing to the problem with such news.

Everybody knows what is a monolith but nobody really knows what is the size of a "micro" service.

Just for taxes, do you make one service for taxes or one for each recipient of taxes? (In the EU, is it one for each country, in US, one for each state + federal ) with a different team managing each service?

Re:Uber migrates microservices to multi-cloud platform runni... by mirekrusin on Sunday October 22, 2023 @11:54AM (#37976452)
But how does your "..." sum up to 4000?
Re:Uber migrates microservices to multi-cloud platform runni... by belter on Sunday October 22, 2023 @10:16AM (#37975591)
Apparently they started at 1000 and went from there...

"What I Wish I Had Known Before Scaling Uber to 1000 Services" - https://youtu.be/kb-m2fasdDY

Re:Uber migrates microservices to multi-cloud platform runni... by speedgoose on Sunday October 22, 2023 @10:26AM (#37975665)
It reminds me this thread about Netflix, with insane amounts of events and logs compared to active users.

https://news.ycombinator.com/item?id=30635369

Re:Uber migrates microservices to multi-cloud platform runni... by ilrwbwrkhv on Sunday October 22, 2023 @10:45AM (#37975806)
Yup Pornhub serves much more video than Netflix and they do so without that insane amount of complexity.
Re:Uber migrates microservices to multi-cloud platform runni... by Roark66 on Sunday October 22, 2023 @10:57AM (#37975907)
Isn't pornhub free, their only monetization being ads? Also does Pornhub have personal recommendations, per country and region libraries, an android, ios and android TV apps? Probably not.

That is a much easier business model and a lot lower level of complexity than Netflix. I imagine running pornhub is essentially running a large website that hosts video. Probably just the billing side of Netflix is more complicated than the entirety of Pornhub operation.

Re:Uber migrates microservices to multi-cloud platform runni... by Nextgrid on Sunday October 22, 2023 @01:05PM (#37977089)
PornHub has significantly more content than Netflix, not to mention the ability for users to upload content and have it immediately available worldwide. That alone makes it significantly more complex than Netflix.
Re:Uber migrates microservices to multi-cloud platform runni... by x86x87 on Sunday October 22, 2023 @10:57AM (#37975903)
Pornhub is not about waving the engineering flag up and down to signal how cool their infra is though.
Re:Uber migrates microservices to multi-cloud platform runni... by mattsan on Sunday October 22, 2023 @10:50AM (#37975852)
Honestly Pornhub's stack is genuinely impressive. More start-ups should just use PHP and get shit done
Re:Uber migrates microservices to multi-cloud platform runni... by Nextgrid on Sunday October 22, 2023 @01:06PM (#37977103)
I think one of the reasons behind PornHub's tech stack is that their industry doesn't really lend itself to VC, so building an engineering playground for PH would be a waste of money as no amount of complexity would net them VC money (nor an invite to a cloud provider conference), where as most startups live and die based on the VC funding their complexity and buzzwords allow them to grift.
Re:Uber migrates microservices to multi-cloud platform runni... by plaguuuuuu on Sunday October 22, 2023 @05:57PM (#37979466)
I think the takeaway was that choice of language might be less important than engineering strategy, because PH are successful despite their choice of stack :)
Re:Uber migrates microservices to multi-cloud platform runni... by nvarsj on Sunday October 22, 2023 @05:31PM (#37979273)
Yup I remember that. Netflix seems to be the poster child for overengineered architecture - for something that is almost entirely commoditised nowadays (one-way over the internet video streaming).

Uber's problem space is significantly more complex than Netflix, so I'm unsure it's a fair comparison. But they do seem to have quite a lot of overengineering going on. At least that's how I feel each time I read an Uber tech article.

About the only companies which seem to justify their complex architectures are Google/Meta/Amazon imo.

Re:Uber migrates microservices to multi-cloud platform runni... by dilyevsky on Sunday October 22, 2023 @05:49PM (#37979407)
> Uber's problem space is significantly more complex than Netflix

What makes you say this? Netflix serves probably several orders of magnitude more bytes and online video is hard. At its core Uber is basically a Passenger Service System and we had systems like these implemented in software since 1950s

Re:Uber migrates microservices to multi-cloud platform runni... by isbvhodnvemrwvn on Monday October 23, 2023 @03:03AM (#37982390)
There are a lot more use cases in taxi and food delivery space than in video streaming. At least by an order of magnitude. Consider various user personas for one, legal considerations and so on. Technically each use case might be less demanding than video streaming, but overall much more complex.
Re:Uber migrates microservices to multi-cloud platform runni... by 0xblinq on Sunday October 22, 2023 @10:19AM (#37975613)
What would be the engineers doing otherwise? You get bored if you don’t.
Re:Uber migrates microservices to multi-cloud platform runni... by dkarl on Sunday October 22, 2023 @10:45AM (#37975804)
It's insane to hear attrition used as an excuse for architectural decisions, but I've seen it firsthand.
Re:Uber migrates microservices to multi-cloud platform runni... by x86x87 on Sunday October 22, 2023 @10:58AM (#37975911)
So we're going to get to the point where everyone gets their own microsevice, right?
Re:Uber migrates microservices to multi-cloud platform runni... by BigJono on Sunday October 22, 2023 @12:23PM (#37976726)
That is unironically a better way to do it than anywhere I've worked that does microservices.

My experience with microservice shops is you have one macromonolith with 50 people working on it (which has all the problems of a monolith and none of the benefits), 5 actual decent microservices with a team or individual that properly maintains them, and 100 random utility micro"services" that are like 3 lines of code, used by exactly one other service, and you need 40 loc and a network call to interact with them.

I'll take everyone has their own service any day of the week. At least when I need to interface with 12 different things I can have 12 different people to roast for not properly documenting their API. And tbh literally the only positive I can come up with for microservices is the ability to neatly fire one into the sun and rewrite it from scratch.

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @11:15PM (#37981200)
Isn’t that basically what happens when you split an API out to the different methods and write a Lambda for each one?
Re:Uber migrates microservices to multi-cloud platform runni... by barbazoo on Sunday October 22, 2023 @10:17AM (#37975597)
Maybe they meant instances.
Re:Uber migrates microservices to multi-cloud platform runni... by nine_zeros on Sunday October 22, 2023 @10:12AM (#37975553)
How else would engineers demonstrate "impact" for promotions?

/s

Re:Uber migrates microservices to multi-cloud platform runni... by zrail on Sunday October 22, 2023 @10:15AM (#37975580)
You jest but also you're not wrong.
Re:Uber migrates microservices to multi-cloud platform runni... by nine_zeros on Sunday October 22, 2023 @10:18AM (#37975609)
My own company has 800+ microservices. I am very familiar with the politics of microservices.
Re:Uber migrates microservices to multi-cloud platform runni... by 0xblinq on Sunday October 22, 2023 @10:21AM (#37975626)
Plot twist: the company has a total of 8 engineers and still not profitable.
Re:Uber migrates microservices to multi-cloud platform runni... by thakoppno on Sunday October 22, 2023 @11:02AM (#37975945)
My personal microservice fiefdom is about ten. My company probably has 1000. Is this ratio normal?
Re:Uber migrates microservices to multi-cloud platform runni... by nine_zeros on Sunday October 22, 2023 @11:50AM (#37976408)
Any more than 1 microservice per engineer (as in, 7 microservices for a 7 engineer team) is too much for engineers to handle during on-call incidents.

If management values business SLAs that is.

Re:Uber migrates microservices to multi-cloud platform runni... by mooreds on Sunday October 22, 2023 @10:48AM (#37975830)
I worked at a SV startup (series A) for a while and an EM once mentioned struggling to keep the number of microservices under the number of engineers.
Re:Uber migrates microservices to multi-cloud platform runni... by aitchnyu on Monday October 23, 2023 @01:15AM (#37981882)
Is there a compelling article about the ideal microservice to engineer ratio (ie less than 1.0)?
Re:Uber migrates microservices to multi-cloud platform runni... by mooreds on Monday October 23, 2023 @07:25AM (#37984139)
I don't know of one, but this thread has some interesting discussion: https://www.reddit.com/r/ExperiencedDevs/comments/x1p5gj/my_...
Re:Uber migrates microservices to multi-cloud platform runni... by wiseowise on Sunday October 22, 2023 @05:10PM (#37979125)
Dysfunctional organizations lead to absurd solutions to absurd problems.
Re:Uber migrates microservices to multi-cloud platform runni... by bastawhiz on Sunday October 22, 2023 @10:58AM (#37975913)
Uber has a really liberal definition of a micro service. Every web UI or dashboard is a service (of which there are many hundreds). Every application anyone builds across their many thousands of engineers is a service. It's rare, I think, for services to have fewer then a few thousand lines of code. In my experience, most companies would have a monolith that serves multiple UIs from the same service. Uber instead ships that monolith as a library which is a framework for building individual UIs. It has its pros and cons but I quite liked how they did it.
Re:Uber migrates microservices to multi-cloud platform runni... by justapassenger on Sunday October 22, 2023 @01:35PM (#37977392)
From experience working at big tech I’m willing to take a guess.

Maybe a couple of dozens will be actual more complex and meaningful services. Then few dozens more services that are somewhat more unique.

And then majority of the long tail will be mostly cookie cutter services, doing X, but for lots of different use cases, where each of use cases is separate deployment counting as a service (for example - systems to process streams of logs related to business logic).

Re:Uber migrates microservices to multi-cloud platform runni... by lokar on Sunday October 22, 2023 @10:43PM (#37981034)
The same binary with a different configuration
Re:Uber migrates microservices to multi-cloud platform runni... by jpalomaki on Sunday October 22, 2023 @04:37PM (#37978864)
There's an an interesting HN comment[1] from 2020 by former Uber engineer, which discusses the complexity a bit. It's more about UI, but the thread discusses the backend as well. In brief something that may look super simple for the user (like handling payments) is actually quite complicated when you cover all the market, different payment types etc. And all this carries to the backend as well.

[1] https://news.ycombinator.com/item?id=25376346

Re:Uber migrates microservices to multi-cloud platform runni... by lamontcg on Sunday October 22, 2023 @05:16PM (#37979163)
Do all of those need to be microservices or you could you instead have one monolithic payment service that handled all those use cases?
Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:28PM (#37979244)
And then every time you had a change, you would have to deploy everything and your surface of failure is greater.

What would a monolith buy you?

Re:Uber migrates microservices to multi-cloud platform runni... by jgraettinger1 on Sunday October 22, 2023 @05:42PM (#37979352)
Not having to evolve or understand or staff 4,000 micro services.

An ability to easily change the boundaries of your conceptual components, because they WILL be wrong now or in the future.

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:46PM (#37979378)
You still have to understand your boundaries when you have a large monolith unless you have one big ball of mud.

Even with a well constructed monolith, you need to have well defined “services” with contractual interfaces.

You don’t have to understand 4000 services to make one change anymore than I need to understand the entire boto3 library when I am building on top of it.

https://boto3.amazonaws.com/v1/documentation/api/latest/inde...

You can’t just change your interface in a monolith either without breaking other parts of it.

Re:Uber migrates microservices to multi-cloud platform runni... by a_vanderbilt on Sunday October 22, 2023 @05:52PM (#37979433)
Managing a numerically large set of services has its own challenges, but it pales in comparison to the complexity of a monolithic service serving the same functionality. As the other poster already pointed out, such a behemoth would be a nightmare to change at all. It would also be a scalability and and reliability nightmare. We migrated away from monoliths because they don't work in modern compute architectures.
Re:Uber migrates microservices to multi-cloud platform runni... by folmar on Sunday October 22, 2023 @06:08PM (#37979529)
It might be easier if you have the same API for payment microservices, but each different implementation in a different service, so approximately 100 times less distinct APIs than microservices.
Re:Uber migrates microservices to multi-cloud platform runni... by pc86 on Sunday October 22, 2023 @06:14PM (#37979571)
Of course you could, just like you could do this in 2000 less-well-defined microservices, or 8000 more finely-grained ones.

The question is what makes you think 1 service is immediately better than however many payment services there are now?

Re:Uber migrates microservices to multi-cloud platform runni... by lamontcg on Sunday October 22, 2023 @11:49PM (#37981413)
All other things being equal, 1 service is obviously better than 4,000 services to maintain.
Re:Uber migrates microservices to multi-cloud platform runni... by isbvhodnvemrwvn on Monday October 23, 2023 @02:21AM (#37982195)
Not that obvious, how do you coordinate people from dozens of teams working on it?
Re:Uber migrates microservices to multi-cloud platform runni... by MichaelZuo on Monday October 23, 2023 @08:10AM (#37984534)
IBM managed to coordinate several hundred people on a single software product for decades on end.

Even Microsoft managed to do so for multiple products while also stack ranking the teams.

And I doubt there's a single service, even payments, that's as technically complex as Excel.

Re:Uber migrates microservices to multi-cloud platform runni... by lamontcg on Monday October 23, 2023 @12:29PM (#37987989)
Do you really have 4,000 teams working on payments?

And I'd agree with the other child comment that the monolith can always be broken into separate components which are owned by different teams.

Re:Uber migrates microservices to multi-cloud platform runni... by s3p on Sunday October 22, 2023 @07:08PM (#37979894)
And what service would that be?
Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:21PM (#37979204)
And also certain states and localities have different requirements for ride share. I noticed this in NYC and Seattle
Re:Uber migrates microservices to multi-cloud platform runni... by deathanatos on Sunday October 22, 2023 @04:52PM (#37978983)
There's no way that number isn't fiction; Occam's razor say's its out of the range of believable. That's ~2 per eng according to Google. That's absurd. (That eng headcount is also a bit … high.)

This sounds like a figure from someone who sees a signle microservice running across 100 pods/instances, and counted that as 100 "microservices".

Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @05:37PM (#37979311)
S3 alone is built on top of 300 micro services. I don’t find it unbelievable that Uber needs a lot of them.
Re:Uber migrates microservices to multi-cloud platform runni... by zo1 on Sunday October 22, 2023 @06:21PM (#37979605)
I find it highly disturbing that so far I've seen Zero Uber devs on this thread adding any sort of context/info or just confirmation. Wtf is this, the NSA? KGB? Can't they just list/dump the names of said 4000 services, or is that somehow some sort of secret-sauce?
Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @06:45PM (#37979753)
A random engineer at any company is not going to divulged non public information about the inner working of their company without permission.

We had to sign something at AWS not to divulge internal tooling like what we used for our internal account factory that we used to create AWS accounts. Literally tens of thousands of people know what this tool is.

Re:Uber migrates microservices to multi-cloud platform runni... by x86x87 on Sunday October 22, 2023 @06:58PM (#37979832)
you see someone telling you how many microservices s3 has right above.
Re:Uber migrates microservices to multi-cloud platform runni... by scarface_74 on Sunday October 22, 2023 @07:03PM (#37979862)
Yes that “someone” was me - a former employee who couldn’t remember whether that information was public or whether it was something I was exposed to from the inside.

It in fact was public.

https://aws.amazon.com/blogs/storage/how-automated-reasoning....

I verified that before I posted that little tidbit.

Re:Uber migrates microservices to multi-cloud platform runni... by Game_Ender on Sunday October 22, 2023 @05:46PM (#37979383)
Uber invested heavily in tooling that makes creating and deploying a new service take about 30 minutes. This was before they invested in making it as easy to share code. If you combine that with fast hiring and a big pressure to ship, it makes sense to solve every problem with a new service that calls a few others.