Процесс завершения завершения кода функции или исправления ошибок из среды разработки в ваши веб -серверы — это развертывание веб -программного обеспечения. Мы развертываем код различными способами, более десяти лет назад мы использовались для загрузки наших файлов с помощью протокола передачи файлов (FTP). Я бы не стал рассматривать копирование файлов с машины разработки на веб -сервер формой автоматического развертывания, в то время это было необходимым злом.
Если вы все еще используете FTP, как 22% Непальские разработчики сделали в 2015 году, вам нужно двигаться дальше. В этом посте я кратко упомяну несколько инструментов развертывания и попытаюсь проанализировать их плюсы и минусы. Тем не менее, поскольку заголовок гласит лучший инструмент автоматического развертывания, который наилучшим образом соответствует вашим потребностям.
Что такое автоматическое развертывание?
Развертывание веб-приложений требует некоторых предварительно определенных шагов, которые должны быть выполнены, чтобы изменения программного обеспечения были отправлены из среды разработки в стадию/производственную среду. Это сделано для того, чтобы изменения были доступны для клиентов/пользователей для использования новых функций, разработанных инженерной командой. Если некоторые или большинство частей процесса развертывания являются ручным, это не является автоматизированным развертыванием. Например, если вы SSH в своем сервере и сделаете GIT, его нельзя считать автоматизированным процессом развертывания.
Автоматизированное развертывание-это форма развертывания, в которой определенные шаги для доставки кода из среды разработки в стационарную/производственную среду являются одноступенчатой процедурой и полностью или частично автоматизированы.
На мой взгляд, автоматизированное развертывание — это агностическая потребность в языке/структуре для каждого приложения, поскольку оно экономит много времени. Это может быть один из первых шагов к полезной культуре DevOps. Как команда разработчиков, так и системы администратора/Devops может работать вместе для автоматизации вещей. Он также откроет двери для дальнейшей автоматизации, такой как непрерывная доставка, например, ваши тесты передают сервис CI, и код может быть автоматически развернут на ваших стажированных серверах.
Автоматизированные характеристики развертывания
У него должны быть следующие характеристики:
Это может быть вызвано только одним действием, например, одной командой в командной строке, и выполнит задание.
Шаги будут предварительно определены, воспроизводимы и предсказуемы.
С самого начала до конца до конца мало или нет.
Это должно показать прогресс развертывания, как это происходит, лучшая обратная связь
Это должно быть атомным, что означает, что все шаги выполнены, либо ничего не происходит.
Хорошо иметь особенности
Некоторые хорошие, чтобы иметь функции для автоматических инструментов развертывания находятся
Он должен быть в состоянии развернуть один и тот же код на несколько серверов
Каждое развертывание должно быть сделано из данной филиала/тега/коммита системы управления версиями (VCS), такая как GIT
Это должно запустить уведомления в форме сообщения электронной почты/чата
Каждый должен иметь возможность просматривать Какая филиала/тег развернута
Когда развертывается, оно должно остановить другие развертывания, чтобы начать
Откат последнего развертывания должен быть легким и быстрым.
Бесплатные инструменты доступны
Давайте посмотрим на бесплатные инструменты, доступные, если вы начинаете автоматизированное развертывание, уходящее от своих ручных методов:
- Капистрано — написано в Ruby
- Ткань — написано на Python
- Мина — написано в Ruby
- Ракеттер — написано в PHP
- Развертыватель — написано в PHP
Итак, какой из них мне выбрать?
Я не могу дать вам четкого победителя из вышеуказанного выбора, это будет зависеть исключительно от ваших потребностей. Я могу кратко описать два инструмента, которые я использовал. Я использовал Капистрано и Ткань Анкет Давайте посмотрим, как они отличаются.
Капистрано
Capistrano, написанный в Ruby, существует как инструмент автоматического развертывания в течение многих лет, он довольно стабилен и поддерживает множество языков и рамок от Symfony до Nodejs и т. Д. Вы можете получить больше информации об этом от этого подкаст и официальный док .
Хорошая вещь о Capistrano — это то, что у него уже есть определенное поток о том, как развернуть приложения.
Если вы можете понять поток Визуально Анкет Вы можете узнать, как сделать/отредактировать рецепт и структурировать ваши задачи, которые вы выполнили. Еще одна хорошая вещь о Capistrano, поскольку он сохраняет версии выпусков и делает коммутатор Symlink, когда текущая версия готова. Откат быстр, потому что это просто переключатель символики на непосредственную старую успешную развернутую версию кода.
Ткани
Ткань, написанная на Python, также является старым игроком в домене автоматического развертывания. Чтение это Документы настоятельно рекомендуется. Вы также можете получить сценарии развертывания для некоторых приложений. Основное отличие в том, что ткань больше похожа на удаленную команду.
Вы получаете чистый лист, чтобы структурировать процесс развертывания, как вы хотите по сравнению с Capistrano. Вы можете написать свои команды развертывания и запустить их в желаемой последовательности.
Это дает вам свободу структурировать процесс развертывания. Вы выбираете последовательность задач, которые вы хотите для процедуры развертывания.
Другие инструменты
Как правило, другие инструменты основаны на развертывании в стиле Capistrano, некоторые говорят, что они быстрее, чем Capistrano, потому что они выбирают команды SSH и запускают их один раз. Основная идея не меняется. Я не могу лично поддержать любой другой инструмент, так как я использовал их самостоятельно.
Что дальше
Если вы уже делаете автоматическое развертывание, вы можете посмотреть на это еще проще, например, развертывание из интерфейса чата, такого как Hipchat или Slack. Это называется Чаты где можно указать боту развернуть приложение. Если вы не хотите идти по пути чата, вы даже можете создать веб -интерфейс, чтобы запустить развертывания, такие как Самсон Zendesk.
Если у вас есть тесты, вы можете даже исследовать непрерывную доставку.
В 2018 году я бы предложил взглянуть на Docker Анкет
Комбинация Docker, Kubernetes и Хелм может сделать процесс развертывания очень плавным.
Однако раннее предупреждение, настройка Docker, K8s и Helm может занять у вас некоторое время. Время и ресурсы, проведенные в будущем, дадут более высокую прибыль, особенно для более крупных команд.
Вывод
Вы решите выбрать правильный инструмент развертывания, который соответствует вашему языку/структуре, приложениям и потребностям команды. Попробуйте выбрать инструмент, который будет хорошо выполнять работу и может использоваться в течение длительного времени без существенных проблем.
Если вы хотите развернуть большое приложение, хотите, чтобы стабильность и структура были для более безопасного варианта, такой как Capistrano. Если вы только начинаете с автоматизированного развертывания для меньшего приложения и хотите автоматизировать развертывание с использованием пользовательского использования потока для ее гибкости.
Выберите правильный инструмент и начните с автоматическим развертыванием. Покажи пока, чтобы ФТП и сделать SSH на сервер, тогда Git Pull Origin Master
Анкет Давайте начнем!
Первоначально опубликовано в geshan.com.np Анкет
Оригинал: «https://dev.to/geshan/the-best-automated-deployment-tool-is-the-one-that-fits-your-needs-3o8»