Uber Eats Canada Ran Production in a MacBook Air
twitter.com
twitter.com
Incidentally, the command to unlock the system keychain (eg in a cronjob) is:
systemkeychain -vt
That doesn't seem to be widely known, and is very useful for things like build jobs. ;)[1] Author link (includes link to source): https://www.intelliscapesolutions.com/apps/caffeine
[2] Original author link (stopped updating before OSX Mojave): https://www.lightheadsw.com/caffeine/
E.g. you can prevent sleeping until another process exists, or initiate sleep or shutdown.
while true; do ssh intern@eats.uber.ca 'find /var/log -type f -delete'; sleep 300; doneAt one point, the newer devops organization migrated to a bigger, beefier MySQL (this is when fast NVMe was first available in specialized EC2 instances).
Nobody remembered to migrate the cron script at that moment, so for about an hour I ran all of customer order flow with a bash script curling a public facing (yikes) url to initialize those jobs.
Hello, this is the German Coast Guard.
We are sinking! We're sinking!
What are you 'sinking' about?
So no surprise here really.
^[[^[[^[[^[[:wq^[[^[[::wq!^[[:wq!
Fix the underlying problem later — or don’t.
My memory is hazy as it was 18 years ago but I think it was due to some IP restrictions by banks and Amazon didn’t have tech to migrate IPs across machines.
Seemed to work ok, honestly. Our DB boxes, which do much more heavy lifting are not now (and weren't then) Mini's, or anything close, though, heh.
It is strange that they didn’t at least use a Mac mini, but I assume they already had the hardware.
Back in the early 00s I hosted websites on my local off the shelf Dell desktop on a cable internet connection.
Cloud computing wasn't really a thing and I didn't know better / have much better options (eventually I did migrate to some webhost bundled with the DNS registar).
For the longest time network bandwidth was my limiting factor. I remember finally upgrading my connection, NIC, etc. to the point where it was actually harddrive write speed that was the bottleneck.
Probably depends on your application but harddrive I/O does seem like a likely limiting factor to me today.
Also save for the fact that commodity hardware lacks a lot of the hardware safeties a server does. For instance, your m.2 under sustained load would not perform at the same rate that an enterprise server hard drive can; we're talking on an order of 180MiB/s vs 550MiB/s per drive. Once the m.2's cache is exhausted it will be comparable to a spinning disk in performance.
[1] https://us.macmillan.com/books/9781250096067/losingthesignal
I’ve found that modern developers almost always overestimate the amount of physical hardware needed to run things. I’m not sure why.
The interviewer didn't believe me.
I did the calculations in front of him.
This was the time, I just learned Rust.
I did the full analysis and showed him that QPS is great.
Of course, my design didn't include 500 microservices, 50 deployments of Hadoop, Kafka, Elastic, Mongo DB, and 500 slightly different dashboards that different teams in Lyft probably use. Most modern tooling in ZIRP phenomenen.
Someone's Hadoop experience - https://adamdrake.com/command-line-tools-can-be-235x-faster-...
Apple should really license the M architecture for servers. They could even have someone else manufacture and deal with delivering it. They're leaving free money on the table. I don't think it would cannibalize their Mac sales at all.
> I can't imagine trying to deal with 1m+ concurrent tcp connections. 2 million connections on a BSD mchine is doable though not trivial and that too even in 2012. https://blog.whatsapp.com/1-million-is-so-2011
Microwave means 0.3 to 300 GHz.
You should probably also keep your very expensive and sensitive space equipment at a safe distance from any microwave too, what I was trying to say I guess
The goal was to balance supply and demand of restaurants and orders.
Eats product didn't have any demand shifting levers at that time yet restaurants were getting blown up with demand at peak times (ex. top pizza restos at 7pm on a Friday).
The product did however allow ops teams to manually set a delivery radius for a given restaurant.
Clever ops teams scripted shrinking / expanding this delivery radius to encourage demand at non-peak times and reduce it during period where restaurants were overloaded and likely to ignore / cancel orders.
This laptop ran scripts for all cities in Canada to adjust delivery radii for each restaurant until a few different levers were built into product.
Ian (who is a _super nice_ guy) owned this process which kept things working smoothly while Eats was experiencing explosive growth.
Another fun fact - Eats Marketplace, which is the current Eats you see today, was built and launched in Toronto - SF engineers / product / design supported by Toronto ops teams. Quickly eclipsed the Instant Eats product which was the 3rd (and most successful to date) try by Uber at food delivery.
Sadly I've never had the chance to ask "Ah, are you ICMP compliant?" in response to a "ping me!"...
64 bytes from eventhorizon77: icmp_seq=1 ttl=64 time=31mJokes aside, I use it when I'm chatting (IM) with other net-ops people, it just basically means "get ahold of me however you think is best based on the urgency".
And for annoying friends in their meetings.