Что такое автодеплой или Как автоматизация упрощает жизнь разработчикам
А вы знали, что в Гугле нет ни одной статьи (по крайней мере, на первых пяти страницах выдачи), которая бы конкретно отвечала на вопрос «Что такое автодеплой?». Хотя нет, теперь такая статья есть – вот она!
От обычного деплоя к автоматическому
Для начала разберемся, что такое деплой вообще. С английского “deploy” переводится как «развертывание». И это целый комплекс действий, которые делают программный продукт (например, веб-приложение) готовым к использованию: выпуск, установка, активация, адаптация, обновление, исправление ошибок и т.д.
Но как все это выглядит на практике? Давайте разберемся на простой схеме:
- У вас есть исходный код программного продукта.
- Из него вам нужно получить исполняемый код (этот процесс называется сборкой или билдингом).
- А потом исполняемый код нужно поместить на сервер, где он будет работать (это и есть деплой).
Или вот такой жизненный пример. У вас есть детали мясорубки: лезвия, болты, винтики и т.д. Это исходный код. Вы собираете детали в цельную конструкцию – это уже код исполняемый. А затем прикручиваете собранную мясорубку к столу и начинаете перемалывать продукты – вот теперь это деплой. Как вы «разворачиваете» мясорубку в среде кухни, так и приложение нужно развернуть в определенной среде (сначала – тестовой, а потом рабочей и эксплуатационной).
Развертывание при помощи автоматизированных решений и называется автодеплоем. Алгоритм действий при нем ничем не отличается:
- Берем рабочий код из репозитория.
- Переносим его на наш сервер и адаптируем.
- Запускаем код на новой машине.
Для автодеплоя, используются CI/CD системы (CircleCI, Jenkins, Drone, TeamCity и т.д.).
Основные преимущества автодеплоя
- развертывание сразу в нескольких средах;
- повышение надежности и предсказуемости развертываемого ПО;
- минимизация ошибок, связанных с человеческим фактором;
- снижение затрат на развертывание;
- упрощение рабочего процесса (не нужно нанимать команду высококлассных специалистов, с автодеплоем справится и небольшая группа сотрудников без узкой квалификации);
Но главный плюс для разработчиков заключается в глобальной оптимизации развертывания. Вместо того чтобы вручную переносить коды, они могут сосредоточиться на качественных характеристиках продукта и в сжатые сроки довести его до ума. А приятным побочным эффектом становится повышение конкурентоспособности бизнеса. Приложения, использующие автодеплой, практически всегда более качественные и доработанные, чем обычные. Да и пользователям не приходится долго ждать обновлений или исправлений багов – эти процессы тоже автоматизируются. Но сама идея автодеплоя более глубокая, чем одно лишь использование автоматических скриптов.
Другие важные принципы автодеплоя
- Кооперация – для достижения наивысших результатов автодеплоем должны заниматься не отдельные специалисты, а группа, все участники которой взаимодействуют между собой.
- Унификация – в идеале для развертывания приложения в разных средах должен использоваться один и тот же скрипт.
- Стандартизация – все параметры развертывания нужно проверять по единому шаблону.
- Внешнее конфигурирование – параметры, которые будут различаться в разных средах, можно задавать сразу и единожды.
- Гибкость – в конфигурационных файлах можно использовать переменные окружения.
Ничего не напоминает? Да, все верно. Автодеплой с его тягой к автоматизации и кооперации при работе с программными продуктами – это прямая отсылка к методологии DevOps. И обязательная практика для разработчиков, которые стремятся добиться непрерывного развертывания приложений.