0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Проще всего начать изучение деплоя с<a>PaaS</a>. PaaS - это сервисы, которые полностью скрывают от нас инфраструктуру, но позволяют задеплоить практически любое приложение буквально за 5 минут после подключения. Их преимущество в скорости, надежности и легкости масштабирования. Достигается это за счет ограничений, которые накладываются на приложение, например, запрете хранить файлы на машинах. И еще эти сервисы достаточно дорогие.</p>
1
<p>Проще всего начать изучение деплоя с<a>PaaS</a>. PaaS - это сервисы, которые полностью скрывают от нас инфраструктуру, но позволяют задеплоить практически любое приложение буквально за 5 минут после подключения. Их преимущество в скорости, надежности и легкости масштабирования. Достигается это за счет ограничений, которые накладываются на приложение, например, запрете хранить файлы на машинах. И еще эти сервисы достаточно дорогие.</p>
2
<p><a>Render</a>- один из таких сервисов. Он поддерживает большое число языков и фреймворков из коробки. Что это значит? Во время деплоя Render самостоятельно определяет стек проекта и выполняет все необходимые шаги для обновления. Идеально для обучения хорошим практикам.</p>
2
<p><a>Render</a>- один из таких сервисов. Он поддерживает большое число языков и фреймворков из коробки. Что это значит? Во время деплоя Render самостоятельно определяет стек проекта и выполняет все необходимые шаги для обновления. Идеально для обучения хорошим практикам.</p>
3
<p>В этом курсе мы будем деплоить приложение<a>devops-example-app</a>, созданное специально для курса. Оно написано на JavaScript из-за простоты и распространенности. Все подходы, которые мы изучим на нем, работают практически без изменения и для других стеков.</p>
3
<p>В этом курсе мы будем деплоить приложение<a>devops-example-app</a>, созданное специально для курса. Оно написано на JavaScript из-за простоты и распространенности. Все подходы, которые мы изучим на нем, работают практически без изменения и для других стеков.</p>
4
<h2>С нуля до работающего приложения</h2>
4
<h2>С нуля до работающего приложения</h2>
5
<ol><li><p>Зайдите на render.com, зарегистрируйтесь</p>
5
<ol><li><p>Зайдите на render.com, зарегистрируйтесь</p>
6
</li>
6
</li>
7
<li><p>Создайте новый сервис</p>
7
<li><p>Создайте новый сервис</p>
8
</li>
8
</li>
9
</ol><p>В дашборде, либо нажав на кнопку New в правом верхнем углу, выберите опцию "Web Service"</p>
9
</ol><p>В дашборде, либо нажав на кнопку New в правом верхнем углу, выберите опцию "Web Service"</p>
10
<p>При создании веб-сервиса вас попросят выбрать один из путей. Вас интересует первый: Build and deploy from Git repository</p>
10
<p>При создании веб-сервиса вас попросят выбрать один из путей. Вас интересует первый: Build and deploy from Git repository</p>
11
<p>Далее Render просит предоставить доступ к репозиториям Github. Можно выбрать все или какие-то конкретные</p>
11
<p>Далее Render просит предоставить доступ к репозиториям Github. Можно выбрать все или какие-то конкретные</p>
12
<p>Добавить или перенастроить Github можно нажав на Connect/Configure account в правой части</p>
12
<p>Добавить или перенастроить Github можно нажав на Connect/Configure account в правой части</p>
13
<ol><li>Теперь необходимо задать параметры сервиса</li>
13
<ol><li>Теперь необходимо задать параметры сервиса</li>
14
</ol><p>Тут Render сам понял, что в проекте используется Docker и заполнил некоторые поля, остается только задать имя и нажать кнопку "Create Web Service"!</p>
14
</ol><p>Тут Render сам понял, что в проекте используется Docker и заполнил некоторые поля, остается только задать имя и нажать кнопку "Create Web Service"!</p>
15
<p>Далее вы попадете на страницу, где будут логи и ссылка на готовый деплой</p>
15
<p>Далее вы попадете на страницу, где будут логи и ссылка на готовый деплой</p>
16
<p>``` fastify start server/plugin.js -a 0.0.0.0 -l info | pino-pretty -S [16:12:20.998] INFO (9): Server listening at http://0.0.0.0:10000 Your service is live 🎉 ```</p>
16
<p>``` fastify start server/plugin.js -a 0.0.0.0 -l info | pino-pretty -S [16:12:20.998] INFO (9): Server listening at http://0.0.0.0:10000 Your service is live 🎉 ```</p>
17
<p>По логам выше видно, что Render запустил команды из Dockerfile найденного в проекте. Всё потому что на этапе ранее Render догадался, что в проекте есть Docker и выставил нужные настройки</p>
17
<p>По логам выше видно, что Render запустил команды из Dockerfile найденного в проекте. Всё потому что на этапе ранее Render догадался, что в проекте есть Docker и выставил нужные настройки</p>
18
<p>Если что-то пойдет не так при деплое, это также можно будет увидеть в логах</p>
18
<p>Если что-то пойдет не так при деплое, это также можно будет увидеть в логах</p>
19
<h2>Проверка пул реквестов</h2>
19
<h2>Проверка пул реквестов</h2>
20
<p>Во время разработки регулярно возникает задача ручной оценки пулреквестов. По сути, нужен механизм деплоя кода из пулреквеста куда-нибудь, где его можно посмотреть. Самостоятельно реализовать такой механизм довольно сложно, а в Render он встроен. Нужно просто активировать PR Previews в настройках самого проекта</p>
20
<p>Во время разработки регулярно возникает задача ручной оценки пулреквестов. По сути, нужен механизм деплоя кода из пулреквеста куда-нибудь, где его можно посмотреть. Самостоятельно реализовать такой механизм довольно сложно, а в Render он встроен. Нужно просто активировать PR Previews в настройках самого проекта</p>
21
<p>После этого на каждый отдельный PR будет генерироваться свой URL и приложение будет разворачиваться на него</p>
21
<p>После этого на каждый отдельный PR будет генерироваться свой URL и приложение будет разворачиваться на него</p>
22
<h2>Переменные среды</h2>
22
<h2>Переменные среды</h2>
23
<p>Если проект требует использования каких-либо переменных среды (как например проект, который вы задеплоили выше), их можно указать в настройках во вкладке Environment</p>
23
<p>Если проект требует использования каких-либо переменных среды (как например проект, который вы задеплоили выше), их можно указать в настройках во вкладке Environment</p>
24
24