Что такое деплой простыми словами
Вы провели программирование для своего website и теперь стоите перед задачей, что следует предпринять дальше, чтобы ваше интернет-чадо появилось во Всемирной паутине. Ответ прост: для желаемого результата осталось сделать три шага:
- Приобрести доменное имя;
- Выбрать тариф хостинга, сделать настройку;
- Провести деплой.
Именно последнему пункту этого незатейливого плана мы хотим посвятить статью, подчеркнуть степень его необходимости. В переводе на русский язык deploy обозначает «развертывание». Нам остается разобраться зачем, как именно оно делается.
Что означает деплой простым языком и для чего он нужен
Обратиться к деплою это значит инициировать процедуру переноса веб-проекта на server. Процесс нелегкий, напрямую зависящий от используемых инструментов.
Websites не создают на удаленных платформах, для программирования разработчики используют свое локальное оборудование. Когда продукт создан, протестирован, появляется необходимость «перетянуть» его на сервер, провести настройку и запустить. После этого веб-проект станет виден всем пользователям.
Без процедуры развертывания код не попадет на server, а создавать его удаленно – сложно.
Что значит “деплоить” и что именно деплоят
Приложения, различные сервисы, проекты, находящиеся в сети, прошли в свое время деплоирование, то есть развертывание. Это касается ресурсов, размещаемых на внешних платформах, в локальных сетях, ориентированных на закрытую корпоративную коммуникацию.
Часто становится не обязательным деплоить все приложение. Речь может идти, например, о коммерческих разработках, где дополнительно необходимые функции могут быть написаны различными специалистами. В этом случае отдельно деплоятся законченные части.
Жизненный цикл кода: от создания до завершения
Для понимания сути обращения к деплою простыми словами опишем основную процедуру разработок в ИТ-лабораториях:
- Программируется совершенно новый продукт или часть уже имеющегося приложения. Действие производится на компьютере программиста.
- Данный этап – код-ревью. Готовый код загружается в репозиторий (в папку, доступную для членов команды). Там с ним могут ознакомиться другие разработчики.
- После успешного обсуждения или, согласно плану, принимается решение отправить материал в производство.
- Формируется релиз, публикуется объявление о готовящемся деплое, при этом код отмечается определенным тегом.
- В обусловленное время проводится деплой. Код поступает в производство, его начинают видеть пользователи.
Компоненты деплоя: что включает в себя этот процесс
Набор компонентов деплоя зависит от того, что планируется развертывать, какими при этом пользоваться инструментами.
Если действия планируется производить над статическим сайтом, без сложного бэкенда – загружаются новые файлы, обновляются старые, собирается весь ресурс. Такая же процедура проходит при изменениях в фронтенде.
Если планируется обновление бэкенда, серверной составляющей – дело усложняется. Следует подсоединить БД к написанному коду, объединить части приложения. Это может занять много времени.
После всей проделанной работы запускается свежая версия, останавливается старая.
Пошаговое руководство по деплою: этапы и их описание
Процесс деплоя включает в себя ряд этапов:
- Код отправляется на сервер: файлы попадают в рабочую среду (посредством Git);
- Проводится настройка зависимостей: имеющиеся файлы обновляются, там устанавливается связь с пришедшим набором символов, новшества вливаются в имеющуюся структуру;
- Проведение сборки, где все составляющие становятся единым проектом;
- Миграции, подразумевающие выполнение специальных команд для БД, подготавливающих ее к новшествам, обновляющим структуру;
- Завершающий этап – запуск. Устаревшая версия остановлена, новая – запущена. Это значит, что приложение заработало с учетом новых функций.
Автоматизация деплоя
Современные ИТ-тенденции не приветствуют действия, производящиеся вручную. Они занимают много времени, отнимают у программистов силы. Растет риск совершить ошибку. Для облегчения труда деплой просто переводят на автоматизированную основу. Это можно сделать одним из нескольких способов. Выбор зависит от комбинации технологий, масштабности проекта, имеющихся финансовых средств. Автоматизацию можно настроить:
- Через такие системы автоматизации, как Ansible, облачные сервисы;
- Посредством утилит, созданных для определенных библиотек, языков;
- Через платформы, управляющими контейнерами (например, Kubernetes).
С помощью других инструментов можно автоматизировать запуск, процедуру непосредственной сборки.
Степень проведения автоматизации разнится, может даже обеспечивать непрерывную доставку, позволяющую проводить автоматическое развертывание без участия специалиста.
Как избежать простоя: стратегия Zero Downtime
Выше мы упоминали, что для подключения новой версии необходимо остановить старую. Пока проходят все процедуры, сайт – в простое, им нельзя пользоваться посетителям. Для больших проектов такая ситуация критична, особенно, если его направленность коммерческого характера. Но имеются способы, помогающие этого избежать.
Вышеуказанная стратегия предлагает вариант, который позволяет не останавливать работу ресурса: запускать сперва новый вариант, и только потом останавливать старый.
За простотой слов кроется сложность решения. Чтобы не наделать ошибок, не спровоцировать конфликт, необходимо, чтобы оба варианта писались единообразно, БД с ними совмещалась. Дополнительно придется обратиться к автоматическим системам, которые должны контролировать запуск свежей версии, перенаправлять на нее трафик.
Заключение
Специалисты не рекомендуют новичкам браться за деплой, если имеют дело с коммерческой веб-площадкой. Это ответственная работа, поэтому ее лучше поручить DevOps-инженеру.
В остальных случаях задачу упростит, например, мультиязычная платформа Heroku. Хотя ее бесплатный сервис ограничен, но предоставляется возможность разобраться в деталях.