Архитектура: микросервисы, множественные требования и общие данные - PullRequest
0 голосов
/ 17 января 2019

Сценарий:

  • У нас есть умеренно большой (100K ++ loc) проект на основе микросервиса, с большим и быстро развивающимся контентом
  • мы продаем это (обе данные,и контент) нескольким клиентам, причем требования каждого клиента каждый раз немного различаются как по данным, так и по контенту;и они требуют очень высокой доступности по этому вопросу.
  • Мы хотели бы избежать проблемы, из-за которой изменение (кода или данных), выполненное для одного клиента, может отрицательно повлиять на развертывание других клиентов.
  • В то же время нам необходимо иметьнекоторые данные (и дальнейшие изменения этих данных) распределяются между клиентами

Изученные нами конкретные решения:

  • Одиночное развертывание, специфичный для клиента IFоператоры:

    • Мы используем это в настоящее время, это требует ручного жонглирования, какой клиент получает, что
    • , чрезвычайно трудно повторно протестировать всю матрицу функций на предмет того, может ли изменение негативно повлиять на какое-либоклиент
  • Множественные развертывания: проблема здесь в 8+ микросервисах с высокой зависимостью друг от друга;для этого потребуется:

    • , настройка нового репо-источника и развертывание для каждого клиента
    • , внесение специфичных для клиента изменений в кодовую базу этого конкретного клиента, развертывание в их кластере

Здесь я обращаюсь к приятному сообществупереполнения стека: как бы вы решили эту проблему таким образом, чтобы мы сохраняли простоту управления изменениями, одновременно избегая неблагоприятных воздействий от одного клиента к другому?

1 Ответ

0 голосов
/ 18 января 2019

Вы можете использовать контейнерную архитектуру, такую ​​как docker и openshift. Контейнер обеспечит вам изоляцию уровня обслуживания для каждого клиента. Если вам нужна архитектура корпоративного уровня, вы можете использовать openshift, поддерживаемый Red Hat. Для совместного доступа к данным между различными клиентами и микросервисами может использоваться сетевая файловая система, предоставляемая gcp и aws. Это обеспечивает легкую масштабируемость и безопасность сети.

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