Friday, October 28, 2011

Where to run your background jobs for free?

Until now, Google App Engine was widely seen as the perfect solution to running jobs on the cloud for free.
It is indeed powerful and convenient, offering for instance cron and task queue APIs.

I have been using GAE a lot for not-for-profit projects I am involved in, and was enchanted. The dream will end in 3 days, as this email from Google told me:
"As part of Google's long-term commitment to App Engine, we are also updating our policies, pricing and support model to reflect its status as a fully supported Google product"
In 3 days, GAE will get more expensive. Many applications will switch from the free zone to the paying zone, and they have 4 options:
- Pay
- Make the jobs faster, by writing smarter code or reducing the scope.
- Let the jobs unprocessed after quota is reached, which might be acceptable for some apps.
- Switch to an alternative service.

Under the new pricing, GAE offers 9 hours of backend instance, but most jobs will run into another limit much sooner: only 50.000 database writes are OK is the free zone. So, is it time to switch to Celadon Cedar stack to benefit from Heroku's new pricing ?

PaaS offerCPU timeDatabase operations
Google App Engine9 hours50.000
Heroku720 hoursUnlimited

The CPU time is not directly comparable, but that's still quite a difference. So, where's the catch? Well, on Heroku you either have free frontend OR free backend. If you want one worker dyno for free, you must use zero web dyno. The consequence is that implementing any kind of web interface to control your delayed_jobs is a real challenge.

No comments: