What is wrong with system designers these days? Are they designing or just selling?
What is wrong with system designers these days? Are they designing or just selling?
That's just for the operations of the local stores and we're now at probably >25,000 VMs and we've only touched the retail locations. We still haven't addressed logistics locations, corporate offices, stuff to manage their customer-facing applications and websites, etc.
When I first saw 40,000 VMs I too thought it was a bit excessive, but when you're an org wit several thousand locations that you want to be somewhat self-sufficient things add up quickly!
Its ok for Amazon to do it since they paid for the physical machines anyway and they want to dogfood their AWS services, it does not make sense for someone who rents compute and licenses.
Maybe each self-service checkout runs a VM, or each staffed checkout.
They wouldn't want to rely entirely on a remote database to be able to sell products.
I worked with a Danish retailer with +3000 store in ~50 countries, and even adding their webshop on top and they were closer to 200 (maybe 300) servers (most VMs). Then you need the ActiveDirectory, office IT, all that stuff, with redundancy and it adds up quickly... but not to 40K.
What I will say that people forget is that production might be 8 beefy VMs, you still need to replicate that to a number of test systems, staging environments and so on. So a 8 node production cluster because maybe 24 servers when accounting those other environments.
I can see how you hit 40k pretty quickly.
and dont forget that different countries have different rules about customer private data and payment information. if you send eu customer info into the uk for processing you might be breaking privacy laws. some places do automatic tax reporting where you need to send info to a country specific tax office api, get back a code and print it on the receipt.
cash registers dont work alone. its connected with inventory management, employee perf monitoring, payment processing and other things that make more sense as a store local service sending regular reports to corporate instead of waiting for round trips on every operation.
The days of manually setting up servers in hyperscaling-environments are long long gone.
Example: Your GitLab CICD needs Runners. They are dynamically requested "somewhere in our cloud somwhere in the world" and then spun up and configures fully automatically. No human touches this stuff anymore.