Создавая стабильный, кластер сервера приложений автомасштабирования

У меня есть два сервера, каждое выполнение где угодно от 50-100 различных веб-приложений прежней версии, записанных на языках в пределах от PHP к Python к Ruby на направляющих к NodeJS.

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

С этой целью я хочу сделать следующее:

  • Удалите любые теперь обесцениваемые проекты прежней версии
  • Поиграйте в песочнице каждое приложение так или иначе, возможно в его собственного Докера или Пассажирский контейнер
  • Создайте новые серверы как автомасштабирование кластер не сохраняющий состояние, переместив каждую базу данных MySQL в ее собственный экземпляр RDS
  • Возможно даже смогите автомасштабировать неактивные приложения способом, подобным тому, как Heroku делает

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

Я честно немного поражен всем этим и действительно не уверен, где запустить. Какие-либо предложения? Пассажир - что-то, что я должен даже рассматривать? Докер?

Спасибо!

4
задан 5 September 2014 в 12:46
1 ответ

Я не совсем уверен, что это за вопросы. Ваш общий вопрос довольно расплывчатый. Здесь у вас есть три основных вопроса из того, что я могу собрать:

  1. Где мне начать создавать свою собственную масштабируемую инфраструктуру PaaS?
  2. Является ли Пассажир чем-то, что я должен рассматривать?
  3. Является ли Докер чем-то, что я должен рассматривать?

Сначала я отвечу под номером 3, так как это проще всего. Ответ: Да. Если вы собираетесь строить что-то новое, Docker поможет вам попасть в более портативный мир, что, в свою очередь, поможет вам достичь более масштабируемой точки. Ваши старые веб-приложения будут работать как свои собственные контейнеры, с собственными наборами зависимостей, и таким образом станут более портативными.

Ответ на номер 2 звучит более зависимо от Ruby и приложений Ruby в целом. Сможете ли вы запустить Passenger? Может быть. Это кажется более зависимым от того, как было написано приложение и с какими серверами оно может быть совместимо. Тем не менее, кажется, что Phusion делает успехи, чтобы быть очень Docker дружественным. У них есть образы Docker конкретно вокруг запуска приложений Ruby, Python и Node.js как минимум - https://github.com/phusion/passenger-docker.

Моим ответом на номер 1 будет начать с контейнеризации устаревших приложений. Сделайте приложения более двенадцатифакторными (http://12factor.net/), если это еще не так. Сделайте их более ориентированными на обслуживание. Вместо того, чтобы запускать такие вещи, как MySQL, Redis, Apache, PHP-FPM и т.д. в одном контейнере, разделите их на различные сервисы, которые соединяются друг с другом по TCP и HTTP (Докерские ссылки были бы отличным местом для начала - https://docs.docker.com/userguide/dockerlinks/).

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

Если вы еще этого не сделали, посмотрите на вещи, которые приходят чуть раньше, чем полномасштабный Docker PaaS, такие как https://coreos.com/ или http://www.projectatomic.io/. Что-то вроде этого дает вам планирование вокруг ваших собственных контейнеров / единиц, а не на самом деле построить ваши контейнеры приложений для вас. Для обучения в процессе разработки вы можете использовать что-то вроде http://www.fig.sh/ или http://decking.io/. Отлично подходит для локального тестирования ваших новых контейнеров, ориентированных на обслуживание.

Для получения более подробной информации о Docker, следите за https://stackoverflow.com/questions/18285212/how-to-scale-docker-containers-in-production. Верхний ответ имеет довольно хороший обзор того, что в настоящее время находится в их распоряжении, и автор держит его достаточно хорошо.

.
5
ответ дан 3 December 2019 в 03:17

Теги

Похожие вопросы