Как и где запустить приложение на нескольких машинах?

Суть такая, пишу веб-приложение на питоне, использую Flask. Необходимо, чтобы приложение было масштабируемым :)
Нужно запустить все это дело в связке nginx + uwsgi, причем на нескольких машинах.

Расскажите, пожалуйста, где взять машины и как все это запускается?

Спасибо.
  • Вопрос задан
  • 448 просмотров
Решения вопроса 3
sim3x
@sim3x
digitalocean
https://developers.digitalocean.com/documentation/...

1 дроплет с nginx: раздает статику и media распределяет запросы по upstream-ам
если статики много, то делаются отдельные машинки и поддоменами рапределют нагрузку

1 + N с uWSGI: при необходимости можно создать отдельный сервис, который будет мониторить нагрузку и из снепшотов поднимать еще

ПС: Лучше найми отдельного админа для такого
Ответ написан
valerium
@valerium
Изобретая велосипед
Вопрос несколько размыт, но вообще балансировка силами nginx делается с помощью модуля upstream. Согласованность между серверами бэкэнда зависит от архитектуры Вашего приложения, обычно это репликация на уровне базы данных. Где взять сервера зависит от потребностей проекта. Можно обойтись несколькими виртуалками (проще и быстрее всего), а можно брать (например, в аренду) несколько железных машин, соединять их сетью и так далее.
Ответ написан
@gimntut
Если совсем бесплатно, можно посмотреть в сторону codenvy.com.
Твой код (workspace) + docker + runner.
Количество workspace с твоими программами не ограничено.
Можешь запускать свой код на машинах с любой конфигурацией.
Количество конфигураций не ограниченно.
Можешь запустить одновременно несколько машин. При этом они могут быть одинаковыми или разными, и код на них может совпадать или различаться.
Один экземпляр запущенной машины - один runner. Можно запустить несколько копий одной машины. Ограничение одно - 20 гигабайт-часов в месяц (с недавнего времени). Т.е. можно запустить 5 машин с 4Гб ОЗУ и истратить всё за час или запустить 1 машину с 512 Мб на 40 часов.
Codenvy - это инструмент разработчика, поэтому предполагается, что компьютеры будут отключены, когда разработка не ведётся.
Для большого числа машин рекомендую поставить минимальный лимит на длительность работы машины. На случай если забудешь отключить сам вручную, они выключатся и сэкономят драгоценные гигабайт-часы.
Вторая проблема в том, что домен и порт руннеру присваиваются динамически, но их легко узнать через api codenvy.
Если лимит всё-таки будет исчерпан, то не составит проблем скопировать машины на другой логин: habrahabr.ru/post/195190
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы