AWS сервис дизайн и микросервисы - PullRequest
0 голосов
/ 24 декабря 2018

Мне было интересно узнать, как создаются сервисы AWS.Например, возьмите такой сервис, как S3 и его REST API: https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html

Для этой услуги существует много конечных точек, охватывающих весь спектр функциональных возможностей 'S3оказание услуг'.Тем не менее, за кулисами, конечно же, это коллекция многих микросервисов, по крайней мере, об этом я думаю.

У кого-нибудь есть понимание этого?Вы можете указать мне на общий шаблон проектирования, когда сервисный уровень верхнего уровня инкапсулирует отдельные вызовы к нескольким микросервисам (если на самом деле это то, что они делают)?

Спасибо.

1 Ответ

0 голосов
/ 28 декабря 2018

Типичный шаблон для создания такой службы хранения основан на центральном брокере запросов, который взаимодействует с другими службами и выделенными базами данных:

  • брокер хранения обрабатывает запросы REST от пользователей S3API (но не только от пользователей, мы увидим это позже),
  • этот брокер использует другие службы для запуска:
    • используются, например, контейнерные или вычислительные облачные службыброкером для обработки узлов или контейнеров службы хранения
    • некоторая служба базы данных (обычно гибкая база данных nosql) используется для поддержки баз данных службы хранения,
    • служба идентификации, которая позволяет посредникупроверять запросы.
  • этот брокер поддерживает несколько баз данных:
    • база данных хранилища объектов, которая поддерживает объекты долгосрочного хранения для пользователей,
    • anучетная база данных с конкретными сведениями о владельцах и правах доступа к объектам, хранящимся в хранилище объектов,
    • база данных политики хранения, которая поддерживает уровни обслуживания, функции и поведение в зависимости от пользователей и типов объектов.

Брокер предлагает услуги пользователям, а также некоторымдругие службы:

  • служба вычислений может использовать службу хранилища объектов для поддержания своей конфигурации и состояния: служба вычислений отправляет запросы REST службе хранилища,
  • служба панели мониторинга может использоватьслужба хранения объектов для поддержки коллекций данных,
  • и т. д.

Дальнейшее рассмотрение некоторых реализаций служб хранения с открытым исходным кодом, таких как модуль OpenStack Swift, может помочь вам найти общие шаблоны проектирования.которые используются для реализации такого сервиса на основе других микросервисов.Например, вы можете посмотреть раздел 1.2.2 этого руководства: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/pdf/architecture_guide/Red_Hat_OpenStack_Platform-10-Architecture_Guide-en-US.pdf

S3 очень похож на Swift, поскольку между соответствующими API есть несколько шлюзов.

Вот схемас таким рисунком:

object storage service pattern

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