Деплой — это процесс размещения готового программного кода на сервере или в интернете, чтобы другие люди могли им пользоваться.
Например, вы создали программу для рисования котиков. После проверки работоспособности вы опубликовали ссылку на неё в открытом доступе. Это и есть деплой. Теперь пользователи могут зайти по ссылке и увидеть котиков.
Деплой позволяет получить доступ к программе. Как только разработчик опубликовал приложение на сервере, пользователи могут получить к нему доступ из любой точки мира через интернет. Это позволяет протестировать приложение в реальных условиях и обнаружить ошибки, которые не были выявлены во время разработки. Кроме того, деплой упрощает поддержку приложения: можно исправлять ошибки и вносить изменения, чтобы пользователям было удобно работать с программой.
Существует несколько способов деплоя, которые позволяют обновлять приложения и сайты без сбоев и с минимальными рисками.
Разворачиваете новую версию сайта, параллельно тестируя её на небольшой группе пользователей. Если всё хорошо, то новая версия становится основной. Этот способ подходит для крупных проектов, где важно минимизировать риски. Например, вы обновляете сайт крупной компании. Сначала запускаете новую версию для небольшого числа пользователей, чтобы проверить, как она работает. Если всё хорошо, то новая версия становится основной.
Это две версии приложения: старая (Blue) и новая (Green). Пользователи видят только одну из них. Когда новая версия готова, вы переключаете трафик с Blue на Green.
Представим, что вы разрабатываете новый дизайн интернет-магазина. Вы создаёте всё на «зелёной» версии. Когда вы уверены, что всё работает, вы перенаправляете всех пользователей на Green. Если вы обнаружите ошибку, вы можете легко вернуть всё на «синюю» версию.
Однако, есть и недостаток: поддержание двух версий сайта требует больше ресурсов.
Преподаватели с большим опытом работы объяснят все сложные концепции простыми словами и на примерах, чтобы вы точно всё поняли. Если у вас останутся вопросы, вы всегда можете задать их в общем чате группы, куратору или преподавателю лично.
Процесс деплоя состоит из нескольких последовательных шагов, которые помогут вам аккуратно и без проблем перенести приложение с разработки на сервер.
- Это размещение готового программного кода на сервере. Для этого можно использовать один из двух способов:
- Вручную через FTP. В этом случае необходимо скопировать все файлы с компьютера на сервер.
- Автоматически через систему контроля версий (Git). В этом случае нужно отправить код в Git-репозиторий, после чего хостинг автоматически обновит сайт или приложение на сервере.
- Обновление баз данных.
В приложениях всегда есть база данных (БД), в которой хранится информация о пользователях, товарах, заказах, сообщениях и других данных. Если в логике приложения происходят изменения, необходимо обновить структуру БД, добавив новые таблицы, изменив названия полей или перестроив связи между данными.
Например, если на сайте было добавлено поле «Дата рождения пользователя», необходимо добавить это поле и в базу данных, иначе программа будет выдавать ошибку.
- Завершение работы старой версии программного обеспечения и запуск новой.
Перед тем как опубликовать новую версию кода на сервере, необходимо обновить базу данных и отключить старую версию программы. В некоторых случаях это делается резко: одна версия выключается, другая включается. В других случаях процесс происходит плавно, так что пользователи почти не замечают перехода. Главное, чтобы сайт или приложение продолжали работать, и клиенты не столкнулись с пустым экраном.
Например, можно временно отключить веб-сервер или показать пользователям сообщение об обновлении приложения. После завершения всех изменений можно запустить новую версию приложения, и клиенты снова смогут работать.
Автоматизация.
Чтобы не выполнять все изменения вручную каждый раз, можно настроить автоматизацию. Как только вы загружаете обновления в репозиторий, например на GitHub, система автоматически переносит код на сервер, обновляет базу данных и запускает новую версию. Это позволяет сэкономить время, снизить риск ошибок и сделать процесс деплоя быстрым и удобным.
В случае небольших проектов обычно деплоем осуществляется самим программистом. Он пишет код, проводит тестирование и затем вручную или автоматически загружает его на сервер.
В более масштабных проектах деплоем обычно выполняется специалистами по DevOps. Они настраивают процесс таким образом, чтобы он проходил быстро, автоматически и без ошибок. Специалисты по DevOps не занимаются написанием логики сайта, а отвечают за её доставку на сервер. Кроме того, они следят за работой серверов, обеспечивают безопасность и стабильность системы.
Иногда над деплоем работают несколько человек. Разработчик пишет и тестирует код, специалист по DevOps настраивает автоматическую доставку на сервер, тестировщик проверяет всё перед запуском, а менеджер по продукту или руководитель команды даёт разрешение на публикацию. Это особенно важно в крупных проектах, где ошибка может привести к серьёзным последствиям.