HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Когда сайт написан, встает вопрос о том, как выложить его в интернет. Стандартный путь включает три пункта:</p>
1 <p>Когда сайт написан, встает вопрос о том, как выложить его в интернет. Стандартный путь включает три пункта:</p>
2 <ol><li>Покупка домена</li>
2 <ol><li>Покупка домена</li>
3 <li>Покупка хостинга и его настройка</li>
3 <li>Покупка хостинга и его настройка</li>
4 <li>Деплой</li>
4 <li>Деплой</li>
5 </ol><p>Первый пропустим, про два других поговорим в этом уроке.</p>
5 </ol><p>Первый пропустим, про два других поговорим в этом уроке.</p>
6 <h2>Процесс деплоя</h2>
6 <h2>Процесс деплоя</h2>
7 <p><strong>Деплой</strong>- процесс выкладки новой версии сайта на сервер или сервера. Этот процесс может быть сложным, также он зависит от используемых технологий.</p>
7 <p><strong>Деплой</strong>- процесс выкладки новой версии сайта на сервер или сервера. Этот процесс может быть сложным, также он зависит от используемых технологий.</p>
8 <p>Во время деплоя выполняются следующие задачи:</p>
8 <p>Во время деплоя выполняются следующие задачи:</p>
9 <ol><li>Код проекта скачивается на сервер (обычно через клонирование Git)</li>
9 <ol><li>Код проекта скачивается на сервер (обычно через клонирование Git)</li>
10 <li>Ставятся необходимые зависимости</li>
10 <li>Ставятся необходимые зависимости</li>
11 <li>Выполняется процесс сборки, например, собирается фронтенд-часть</li>
11 <li>Выполняется процесс сборки, например, собирается фронтенд-часть</li>
12 <li>Выполняются миграции. Миграции - SQL-скрипты, которые изменяют структуру базы данных</li>
12 <li>Выполняются миграции. Миграции - SQL-скрипты, которые изменяют структуру базы данных</li>
13 <li>Запускается новая версия кода</li>
13 <li>Запускается новая версия кода</li>
14 </ol><p>Это один из возможных вариантов, причем довольно примитивный.</p>
14 </ol><p>Это один из возможных вариантов, причем довольно примитивный.</p>
15 <p>Во многих компаниях этот процесс до сих пор выполняется руками. Программист заходит на сервер, запускает git pull и далее проходится по списку выше. Это худший способ деплоить. Деплой относится к тем задачам, которые должны быть автоматизированы от и до.</p>
15 <p>Во многих компаниях этот процесс до сих пор выполняется руками. Программист заходит на сервер, запускает git pull и далее проходится по списку выше. Это худший способ деплоить. Деплой относится к тем задачам, которые должны быть автоматизированы от и до.</p>
16 <p>Есть одно важное правило общее для всех - деплоить можно только вперед. Деплой нельзя "откатывать". В первую очередь это касается миграций, но про базы мы пока не говорим.</p>
16 <p>Есть одно важное правило общее для всех - деплоить можно только вперед. Деплой нельзя "откатывать". В первую очередь это касается миграций, но про базы мы пока не говорим.</p>
17 <p>Если после или во время деплоя что-то пошло не так, то нужно деплоить снова, причем именно предыдущую версию.</p>
17 <p>Если после или во время деплоя что-то пошло не так, то нужно деплоить снова, причем именно предыдущую версию.</p>
18 <p>Также деплои можно классифицировать по способу обновления и отката:</p>
18 <p>Также деплои можно классифицировать по способу обновления и отката:</p>
19 <ul><li>Последовательное обновление - сервера обновляются по очереди</li>
19 <ul><li>Последовательное обновление - сервера обновляются по очереди</li>
20 <li><a>Сине-зеленый деплой</a>- полное дублирование инфраструктуры с подменой</li>
20 <li><a>Сине-зеленый деплой</a>- полное дублирование инфраструктуры с подменой</li>
21 </ul><p>Отдельно стоит сказать про канареечный релиз - canary release. При таком подходе переключение на использование новой версии происходит постепенно: сначала для небольшого процента пользователей, а затем и для всех.</p>
21 </ul><p>Отдельно стоит сказать про канареечный релиз - canary release. При таком подходе переключение на использование новой версии происходит постепенно: сначала для небольшого процента пользователей, а затем и для всех.</p>
22 <h2>Типы хостингов</h2>
22 <h2>Типы хостингов</h2>
23 <p>Способ деплоя зависит от используемого хостинга и способа настройки серверного окружения. Выделяют следующие типы хостингов:</p>
23 <p>Способ деплоя зависит от используемого хостинга и способа настройки серверного окружения. Выделяют следующие типы хостингов:</p>
24 <ul><li>Виртуальный хостинг (Shared Hosting) - самый дешевый способ размещать сайт в интернете. Такая услуга включает в себя доступ на сервер с уже настроенным программным обеспечением под конкретный стек, например, Linux + PHP + MySQL. Этот способ подходит для самых простых сайтов и требует минимальной настройки</li>
24 <ul><li>Виртуальный хостинг (Shared Hosting) - самый дешевый способ размещать сайт в интернете. Такая услуга включает в себя доступ на сервер с уже настроенным программным обеспечением под конкретный стек, например, Linux + PHP + MySQL. Этот способ подходит для самых простых сайтов и требует минимальной настройки</li>
25 <li>VPS/VDS - наиболее сбалансированная услуга, в рамках которой предоставляется виртуальная машина. Плюс в том, что такой вид хостинга позволяет задействовать больше серверных мощностей: ЦПУ, память и диск. Предустановленного ПО нет, всё нужно делать самостоятельно. По сравнению с виртуальным хостингом мы не ограничены в правах и можем настраивать сервер как угодно</li>
25 <li>VPS/VDS - наиболее сбалансированная услуга, в рамках которой предоставляется виртуальная машина. Плюс в том, что такой вид хостинга позволяет задействовать больше серверных мощностей: ЦПУ, память и диск. Предустановленного ПО нет, всё нужно делать самостоятельно. По сравнению с виртуальным хостингом мы не ограничены в правах и можем настраивать сервер как угодно</li>
26 <li>Выделенный сервер (Dedicated Server) - либо свой, либо арендованный сервер. Такой хостинг требует больше всего участия, но зато мы получаем лучшее соотношение производительность/цена</li>
26 <li>Выделенный сервер (Dedicated Server) - либо свой, либо арендованный сервер. Такой хостинг требует больше всего участия, но зато мы получаем лучшее соотношение производительность/цена</li>
27 <li>IaaS (Infrastructure as a Service) - инфраструктура как сервис. Вид хостинга, при котором большая часть возможностей представляется как сервис. Как пример: Amazon Web Service (AWS)</li>
27 <li>IaaS (Infrastructure as a Service) - инфраструктура как сервис. Вид хостинга, при котором большая часть возможностей представляется как сервис. Как пример: Amazon Web Service (AWS)</li>
28 <li>PaaS (Platform as a Service) - платформа как сервис. Наиболее дорогой и самый автоматизированный способ из коробки по размещению сайтов. Выкладка сайта происходит буквально по команде git push. Кроме цены важно учитывать используемые технологии и подходы. PaaS обладает наибольшим числом ограничений по тому, что и как можно делать. Но в обмен мы получаем не просто автоматизированный хостинг, но и платформу, которая автоматически "скейлится" (масштабируется) под нагрузку.</li>
28 <li>PaaS (Platform as a Service) - платформа как сервис. Наиболее дорогой и самый автоматизированный способ из коробки по размещению сайтов. Выкладка сайта происходит буквально по команде git push. Кроме цены важно учитывать используемые технологии и подходы. PaaS обладает наибольшим числом ограничений по тому, что и как можно делать. Но в обмен мы получаем не просто автоматизированный хостинг, но и платформу, которая автоматически "скейлится" (масштабируется) под нагрузку.</li>
29 </ul><p>Все способы деплоя можно разбить на две большие категории: деплой на PaaS и деплой на все остальное.</p>
29 </ul><p>Все способы деплоя можно разбить на две большие категории: деплой на PaaS и деплой на все остальное.</p>
30 <h2>PaaS</h2>
30 <h2>PaaS</h2>
31 <p>Самый простой способ начать деплоить. Большинство PaaS-хостеров имеют бесплатные планы, достаточные для выкладки учебных проектов. Из плюсов: не придётся покупать адрес, домен третьего уровня предоставляется бесплатно.</p>
31 <p>Самый простой способ начать деплоить. Большинство PaaS-хостеров имеют бесплатные планы, достаточные для выкладки учебных проектов. Из плюсов: не придётся покупать адрес, домен третьего уровня предоставляется бесплатно.</p>
32 <p>Популярное PaaS-решение на текущий день -<a>Render.com</a>. У этого сервиса есть<a>документация</a>. Если следовать ей, можно быстро выложить свой первый сайт.</p>
32 <p>Популярное PaaS-решение на текущий день -<a>Render.com</a>. У этого сервиса есть<a>документация</a>. Если следовать ей, можно быстро выложить свой первый сайт.</p>
33 <p>Render используется в Хекслете студентами для выполнения проектов и в опенсорсе.</p>
33 <p>Render используется в Хекслете студентами для выполнения проектов и в опенсорсе.</p>
34 <h2>Все остальное</h2>
34 <h2>Все остальное</h2>
35 <p>Если не брать в расчет самый примитивный виртуальный хостинг, который не позволяет настраивать серверное окружение, остальные виды хостингов имеют схожие задачи для выкладки.</p>
35 <p>Если не брать в расчет самый примитивный виртуальный хостинг, который не позволяет настраивать серверное окружение, остальные виды хостингов имеют схожие задачи для выкладки.</p>
36 <p>Первая задача - настроить окружение. Если в виртуальном хостинге всегда есть набор предустановленных программ, то в остальных видах хостинга нет ничего, кроме "голой" операционной системы.</p>
36 <p>Первая задача - настроить окружение. Если в виртуальном хостинге всегда есть набор предустановленных программ, то в остальных видах хостинга нет ничего, кроме "голой" операционной системы.</p>
37 <p>Установка необходимого ПО - такой же автоматизируемый процесс как процесс деплоя. У него есть собственное название - Управление конфигурациями (Configuration Management).</p>
37 <p>Установка необходимого ПО - такой же автоматизируемый процесс как процесс деплоя. У него есть собственное название - Управление конфигурациями (Configuration Management).</p>
38 <p>Рекомендуем использовать Ansible - популярное решение для настройки (На Хекслете есть соответствующий<a>курс</a>).</p>
38 <p>Рекомендуем использовать Ansible - популярное решение для настройки (На Хекслете есть соответствующий<a>курс</a>).</p>
39 <p>Ключевое понятие Ansible - Playbook (плейбук). Это файл в формате YAML, в котором описывается, что нужно сделать на указанной машине.</p>
39 <p>Ключевое понятие Ansible - Playbook (плейбук). Это файл в формате YAML, в котором описывается, что нужно сделать на указанной машине.</p>
40 <p>В каждом плейбуке используются готовые модули, поставляемые вместе с Ansible. Этих модулей сотни. С их помощью можно делать практически всё: от установки программ до настройки сети и управления правами файловой системы.</p>
40 <p>В каждом плейбуке используются готовые модули, поставляемые вместе с Ansible. Этих модулей сотни. С их помощью можно делать практически всё: от установки программ до настройки сети и управления правами файловой системы.</p>
41 <p>Ansible - универсальный инструмент. С его помощью можно не только настраивать окружение, но и деплоить. При этом для деплоя есть готовый модуль -<a>deploy helper</a>.</p>
41 <p>Ansible - универсальный инструмент. С его помощью можно не только настраивать окружение, но и деплоить. При этом для деплоя есть готовый модуль -<a>deploy helper</a>.</p>
42 <p>В случаях, где используется, например, Docker, развертывание осуществляется системами оркестрации, среди которых выделяется<a>Kubernetes</a>.</p>
42 <p>В случаях, где используется, например, Docker, развертывание осуществляется системами оркестрации, среди которых выделяется<a>Kubernetes</a>.</p>