We use Geroku. It's great. I love it. We spend on it several thousand a month, between instances and databases, and generally can not be happier. Nevertheless, we are looking at a new project that will require us to strike fairly aggressive latent targets - up to 100 ms.
We are currently processing Rails 3 applications between 80-90% of our requests up to 100 ms, as measured by the new relic. Considering that we must hit the target audience from the client’s point of view, I’m going to release another 10% hit on this successful bid (thus, up to about 3/4 of the requests).
Yes, there are network failures on Heroku that can cause latency, but we perfectly connect our success with Heroku, at least in the short term.
If we want to hit the 100 ms delay target for 95% of requests, I see 3 options:
- a Optimization on our current rail stack in Heroku
- b Move to direct AWS or another hosting provider
- c Rebuild functionality into something that I feel more confident may hit the target of the delay. Probably Java.
a, obviously, is the main candidate, but I have already taken off the low-hanging fruits. c will probably most likely succeed, but will also take on most of the work (most engineers today came with Java, so we don’t have any penalty for Ruby-> Java). But b is the kind of dark horse where it can be good, or it can be worse - I don’t know how to say it without trying it and not loading the test, but then that I basically just did it and saw it, it was successful.
I try to decide between them or find a way to solve between them. Any advice? experience?
* Most of our requests do not require us to display html.
source share