Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
24 Апр 2025
6 мин
22

Что такое деплой (deploy) и для чего он нужен

Пройдите тест, узнайте какой профессии подходите

Разработчик делает сайт или приложение, всё классно работает. Но пока об этом продукте никто знает. Чтобы показать проект миру, нужно сделать одну

Что такое deploy

Deploy, или развертывание, — это готовый код, который размещают на сервере или в интернете, чтобы им могли пользоваться другие люди. Например, вы написали программу, где можно рисовать котиков. Проверили, что всё работает, и «выложили» ссылку в общий доступ. Это и есть деплой. Теперь люди могут зайти по ссылке и посмотреть на котиков.

Для чего нужен деплой

Деплой дает доступ к программе. Как только разработчик выложил приложение на сервере, пользователи сразу могут зайти в него из любой точки мира. Нужно только подключиться к интернету. С деплоем можно протестировать приложение в реальных условиях. Проверить, как оно работает на сервере. Так увидите ошибки, которые не выскочили во время разработки. А еще после деплоя приложение легко поддерживать. Исправлять ошибки и, если нужно, изменять, чтобы пользователям было удобно работать.

Способы деплоя

Есть несколько вариантов деплоя, которые помогают обновлять приложения или сайты без сбоев и с минимальными рисками.

  • Big bang deployment
    Вы обновляете всю систему за один раз: останавливаете старую версию и сразу запускаете новую. Такой способ часто используют в небольших проектах или когда нет возможности тестировать разные версии. Например, вы разрабатываете новый сайт для ресторана, в понедельник утром меняете старую версию на новую — все сразу видят изменения. Минус такого способа в том, что если есть ошибка, то она появится сразу у всех пользователей, а вернуть старую версию будет сложно.
  • Rolling Deployment
    Обновляете сайт постепенно, по частям — сначала для одной группы пользователей, потом для другой и так далее. Так можно не отключать старый сайт и спокойно проверить новую версию. Например, вам нужно обновить приложение для онлайн-игры на десяти серверах. Сначала обновляете два, проверяете — всё работает. Потом ещё три и так далее. В итоге все серверы обновлены.
  • Blue-Green Deployment
    Это две версии приложения: Blue — старая, Green — новая. Пользователи видят только одну. Когда новая версия готова, переключаете трафик с Blue на Green. Например, вы делаете новый дизайн интернет-магазина. Готовите всё на «зеленой» версии. Когда уверены, что всё работает, направляете всех пользователей на Green. Если нашли ошибку, легко возвращаете всё на «синюю». Минус в том, что нужно больше ресурсов, чтобы поддерживать две версии сайта одновременно.
  • Canary Deployment
    Сначала показываете новую версию только для небольшой части пользователей, например для 5%. Смотрите на ошибки, отзывы, метрики. Если всё ок, увеличиваете охват. В итоге новая версия есть у всех. Например, вы добавили новую кнопку в приложении. Сначала она появляется только у 100 человек. Потом у 1000. Всё нормально? Тогда включаете всем.

    Пройдите курс «Веб-разработчик» в онлайн-университете Skypro. Научитесь деплоить, писать код на JavaScript, использовать системы контроля и отслеживать изменения в коде, работать с HTML и CSS. Опытные преподаватели объяснят все сложные термины простыми словами и на примерах. У вас не будет шанса не понять. А если всё равно останутся вопросы, можете задать их в общем чате группы, куратору или преподавателю лично.

Этапы деплоя

Есть несколько последовательных шагов — с ними сможете аккуратно и без проблем перенести приложение с разработки на сервер.

Этап 1. Перенос готового кода на сервер

Переносите новую версию приложения на общий сервер, где оно будет работать. Это можно сделать вручную через Протокол передачи файлов (FTP) — просто перекидываете файлы с компьютера на сервер. Или автоматически через Систему контроля версий (Git) — отправляете код в Git-репозиторий, хостинг автоматически обновляет сайт или приложение на сервере. Например, вы разработали новый сайт на своем компьютере. Теперь копируете все файлы сайта: картинки, коды, настройки — и загружаете их на сервер, который будет показывать сайт пользователям.

Этап 2. Обновление баз данных

В приложениях всегда есть база данных (БД). В ней хранится информация о пользователях, товарах, заказах, сообщения и многое другое. Если что-то поменять в логике приложения, нужно обновить и структуру БД: добавить таблицу, изменить название поля или вообще перестроить связи между данными. Например, вы добавили на сайт поле «Дата рождения пользователя». Теперь нужно, чтобы в базе тоже появилось новое поле, иначе программа будет выдавать ошибку.

Этап 3. Остановка старой версии ПО и запуск новой

Перед тем как выложить новую версию кода на сервер, обновите базу данных, отключите старую версию программы. Иногда это делают резко — одну выключают, другую включают. А иногда плавно: так, что пользователи почти не замечают перехода. Главное, чтобы при этом сайт или приложение продолжали работать и клиенты не остались с пустым экраном. Например, можете временно отключить веб-сервер или показать пользователям сообщение, что приложение обновляется. Когда всё поменяете, запустите новую версию приложения, и клиенты снова могут работать.

Этап 4. Автоматизация

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

Кто этим занимается

Когда проект небольшой, деплоем обычно занимается сам программист. Пишет код, тестирует его, а потом вручную или автоматически загружает на сервер.

В более крупных проектах деплоем занимаются отдельные специалисты — DevOps-инженеры. Они настраивают всё так, чтобы деплой проходил быстро, автоматически и без ошибок. Специалисты не пишут логику сайта, а отвечают за то, как она попадет на сервер. Еще DevOps-специалисты следят за серверами, безопасностью и стабильностью работы.

Иногда над деплоем работают сразу несколько человек. Разработчик пишет и тестирует код, DevOps-инженер настраивает автоматическую доставку на сервер, тестировщик проверяет всё перед запуском, менеджер по продукту или руководитель команды разрешают публикацию. Это особенно важно в серьезных проектах, где ошибка может стоить дорого.

Что нужно знать

Для деплоя нужно хотя бы немного знать базовые принципы программирования. Перед тем как выкладывать что-то на сервер, важно понимать, как вообще работает код:

  • Как его запустить?
  • Что нужно для работы?
  • Какие есть библиотеки или модули?

Без этих знаний деплоить будет сложно.

Некоторые проекты нужно «подготовить» перед деплоем. Собрать и указать переменные окружения, например API_KEY. Настроить конфигурационные файлы, например nginx.conf или Procfile для Heroku. Уметь пользоваться Git или другим способом загрузки.

Для более серьезных проектов важно понимать, как работают серверы и домены. Если деплоите на свой сервер, нужно знать:

  • как подключаться по SSH;
  • устанавливать и запускать приложения, например через pm2 или gunicorn;
  • настраивать веб-серверы, например Nginx;
  • подключить домен.

А еще уметь работать с базами данных: создавать, подключать проект и, если нужно, менять структуру базы.

Курс «Веб-разработчик» в Skypro построен на практике. Вы сразу начнете работать над проектами от реальных работодателей. Занятия проходят онлайн в формате видеоуроков — можно совмещать с работой и личной жизнью. После учебы у вас уже будет готовое портфолио, а это повышает шансы найти высокооплачиваемую работу.

Главное: что такое деплой (deploy) и для чего он нужен

  • Деплой — это процесс, когда готовую программу загружают на сервер, чтобы ей могло пользоваться больше людей.
  • Big bang deployment, Rolling Deployment, Blue-Green Deployment, Canary Deployment — самые распространенные способы обновить сервер.
  • Сначала переносите готовый код на сервер, обновляете базу данных и в конце останавливаете старый сайт и запускаете новый. А чтобы не делать это всё каждый раз вручную, настройте автоматизацию.
  • Деплоем занимается тот, кто отвечает за хорошую работу сайта или приложения не только на компьютере разработчика, но и у всех пользователей.
  • Без базовых знаний программирования деплоить будет сложно.

Добавить комментарий