LINUX.ORG.RU

Инфраструктура разработки веб-приложений

 , ,


1

1

В компании, где я работаю, поднял инфраструктуру, которая состоит из следующих компонентов:

  • GitLab (управление git-репозиториями, автоматика Merge Request, проведение Code Review и т. п.)
  • Jenkins CI
  • Vagrant (работает через провайдера VirtualBox)
  • DNSMasq (обслуживает доменную зону внутри офисной ЛВС)

У нас не один проект разрабатывается, а несколько. Поэтому каждый отдельный проект имеет свой vagrant box (либо если проект типовой, то использует base-бокс для типового проекта) со всем необходимым (например, там уже есть composer, набор хипстера для frontend-разработки и так далее). Каждый проект самодостаточен и поставляется вместе с Makefile.

Подход помогает быстро тиражировать проекты и быстро включать нового разработчика в процесс.

В процессе тестирования, через Jenkins CI поднимается очередной проект, получаемый из GitLab и поднимаемый через Vagrant.

Но есть пара нюансов, которые бесят и заставляют напрягать мозги лишний раз:

  • Необходимо заводить виртуальный хост проекта в рамках сети руками (есть свой DNS-сервер, который провайдит свою доменную зону внутри офиса).
  • Когда заводится виртуальный хост, он настраивается как proxy до вагрант бокса, которому назначен IP (руками вбит в Vagrantfile).

Обе вещи категорически неудобны, но я пока не придумал как это автоматизировать.

В качестве решений есть идеи:

  • Написать свою автоматику (веб-сервис) создания виртуальных хостов с базой IP (что выглядит чуть более чем говно).
  • Использовать Docker вместо Vagrant

Что можете посоветовать? Имеет ли право на жизнь такая инфраструктура или ее следует реализовать иначе?

Deleted

Если возможно, лучше перевести на Docker + Kubernetes/Openshift - там есть:

а) вебхуки для пересборки процесса после коммита в Gitlab,

b) service discovery - прокси будет роутить на нужный хост сам, там внутре свой DNS сервер

c) просто добавлять новые хосты для инфраструктуры

и многое другое

видео по интеграции Jenkins и Openshift

vrutkovs ★★ ()
Последнее исправление: vrutkovs (всего исправлений: 1)
Ответ на: комментарий от vrutkovs

Спасибо, посмотрел видео.

Почитал про разные вещи типа Consul и пока не очень понял как мне реализовать service discovery в рамках того, что я хочу. Надо дальше разбираться.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.