That's a great blog post. Very transparent. I'm especially glad he's willingly giving up cheaper alternative for having more value from his services. I just would have liked some more details on what it means technically... :-)
Well, it's transparent about their costs, but I would have liked a little transparency about how they actually make money
Cost of serving billions of images per month
111–120 of 138 posts
Re: Cost of serving billions of images per month
#112Earlier quoted context omitted.
Don‘t underestimate the massive cpu power needed for scaling images at their request rate
Why would it depend on request rate rather than upload rate? Just pre-scale several variants on upload. Then run an MR job every now and then and delete the variants that haven't been touched for more than e.g. a month. Scale those on demand, store recents and frequently accessed pre-scaled. This is literally a few days of work.
Re: Cost of serving billions of images per month
#113The numbers being thrown around on this post are staggering. Not the bandwidth, storage or or the number of images —they're all pretty average for a small image host— but the casual tone that they're willing to throw money at services rather than engineering some quite simple problems. Seriously, I know I'm not in their shoes but I know what they do, I know popular options in these areas and I know they are literally…
Re: Cost of serving billions of images per month
#114Earlier quoted context omitted.
This reminds me of Soundcloud a few years ago when they were giving away API access for free for unlimited plays but then were almost close to bankrupt and pretty much shut down all API plays. I ended up shutting down my 3rd party app then but not sure what's their API limits now. Twitter recently made huge changes to their API limits too which impacted a lot of 3rd party apps. I hope Unsplash doesn't end up similar…
On the note of Twitter's restriction of API usage, Jack talked about it recently on the podcast Tales from the Crypt [0]. He doesn't give any specifics but attributes Twitters early struggle with uptime to unrestricted API usage [1]. [0] https://podcasts.apple.com/us/podcast/tales-from-the-crypt/i... [1] https://overcast.fm/+KiHpBJHGo/15:30
Of course, that was also critical to Twitter's success.
Re: Cost of serving billions of images per month
#115Earlier quoted context omitted.
Doing a cost benefit analysis and deciding that using a service instead of hiring and paying humans is a perfectly rational decision. I’ve downvoted because I see a lot of vitriol like this and it’s exhausting to argue each time that these decisions are carefully considered and work well for the people making them. This is no different from saying people should be ashamed because they pay so much for food, then it’s…
Being able to come to the decision that in-housing isn't good value, is of course possible. But they do it for everything. And they've been exhaustive enough in their breakdown here that it's trivial to any experience developer that they're spaffing money away. They're not in an all-or-nothing situation. There are so many individual elements that they could improve efficiency on and they're just not. And I think cook…
https://medium.com/unsplash/scaling-unsplash-with-a-small-te...
It's absolutely nothing for them to be ashamed of. We can all disagree with the decision and say that we wouldn't do the same, but we shouldn't call it a bad of shameful decision.
Re: Cost of serving billions of images per month
#116> We continue to use Heroku as our main web platform. Despite its premium cost over AWS, Azure, and Google Cloud, Heroku’s built-in deployment and configuration tools allow our team to move faster, more confidently, and more reliably. This is just bullshit, really. I'd buy this excuse from a service like Snapchat/Facebook in their early years, but unsplash is nothing that changes dramatically all the time. Every sing…
> They could easily save 60% on their monthly bill. That would enable them to hire 1 or 2 engineers capable of maintaining a few dozen servers on AWS, DO or GCP. If they reduce their bill and then hire engineers to do the same job they've gained nothing other than an increased headcount for no discernible benefit.
Re: Cost of serving billions of images per month
#117I’m stunned that a business of this size would still be using Heroku. Heroku’s sweet spot (to me at least) is for anyone with less than 3-4 servers. After that, it just becomes so expensive there’s no rationalization in the world that makes sense.
Moreover what if Heroku goes out of business? Then they’re f’d. Hosting on k8s, using Terraform or whatever would give them a lot of automation and provider independence.
And seriously, not everything has to be hosted on k8s, not everyone has to use Terraform, it's ok running your application on Heroku, DO or some other hosting. If Heroku goes out of business, you'll have a few months to preapre a migration plan. It's ok to handle it then, right now there are probably more important things for them to do.
Re: Cost of serving billions of images per month
#118Re: Cost of serving billions of images per month
#119Earlier quoted context omitted.
I’ve done exactly this. But not at any scale. But if they are specializing in this and with low margins, AWS is not the answer. The compute cost would be relatively cheap and possibly even the storage cost. I would think that the bandwidth costs would be expensive.
A friend of mine runs a site which uses aws s3 and lambda resizing, but cache is via BunnyCDN. His costs are low after moving from aws cloudfront, and he’s serving ~400m images a day. (This is run by a company of 2 staff) Just because everything is in AWS doesn’t force you to use all of AWS services.
Re: Cost of serving billions of images per month
#120Earlier quoted context omitted.
$50k/month comes out to $600k/year which is the cost around 2-3 engineers counting overhead. To manage infrastructure at that scale themselves they'd need someone who knows DevOps. To write services at that scale they'd need someone who knows backend engineering and micro services. Then they'd need to be able to have 24/7 on call rotations for when things break. And of course, like any rewrite it seems like a "couple…
600k year for 2-3 is only real in the silicon valley bubble. You could get just as talented of a team from a Nordic Country for example and only pay 120kish
Nope. You're forgetting the cost to the company is the burdened labor cost (https://en.wikipedia.org/wiki/Labor_burden), not just wages. Payroll taxes, benefits, office space and equipment, etc. can add another 30-40% to the cost of wages.