Dropbox saved millions building a custom load balancer
newsletter.betterstack.com
newsletter.betterstack.com
"That's why I actually find this announcement really disappointing. Apparently Dropbox has been devoting significant resources for at least two years to a project that will no doubt have a positive impact on the bottom line but a minimal impact on the top line. It's all well-and-good (and honestly impressive) to announce 500 million registered users, but the reluctance to disclose both active users and especially the number (and size) of its business customers speaks even more loudly. How might have the product and company evolved if the company had continued to rely on AWS and devoted its resources to fixing its product-market fit problem?"
https://stratechery.com/2016/dropbox-leaves-aws-should-ups-a...
I prefer the current outcome to a swing for the fences.
Surely despite their business being storage, Dropbox would be foolish to design and manufacture their own hard disks?
It eventually stopped being a differentiating source of value, and trying to out-commodity the CSP’s on storage cost at scale seems like a bad strategy to bring value back to the product. At tremendous effort you make it possible to lower prices by 20% or whatever, in order to keep the same profit on an undifferentiated product. Who cares?
It seems Dropbox has an issue with execution. It already has a set of customers. They should be able upsell other things. They are trying with Dropbox Sign.
But other features like Paper and Photos don't seem to do well. Paper is deprecated, I think. Failing to expand to a doc-like saas is a very bad sign, when your customers use Dropbox to store documents.
This highlights a big issue in online discourse, the false dichotomy is everywhere. "why didn't they allocate resources in solving world hunger instead of uber for furbies" Because they chose not to, not because it was an either-or.
So, clickbait.
The entire thing is a terrible summarization of Dropbox's own blog post about the topic (linked elsewhere in this thread). Better to read that instead.
You can use whatever you want as criteria and then make the changes. https://www.haproxy.com/documentation/haproxy-runtime-api/re...
They did something similar at Reincubate to dynamically scale according to load.
I'm also surprised the article says that is took days to equalize usage, it's unclear, but hopefully this is just because the were rolling it out slowly?
> A quick note on our migration strategy It can be risky to switch load balancing strategies all at once. This is why we enable service owners to configure multiple load balancing strategies for a service in Robinhood. The LBS writes the weighted endpoints list generated by different strategies into different entries in the routing database. At Dropbox, we have a percentage-based feature gate, so we implement a mixed strategy where clients use the weighted sum of the weights generated by two load balancing strategies as the endpoint weight. For example, endpoint A might be weighted at 100 based on PID-based load balancing and 200 based on simple round-robin strategy. If we set the feature gate to 30% for PID-based load balancing, the weight of endpoint A becomes 100*0.3 + 200*0.7 = 170. This way, we can ensure that every client sees the same weight assignment for endpoints while gradually migrating to the new load balancing strategy.
https://dropbox.tech/infrastructure/robinhood-in-house-load-...
Not 1000.3 + 2000.7
(escape the *, or it bounds an italic section - *this* becomes this. \*this\* becomes *this*.)
Perhaps such designs should build progress indicators into the servers’ responses. If not visible (eg crytpo), maybe the response size is a hint where the error messages are always a specific, small size. The load balancer would then look for progress indicators or error signatures when assigning weights.
EDIT: It probably wouldn't be hard to home roll something like using HAProxy/Caddy APIs and Prometheus.
I'm curious why there isn't a discussion of "Power of Two" load balancers. They do a VERY good job getting close to near optimal load with relatively simple overhead. Vs something like what dropbox built which is a pretty heavy system
https://medium.com/the-intuition-project/load-balancing-the-...
So the clickbaity-title is just a thought of the author? I mean they haven't provided a range in which these savings have been made so they're probably right at one point but come on...
Actual blog article is https://dropbox.tech/infrastructure/robinhood-in-house-load-...
Add some complexity for scale and crashing load balancers
It's a great tar pit of Murphy's law and Hofstadter's law combined.