Микросервисы Helm Charts

Представьте, что я разрабатываю приложение на базе микросервисов. Они будут развернуты в кубернетах с помощью Helm Package Manager. Некоторые микросервисы имеют довольно похожую конфигурацию файлов YAML. Некоторые другие могут отличаться с точки зрения конфигурации YAML. Что для этого лучше всего? У меня есть несколько вариантов:

  1. Используйте общую диаграмму и передайте другую конфигурацию, используя values.env.yaml для каждой микрослужбы, а затем разверните ее с другим именем выпуска.
  2. Создать диаграмму для каждого отдельного микросервиса, независимо от того, похожи ли они по конфигурации?

person Hugo Marcelo Del Negro    schedule 05.10.2018    source источник


Ответы (2)


Это вопрос мнения, поэтому я отвечу своим мнением.

  1. Плюс: вам нужно будет изменить всего несколько значений в файле values.yaml в зависимости от микросервиса, и будет проще поддерживать файл values.yml. Ваше репо Helm Charts может расти не так быстро.

    Оборотная сторона: например, вам будет сложнее создать _helpers.tpl файл. Этот файл будет быстро расти, и это может сбить с толку людей, создающих микросервисы.

  2. Плюс: разделение микросервисов при масштабировании до сотен. Разработчики могут работать только над развертыванием своих микросервисов.

    Оборотная сторона: распространение файлов, слишком много файлов повсюду, и ваш репозиторий с диаграммами Helm может быстро расти. Также существует риск большого дублирования кода.

Более общая практика - это номер 2 для официальных диаграмм Helm, но опять же, каждая диаграмма предназначена для совершенно разных приложений.

person Rico    schedule 05.10.2018
comment
В настоящее время мы довольны подходом №2. Я предпочитаю слабосвязанные системы даже при конфигурации. Мы, вероятно, вернемся к этому, когда станет плохо. - person Bal Chua; 08.10.2018

Как упомянул @Rico, это вопрос мнения. Вот мое мнение:

Я думаю, что было бы неплохо начать с одной диаграммы, которая подходит всем. Но когда вам нужно добавить очень специфические вещи только для нескольких сервисов с особыми требованиями, вам следует создать еще одну диаграмму. Эта идея очень похожа на сначала монолит, когда дело касается микросервисов.

В моей компании есть одна диаграмма для ~ 30 услуг. У них очень похожие потребности, поэтому файлы шаблонов не слишком сложные, а файл _helpers содержит всего около 50 строк. Мы очень довольны этим решением, потому что вам нужно всего несколько строк values.yaml, чтобы подготовить ваш сервис к работе.

person adebasi    schedule 16.10.2018