📖 Разбор термина

Что такое деплой простыми словами

Слово «деплой» встречается в каждой инструкции по публикации сайта, но объясняют его редко. Разбираем без жаргона: что это такое, что происходит внутри по шагам, чем деплой отличается от хостинга и что значат preview, rollback и production.

Определение

Деплой — это публикация готового кода туда, где им смогут пользоваться другие люди. Пока код лежит у вас на компьютере, он существует для вас одного. Деплой переносит его на сервер и делает доступным по адресу в интернете.

Применительно к сайту деплой означает ровно то же, что «выложить сайт» или «опубликовать сайт». Применительно к приложению или сервису — «выкатить новую версию». Слово одно, контексты разные.

Откуда взялось слово

От английского deploy — «развернуть», «разместить». Изначально это военный термин: развернуть войска на позиции. В программировании значение сохранилось почти буквально — привести систему в боеготовность на своей позиции, то есть на сервере.

В русском языке прижилась калька: «деплой», «задеплоить», «выкатить». Строгого русского эквивалента нет — «развёртывание» звучит канцелярски и в разговоре почти не используется.

Что происходит во время деплоя

Со стороны это одна команда, но внутри — четыре последовательных шага.

1. Платформа забирает код

Из репозитория на GitHub, из папки на вашем компьютере или из архива — в зависимости от того, как вы запустили деплой.

2. Сборка

Исходный код превращается в готовые файлы: устанавливаются зависимости, компилируются стили и скрипты, оптимизируются картинки. Браузер не понимает исходники React или TypeScript — ему нужны обычные HTML, CSS и JS, и получаются они именно здесь.

3. Загрузка

Собранные файлы отправляются в хранилище и расходятся по серверам раздачи. Чем ближе такой сервер к посетителю географически, тем быстрее у него открывается сайт.

4. Активация

Адрес сайта переключается на новую версию. Это происходит в последний момент и мгновенно, поэтому посетители не видят полусобранного сайта: до переключения открывается старая версия, после — новая.

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

Деплой, хостинг, публикация — в чём разница

Эти слова часто используют как синонимы, хотя означают они разное.

Термин Что означает Аналогия
ХостингМесто, где файлы сайта лежат постоянно и раздаются посетителямАрендованная квартира
ДеплойДействие, которым новая версия сайта туда попадаетПереезд в неё
ПубликацияТо же, что деплой, обиходным языком
ДоменАдрес, по которому сайт находятАдрес дома на конверте
Сборка (build)Превращение исходного кода в файлы, понятные браузеруСборка мебели из деталей
CI/CDАвтоматика, которая запускает сборку и деплой сама при изменении кодаТранспортёрная лента

Слова, которые встретятся рядом

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

Preview-деплой

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

Rollback, откат

Возврат к предыдущей опубликованной версии. Пересобирать ничего не нужно — прошлые версии уже сохранены.

Ветка (branch)

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

Production

Основное, «боевое» окружение — то, что видят реальные посетители. В противоположность тестовому.

Статика

Сайт из заранее подготовленных файлов. Всем посетителям отдаётся одно и то же — быстро и дёшево.

SSR

Серверный рендеринг: страница собирается в момент запроса. Нужен, когда содержимое зависит от пользователя или данных.

Как деплоят разные типы сайтов

Слово одно, но за ним стоят заметно разные процессы. Разница — в том, нужно ли что-то выполнять на сервере в момент, когда посетитель открывает страницу.

Статический сайт

Лендинг, портфолио, документация, блог на генераторе статики. Все страницы подготовлены заранее, сервер просто отдаёт готовые файлы. Деплой сводится к тому, чтобы разложить файлы по серверам раздачи и переключить адрес. Это самый быстрый и дешёвый вариант: ломаться нечему, нагрузку такой сайт держит практически любую.

Сайт с серверным рендерингом (SSR)

Страница собирается в момент запроса — так работают Next.js, Nuxt и подобные фреймворки, когда содержимое зависит от пользователя, корзины или свежих данных. Здесь деплой сложнее: нужно не только выложить файлы, но и запустить процесс, который будет отвечать на запросы, а старый — аккуратно остановить, не оборвав тех, кто уже открыл страницу.

Бэкенд и API

У сервиса, который отдаёт данные приложению, к деплою добавляются миграции базы данных. Это отдельная сложность: код можно откатить назад мгновенно, а изменения в структуре базы — далеко не всегда. Поэтому миграции пишут так, чтобы старая и новая версия кода какое-то время работали с базой одновременно.

На практике вам как автору сайта эта разница видна мало: платформа определяет тип проекта сама и выбирает подходящий сценарий. Знать о ней полезно, чтобы понимать, почему деплой лендинга занимает секунды, а выкатка большого сервиса — минуты.

Три заблуждения о деплое

«Деплой нужно делать ночью»

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

«Чем реже деплоить, тем безопаснее»

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

«Неудачный деплой ломает сайт»

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

Как деплой выглядит сегодня

Десять лет назад деплой был событием: выбирали ночь потише, заходили на сервер, копировали файлы, перезапускали процессы, потом долго проверяли, что ничего не отвалилось. Выкатывались редко — раз в месяц или реже, — потому что каждый раз это был риск.

Сейчас деплой — рутина. Изменения публикуются сразу, как готовы, по несколько раз в день. Изменилось вот что:

  • Сборка выполняется на стороне платформы, а не на компьютере разработчика — результат перестал зависеть от того, у кого какая версия окружения.
  • Переключение на новую версию мгновенное, поэтому сайт не «моргает» во время публикации.
  • Откат сделали дешевле, чем починку: если версия неудачная, её просто возвращают назад одной кнопкой.
  • Каждая ветка получает свой адрес, и изменения показывают заказчику до попадания на основной сайт.

На практике это выглядит так: вы сохраняете изменения в репозитории или выполняете одну команду — и через полминуты новая версия сайта открывается у посетителей. Всё описанное выше происходит внутри и не требует вашего участия.

Попробуйте деплой на практике

Одна команда — npx layero@latest deploy — и сайт в интернете. Бесплатный тариф, HTTPS и CDN в России.

Частые вопросы

Что такое деплой простыми словами?
Деплой — это публикация готового кода туда, где им смогут пользоваться другие люди. Вы пишете код у себя на компьютере, а деплой переносит его на сервер и делает доступным по адресу в интернете. Для сайта деплой означает «выложить сайт», для приложения — «выкатить новую версию».
Чем деплой отличается от хостинга?
Хостинг — это место, где сайт живёт постоянно. Деплой — действие, которым сайт туда попадает. Хостинг можно сравнить с арендованной квартирой, деплой — с переездом в неё. Платформы деплоя объединяют то и другое: они и публикуют сайт, и держат его у себя.
Что происходит во время деплоя?
Обычно четыре шага: платформа забирает исходный код, собирает его в готовые файлы, загружает результат на серверы раздачи и переключает адрес сайта на новую версию. Переключение происходит в самом конце, поэтому посетители не видят промежуточных состояний.
Что такое preview-деплой?
Это отдельная публикация с собственным адресом, сделанная из черновой версии кода. Она нужна, чтобы посмотреть и показать изменения до того, как они попадут на основной сайт. Обычно preview создаётся автоматически для каждой ветки разработки.
Что такое откат (rollback)?
Возврат к предыдущей опубликованной версии. Если новая версия сломала сайт, откат возвращает рабочую за секунды — новую сборку для этого делать не нужно, прошлые версии уже сохранены.
Как часто нужно делать деплой?
Столько раз, сколько вы вносите изменения. Раньше выкатывались раз в месяц, потому что каждый деплой был рискованной ручной операцией. Сегодня деплой автоматизирован и занимает секунды, поэтому нормой считается публиковать изменения сразу, как они готовы.