После того, как сайт написан, его нужно выложить в интернет. Стандартный путь включает три пункта:
- Покупка домена
- Покупка хостинга и его настройка
- Деплой
Рассмотрим эти пункты более подробно.
Покупка домена
Чтобы приобрести домен, необходимо обратиться в компании-регистраторы. Домен оплачивается раз в год и закрепляется за определенным человеком или компанией. Иногда хостер и регистратор — одна и та же компания. Тогда домен и сервер связываются одновременно. Иначе нужно производить определенные настройки на стороне сервера и подтверждать свое право владения доменом.
Покупка хостинга и его настройка
Хостинг — это ресурсы для размещения и обслуживания сайта в интернете. Хостинг бывает разным. Он может представлять уже полностью готовую среду, в которую заливается код сайта. Также он может быть просто железными серверами, которыми можно и нужно управлять самостоятельно.
Обычно работа с хостингом выглядит следующим образом:
- Производится регистрации на сайте хостинга
- Выбирается подходящий тариф и вид хостинга (On-Prem, IaaS, PaaS, SaaS) и привязывается банковская карточка
- Предоставляется доступ к ресурсам, например, IP-адрес и пара логин/пароль для ssh- или ftp-доступа
- При необходимости производится настройка хостинга и деплой проекта
Деплой
Деплой — процесс выкладки новой версии сайта на сервер. Этот процесс может быть довольно сложным и зависит от используемых технологий. Во время деплоя могут выполняться следующие задачи:
- Код проекта скачивается на сервер — обычно через клонирование Git
- Ставятся все необходимые зависимости
- Выполняется процесс сборки приложения
- Выполняются миграции — SQL-скрипты, которые изменяют структуру базы данных
- Запускается новая версия кода
Во многих компаниях этот процесс выполняется руками. Программист заходит на сервер, запускает git pull
и далее проходится по списку выше. Это худший способ деплоить. Деплой относится к тем задачам, которые должны быть автоматизированы.
Несмотря на разнообразие способов деплоя, есть одно важное правило для всех — деплоить можно только вперед. Деплой нельзя откатывать. И в первую очередь это касается миграций. Если после или во время деплоя что-то пошло не так, то правильно деплоить снова
Также деплои можно классифицировать по способу обновления:
- Последовательное обновление — сервера обновляются по очереди
- Сине-Зеленый деплой — полное дублирование инфраструктуры с подменой
Отдельно стоит сказать про канареечный релиз — canary release. При таком подходе переключение на использование новой версии происходит постепенно — сначала для небольшого процента пользователей, а затем и для всех.
Способ деплоя зависит от используемого хостинга и способа настройки серверного окружения. Выделяют следующие типы хостингов:
- Виртуальный хостинг (Shared Hosting) — самый дешевый способ размещать сайт в интернете. Такая услуга включает доступ на сервер с уже настроенным программным обеспечением под конкретный стек, например, Linux + Python + MySQL. Этот способ подходит для самых простых сайтов и требует минимальной настройки
- VPS/VDS — наиболее сбалансированная услуга, в рамках которой предоставляется виртуальная машина. Плюс в том, что такой вид хостинга позволяет задействовать больше серверных мощностей: ЦПУ, память и диск. Предустановленного ПО нет, все нужно делать самостоятельно. По сравнению с виртуальным хостингом мы не ограничены в правах и можем настраивать сервер как угодно
- Выделенный сервер (Dedicated Server) — сервер либо свой, либо арендованный. Такой хостинг требует больше всего участия, но зато мы получаем лучшее соотношение производительность/цена
- IaaS (Infrastructure as a Service) — инфраструктура как сервис. Вид хостинга, при котором большая часть возможностей представляется как сервис, например, Amazon Web Service (AWS)
- PaaS (Platform as a Service) — платформа как сервис. Наиболее дорогой и самый автоматизированный способ из коробки по размещению сайтов. Выкладка сайта происходит по команде
git push
. Кроме цены важно учитывать используемые технологии и подходы. PaaS обладает наибольшим числом ограничений по тому, что и как можно делать, но в обмен мы получаем не просто автоматизированный хостинг, но и платформу, которая автоматически масштабируется под нагрузку
Все способы деплоя можно разбить на две большие категории: деплой на PaaS и деплой на все остальное.
Деплой на PaaS
Самый простой способ начать деплоить. Большинство PaaS-хостеров имеют бесплатные планы, достаточные для выкладки учебных проектов. Из плюсов: не придется покупать адрес, домен третьего уровня предоставляется бесплатно.
Одним из таких сервисов является Render. Мы предлагаем использовать этот сервис для деплоя своих учебных проектов. Он поддерживает деплой Github репозиториев. Подробнее о том, как задеплоить JavaScript приложение на render.com, смотрите в нашей статье
Самостоятельная работа
- Зарегистрируйтесь на сервисе render.com
- Задеплойте на Render то приложение, которое вы написали в течение этого курса
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.