Мы используем Heroku.Это великолепно.Я люблю это.Мы тратим на это несколько тысяч в месяц, между экземплярами и базами данных, и, как правило, не можем быть счастливее.Тем не менее, мы планируем новый проект, который потребует от нас достижения довольно агрессивных целей задержки - до 100 мс.
В настоящее время наше приложение на Rails 3 обрабатывает от 80 до 90% наших запросов на 100 мс, что измеряется новой реликвией.Учитывая, что мы должны достичь цели по задержке с точки зрения клиента, я собираюсь подстроить еще один 10% -й удар по этой норме успеха (таким образом, до примерно 3/4 запросов).
Да, на Heroku иногда случаются сбои в сети, которые могут вызывать задержки, но мы прекрасно связываем наш успех с Heroku, по крайней мере, в краткосрочной перспективе.
Если мы хотим достичь цели задержки 100 мс для 95% запросов, я вижу 3 варианта:
- a Оптимизация нашего текущего стека рельсов в Heroku
- b Перейдите на прямую AWS или другого хостинг-провайдера
- c Перестройте функциональность во что-то, что, как мне кажется, более уверенно, может достичь цели задержки.Вероятно, Ява.
a, очевидно, является основным кандидатом, но я уже снял низко висящий фрукт.Скорее всего, c, скорее всего, добьется успеха, но также потребует большую часть работы (большинство инженеров сегодня пришли из Java, поэтому у нас нет штрафов Ruby-> Java).Но b - это своего рода темная лошадка, где она может быть хорошей или плохой - я не знаю, как сказать, не испытав ее и не нагрузив тестирование, но, в сущности, это просто делает это и проверяет, было ли этоуспешно.
Я пытаюсь решить между ними или найти способ решить между ними.Любой совет?опыт?
* Большинство наших запросов не требуют от нас рендеринга html.