| The question is: will I be see a speed bump by moving off of Heroku? We're using Heroku. It's great. I love it. We spend a few thousand a month on it, between instances and databases, and generally couldn't be happier. However, we're scoping a new project that would require us to hit pretty aggressive latency targets -- sub 100ms. Currently, we're a Rails 3 app processing between 80-90% of our requests sub 100ms, as measured by new-relic. Given that we have to hit the latency target from the client's perspective, I'm going to fudge another 10% hit to that success rate (thus down to about 3/4 of requests). Yes, there are occasional network blips on Heroku that can cause latency, but we're fine tying our success to Heroku's at least in the short term. If we want to hit the 100ms latency target for 95% of requests, I see 3 options:
a) Optimize on our current rails stack in Heroku
b) Move to straight AWS, or other hosting provider
c) Rebuild functionality into something I feel more confident could hit the latency target. Probably Java. a is obviously the prime candiate, but I've already picked off the low-hanging fruit. c is probably most certainly the most likely to succeed, but also take the most work (most of the engineers today came from Java, so we don't have any Ruby->Java penalty). But b is kind of a dark horse, where it could be good or it could be worse -- I don't know how to tell without trying it out and load testing, but then, that's basically just doing it and seeing if it was successful. I'm trying to decide between them, or find a way to decide between them. Any advice? experience? *The majority of our requests do not require us to render html. |
But first, is there anyway you can measure where the time is spent in your application ? I know from profiling Java apps you often get great performance improvements from changing just a small amount of code.