Hacker News new | ask | show | jobs
by reasonishy 3959 days ago
Alternative:

* Spin up a VPS somewhere for a few dollars a month.

* Install thumbor

3 comments

Sounds good till you get to maintenance and scaling. Thumbor isn't as install and forget if you value being able to recreate the environment from scratch, scale out, rotate and secure the keys, solve tmp directory issues, ensure availability etc...

Having just finished several months of working with and tweaking thumbor for a large volume website I can see how just paying for a service would be appealing.

Would you mind sharing some detail about the issues you had with tmp dirs and availability? I deployed Thumbor a few months ago and it's been pretty much install and forget. I'm curious about what issues I might have in future as it scales.
Sure. For the record the Thumbor cluster I was working on needed to have 100% uptime and be configured to mitigate any potentially DDoS situation even if the secret key was leaked. It also needed facial detection and GIF (animation) resizing support.

The tmp directory is never emptied unless you restart the machine. So to get around this you have to write a cron job to remove the older downloaded and resized images. However in my load tests this caused issues with Thumbor and so I ended up having the cron job only delete files over a certain age. However this still leaves the possibility that Thumbor could fill up the entire disk and crash the machine.

Other issues were having the ability to rotate the Thumbor key. This is somewhat supported by Thumbor, in that the previous keys images will still be available but the key rotation is not done for you. I was using AWS so stored the key in a protected s3 bucket and gave roles access to pull the key and when it detected it was modified restart Thumbor.

The last an main issue was the ability to spin up a new version of Thumbor itself. In the time it took me to get it from development through to production the dependancies changed so much that facial detection broke halfway though. I fixed this initially by freezing the pip dependancies but then the underlying dependancies caused issue at a later day. In short I was unable to spin up a new version which was identical to the previous. Generally were I work we tear down and spin up fresh instances all the time so this was an issue. We resolved this by installing Thumbor in a docker container.

Don't get me wrong. A big fan of Thumbor and it was the right solution for what I needed to do but these issues really made myself and others considering paying a 3rd party for a while.

Thanks for elaborating, I appreciate it. I don't think my installation is getting enough load to see these tmp issues yet, but good to know what I might have to deal with in future. I agree that with so many dependencies, Thumbor is a great candidate for deploying with Docker.

Btw, I didn't realise you were the searchcode.com guy, great site!

If you happen to restart now and then it shouldn't be a huge issue.

Yes thats me! Thank you!

Thumbor isn't as install and forget if you value being able to recreate the environment from scratch, scale out, rotate and secure the keys, solve tmp directory issues, ensure availability etc...

Nothing is install-and-forget if you value those things, because valuing those things is the opposite of wanting install-and-forget software.

True.

But if someone is asking to pay to take away the pain the probably do value some of those things, hence paying for some install and forget service.

I've been running it for months without issues. Yes every so often it fills up the /tmp directory - setup a cronjob or something, but it is basically install and forget.

(My install gets maybe 10-20 requests a second, so maybe I'm at the low end of usage I don't know, but it works fine for me).

It depends on if you ever need to recreate it. I was checking my ability to spin up a thumbor instance a few months after deploying it only to discover that it was not possible using the deployment scripts I had even with frozen pip requirements.

For comparison the thumbor instance I am working with does thousands.

A better alternative is a simple wrapper over s3, and some lambda scripts generating resized images. No issues with scaling, and reasonably priced.
I like this idea. Any pointers for some lambda scripts that do this?
My alternative is a digital ocean VPS with a nodejs server with the ImageMagick module. Super easy to use, but I'll say thumbnor looks like a good solution too. Thanks for the link!