Подтвердить что ты не робот

Как один автомасштабируемый веб-динамик на Heroku?

С Heroku, как один AUTO масштабируется с точки зрения веб-динамиков, когда это необходимо? Скажем, каждые 2-3 минуты мы получаем 100 одновременных пользователей. Если наше приложение застряло на 5-6 веб-играх. Мы ввернуты.

Во-вторых, я не смог бы отслеживать трафик 24 часа, чтобы определить, требуется ли масштабирование вверх или вниз.

До сих пор я видел http://hirefireapp.com/ и http://www.heroscale.com/ Любые предложения об этих двух?

4b9b3361

Ответ 1

Причина, по которой герою не делает этого, заключается в том, что это невероятно сложная задача.

Например, представьте свой сценарий выше, вы внезапно начнете видеть формирование очереди и хотите развернуть динамики. Вы кричите еще на десять. Тем не менее, это не проблема с dyno, ваша база данных работает медленно, поэтому теперь у вас больше динамиков, все сидят в ожидании базы данных, которая теперь имеет еще больший спрос на нее.

Пока есть автомасштабируемые продукты, я не пробовал ни одного из них и полностью верю, что на данный момент только человек может сделать правильный вызов масштабирования. Ваш пробег может отличаться.

В прошлом я обнаружил, что настройка ресурсов на ожидаемый уровень использования (который может быть выше текущего использования) имеет тенденцию работать лучше всего, исключая массовый приток трафика (например, на Hacker News и т.д.)

Ответ 2

Я построил HireFire и хотел бы поделиться некоторой актуальной информацией:

HireFire позволяет автоматически масштабировать как ваши веб-мастера, так и рабочие на основе различных показателей. В настоящее время мы поддерживаем следующие источники/типы показателей:

  • HireFire (время отклика) | Web Dynos
  • HireFire (очередность заданий) | Worker Dynos
  • Heroku Logplex (время отклика) | Web Dynos
  • Heroku Logplex (запросы в минуту) | Web Dynos
  • Heroku Logplex (загрузка процессора Dyno) | Web Dynos
  • NewRelic (Apdex) | Web Dynos
  • NewRelic (Время отклика) | Web Dynos
  • NewRelic (запросы в минуту) | Web Dynos

HireFire (время отклика) выполняет базовый HTTP-запрос для измерения времени отклика.

HireFire (Job Queue) позволяет автоматически масштабировать ваши рабочие динамики на основе их размеров очереди. Вы настроите очень простую конечную точку на своем конце (для этого у нас есть RubyGem, но это можно сделать на любом языке с любой библиотекой очень легко). Мы будем периодически проводить проверки и масштабировать ваше рабочее динообразование соответственно.

Новая реликвия позволяет вам интегрироваться с New Relic. Он будет периодически получать обновленные метрические данные, такие как Среднее время отклика, Запросы в минуту и ​​Apdex, чтобы определить ваше формирование в Интернете.

Heroku Logplex - наше последнее дополнение. Этот подход зависит от ваших (и Heroku's) журналов. Ваши журналы будут переданы из Heroku Logplex в HireFire Logdrain, где он будет анализироваться для метрических данных. Это позволяет вам автоматически масштабировать свои веб-динамики более надежным способом, чем с HireFire/ResponseTime, поскольку он захватывает данные непосредственно с маршрутизатора Heroku. Этот подход не требует никаких внешних зависимостей, таких как New Relic.

Свяжитесь с нами, если у вас есть вопросы!

Ответ 3

Heroku только что запустил новый аддон, который делает автоматическое масштабирование. Веб-динамики только сейчас.

Посмотрите эту тему fooobar.com/questions/257302/...

Ответ 4

Я написал автоматический механизм масштабирования Heroku под названием Heroku Vector. Это позволяет вам масштабировать веб-и sidekiq-динамики на основе объема трафика, который вы получаете (вместо ожидания времени ожидания во время ответа):

https://github.com/wpeterson/heroku-vector

Вы можете запустить его как отдельный процесс dyno.

Ответ 5

По состоянию на январь 2017 года Heroku официально поддерживает автомасштабирование.

Автомасштабирование легко настраивается и используется, и он рекомендует использовать p95 порог на основе ваших приложений за 24 часа отклика. Автомасштабирование на основе ответа гарантирует, что ваше создание веб-dyno всегда для оптимальной эффективности, в то время как ограничение ваших расходов на основе установленных вами пределов. Автомасштабирование в настоящее время включено без дополнительных для приложений, использующих Performance и Private web dynos.

Вот документы: https://devcenter.heroku.com/articles/scaling#autoscaling

Вот объявление: https://blog.heroku.com/heroku-autoscaling