CapRover - быстрый способ настроить CI/CD

В разработке сайтов и приложений время — это деньги: чем меньше его потрачено, тем ниже издержки команды. И тем довольнее клиент! Расскажу, как нашей команде удалось снизить затраты времени на старте проекта практически на два рабочих дня. Для этого нам понадобилось внедрить всего один новый инструмент: CapRover, систему развертывания приложений из GIT репозитория. В статье хочу разобрать плюсы инструмента и дать пошаговую инструкцию по созданию dev-контура с его помощью. Итак, CapRover — это лёгкая в использовании self-hosted платформа для NodeJS, Python, PHP, Ruby, WordPress и многих других приложений. Для нас он стал важным инструментом для создания и поддержки dev-контура (площадка для разработки) . Раньше нам требовалось день-два, чтобы все настроить; сейчас — от 30 минут до двух часов.

Руслан Львов Руководитель ADDEO
Руслан Львов Руководитель ADDEO

Привет, я Руслан — руководитель ADDEO. Мы занимаемся разработкой микросервисных приложений. Основные наши клиенты — SAAS (поставщики облачного программного обеспечения) и крупные компании. Одним мы делаем UI и фронтенд, другим проекты, под которые они не готовы выделять внутренние ресурсы.

Раньше мы использовали следующие инструменты:

  • Хостинг. Работало для php фреймворков, битрикса и т. п. CI/CD нормально настроить у нас не получилось, да и ограничений много.
  • VDS (виртуальный выделенный сервер”) под каждый проект, на нем k8s. Удобно, можно сделать все, что угодно. Из минусов: сложность настройки, времязатраты, сложно администрировать.
  • Digital Ocean Apps, Hostman. Это хорошее решение для микросервисной разработки, контейнер для фронта поднимается за минуту. Из минусов: когда кол-во проектов достигает 20-40, становится дороговато. Мощность низкая, билд проходит долго. Есть ограничения, некоторые проекты не получалось настроить. По сути, платишь как за VDS, а получаешь возможность запускать один проект.

А потом мы нашли его — CapRover.

CapRover похож на платформу Digital Ocean Apps, только Open Source и на на своём виртуальном сервере. Он позволяет собирать, авто деплоить приложения из Github, Gitlab и др. В нем есть маркетплейс с большим выбором готовых решений.

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

1. Мы берем VDS в Timeweb (3 CPU, 4 RAM, 40 NVME, Ubuntu 20.04)

2. На VDS по инструкции устанавливаем CapRover https://caprover. com/docs/get-started. html

3. Для базы данных есть One click apps, просто выбираем нужное и устанавливаем

4. Создаем наше первое приложение, указав название.

Экран создания приложения
Экран создания приложения

5. Далее помещаем Dockerfile с доп файлами и файл сaprover-definition в корень репозитория.

💡 Ссылка на несколько конфигурации приложений https://gitlab. com/addeo-public/caprover-definition-files

6. Прописываем env переменные

Экран редактирования переменных
Экран редактирования переменных

7. В разделе Deployment в третьем методе прописываем ссылку и доступы к репозиторию. Подробнее процесс описан в документации https://caprover. com/docs/deployment-methods. html#automatic-deploy-using-github-bitbucket-and-etc

Экран деплоя
Экран деплоя

8. Нажимаем Force Build или делаем коммит в репозиторий (если настроили вебхук)

9. Смотрим на логи билда, а затем деплоя.

Экран логов
Экран логов

Профиты использования CapRover на наш субъективный взгляд:

  • Разработчики сами могут поднять стенд смотрящий на изменения в определенной ветке репозитория
  • Не нужно подключать девопса, чтобы развернуть dev-контур
  • Уменьшение времязатрат на создание dev-контура
  • Экономия бюджета на инфраструктуру
  • Удобный мониторинг через встроенный сервис NetData

Надеюсь, вам пригодится наш опыт. Если будут вопросы, пишите нам в телеграм https://t. me/addeo_ru, найдем решение вместе =)

11
Начать дискуссию