Что такое деплой простыми словами
Слово «деплой» встречается в каждой инструкции по публикации сайта, но объясняют его редко. Разбираем без жаргона: что это такое, что происходит внутри по шагам, чем деплой отличается от хостинга и что значат 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 в России.