Назад | Перейти на главную страницу

Развертывание приложений с зависимостями

Это очень просто (вероятно, и действительно очевидно), но настолько простое, что в нем нет ничего. Могу ли я относиться к удаленному серверу Linux как к своему компьютеру при тестировании? Например, на моем компьютере я установил pip, а затем использовал его для установки Django и плагина. Могу ли я сделать то же самое на удаленном сервере Linux через ssh?

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

Могу ли я сделать то же самое на удаленном сервере Linux через ssh?

В общем да.

Тем не мение.

В серверной среде одна из самых важных вещей - это возможность выполнять действия по настройке и развертыванию таким образом, чтобы они были очень надежными и воспроизводимыми. Люди, будучи неточными существами, как и мы, очень плохо умеют делать что-то вручную надежным способом. Вот почему мы придумали такие системы управления конфигурацией, как Puppet, Chef и CFEngine.

Эти системы позволяют очень надежно развертывать конфигурацию на вашем сервере (ах). Кроме того, работа, необходимая для развертывания конфигурации на 1 сервере, более или менее такая же, как и для развертывания на 10 000 серверов.

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

Короче да.

При развертывании приложения обычно задействовано три (или более; см. Ниже) машины:

  • Машина разработки
  • Постановочная машина
  • Производственный сервер (ы)

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

Чтобы свести количество гремлинов к минимуму, мы обычно хотим, чтобы серверы были настроены как можно ближе к идентичным.

Таким образом, вы можете использовать ssh в каждой системе и устанавливать одно и то же программное обеспечение (и одни и те же обновления) на каждом компьютере, но в производстве у вас может быть более одного сервера (например, для балансировки нагрузки). Вы можете обнаружить, что ваше приложение становится популярным, и вам придется масштабироваться до сотен или тысяч серверов. Разве не было бы неплохо стать следующим Twitter и заработать миллионы долларов? ... (о, подождите.) Но вы больше не можете использовать ssh для каждого из них, чтобы применить свои обновления, если у вас несколько тысяч серверов или даже несколько десятков.

Именно здесь на помощь приходят системы управления конфигурацией, такие как Puppet и Chef. Они помогают вам, применяя идентичные конфигурации к большому количеству машин одновременно (см. Соответствующие сайты для получения дополнительной информации). Как только вы перестанете нуждаться в более чем одном сервере, вам будет очень полезно иметь систему, которая будет синхронизировать их всех и обновлять именно тем программным обеспечением, которое вы ожидаете, в именно той конфигурации, которую вы ожидаете.

Я думаю, что MultiSSH, написанный Linbit, может вам помочь: http://oss.linbit.com/multissh/