3

Мы создаем масштабируемую облачную службу websocket, работающую в Amazon. Я ищу лучшую стратегию автомасштабирования и балансировки нагрузки для использования с нашими экземплярами API websocket.Лучше AWS автомасштабирование и стратегия балансировки нагрузки для приложений для веб-приложений

В настоящее время наша политика автомасштабирования просто основана на использовании ЦП, например, «когда средний процессор> 80% - запускает больше экземпляров, когда CPU < 30% - остынь», но я чувствую, что этого недостаточно. Поскольку соединения с веб-сайтами являются долгоживущими, добавление большей емкости, очевидно, не поможет текущим экземплярам, ​​которые уже перегружены. В идеале, я хотел бы иметь некоторую метрику, такую ​​как «среднее количество TCP-соединений» в дополнение к использованию процессора для автомасштабирования, а также возможность переноса соединений из перегруженных экземпляров в новые. Под «передачами соединений» я не имею в виду сохранение какого-либо состояния, но просто отбрасывание некоторых из перегруженных экземпляров и предоставление клиентам возможности устанавливать новые в новые экземпляры, равномерно распределяя соединения по всем узлам.

Может ли кто-нибудь поделиться опытом или предложить хорошее чтение о лучших практиках для запуска масштабируемых приложений веб-приложений в AWS?

+0

Какой замечательный вопрос! Прошло некоторое время с тех пор, как вы отправили сообщение, и, поскольку никто не ответил, вы теперь являетесь лидером отрасли :-) Было бы здорово поделиться с вами своим опытом. – user924272

ответ

-1

Что касается подключения к совместному использованию, я предлагаю вам прочитать страницу 9 из best practices doc. Надеюсь, это поможет.

-1

Это нелегко ответить любому человеку, не взыскивая гораздо больше информации. По существу, что вы спрашиваете, is Основы проектирования для шкалы в облаке.

Ответ на ваш вопрос - собрать больше данных.

Я знаю, что, вероятно, вас раздражает, что это не просто ответ, но я обещаю вам, что это лучший ответ, который вы собираетесь получить здесь. Эффективность вашего решения будет определяться вашей способностью собирать больше данных. Но эй! самое лучшее в этой отрасли, все ТОЧНЫЕ данные есть, если вы не спешите, угадайте работу не будет.

Возвращайтесь и собирать:

  • Информация о том, что используются вид работы нагрузок, только партия как обработка? или много GETS или общая передача данных? чтение/запись?
  • Что такое поведение пользователя?
  • Как выглядит типичный пользователь с точки зрения данных, нарисовать нам изображение.
  • Какие варианты использования наиболее часто используются внутри вашего приложения?
  • В зависимости от вашего WebService слоя, собрать все журналы HTTPd
  • Co-связывает это с cloudwatch/AWS лесосечного
    • объединить все ваши журналы инфраструктуры, журналы приложения, система, событие
    • Посмотрите на модель, распознавание образов - это то, что мы делаем лучше всего, определить достаточно шаблонов, и вы разработаете лучшую систему.