Как версировать микросервисы с точки зрения системы - PullRequest
0 голосов
/ 10 июля 2020

Представьте себе случай, когда у нас есть проект, который использует архитектуру микросервисов и общие уровни инфраструктуры, такие как шлюз API и сервисы под ним. Таким образом, любой клиентский запрос поступает на шлюз API, а затем пересылается напрямую в тот или иной микросервис.

Он также имеет общий поток разработки, например:

  • разработка
  • QA
  • deploy

Итак, в какой-то момент мы хотим выпустить новые функции для различных микросервисов. Разработчик закончил свою работу и передал ее QA, однако тестировщики хотят протестировать ее с точки зрения пользователя и отправить запросы на шлюз API, чтобы охватить бизнес-сценарий ios, а не со стороны функций, и проверить эту спецификацию c микросервис работает. Это означает, что мы хотим развернуть исходный снимок системы + версию функции конкретного микросервиса.

Вопрос в том, как вы управляете и обновляете различные версии или микросервисы в системе?

Поделитесь, пожалуйста, некоторыми идеями, инструментами, если вы используете и подходами. Я был бы очень признателен!

1 Ответ

1 голос
/ 11 июля 2020

Я использую следующие инструменты:

  • Git
  • Gitlab CI / CD
  • Docker
  • Gitlab Docker реестр
  • Helm
  • Kubernetes

Моя упрощенная схема выглядит следующим образом:

  1. Когда я хочу выпустить новую функциональность, я делаю тег в основной ветке в git и измените версию Helm-диаграммы.
  2. Gitlab CI / CD создает Docker образ микросервиса из основной ветки с нужным тегом.
  3. Gitlab CI / CD помещает образ Docker с тегом в реестр Gitlab Docker.
  4. Gitlab CI / CD развернет нужную версию микросервиса в кубернетах с помощью Helm.

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

Эту схему также легко преобразовать в GitOps с помощью таких инструментов, как ArgoCD , Werf и др. * 104 7 *.

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