2016-12-31 13 views
2

Мы работаем над базовым проектом, и мы начали переход к разработке микросервисов. У нас уже есть несколько сервисов, один из которых - FileService, который хранит и извлекает файлы (используя базовое хранилище Amazon S3). FileService также предоставляет механизм проверки контрольной суммы, проверки подлинности и повтора и используется для обмена файлами между службами и клиентами.Как обрабатывать личные файлы в микросервисе

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

Причина использования FileService заключается в том, что мы бесплатно получаем все функции, реализованные в службе (повтор, контрольная сумма и т. Д.). Причина в том, что мы не хотим, чтобы новая служба могла работать автономно, и использование FileService связывает новую службу с ней (она должна обрабатывать аутентификацию OAuth2 для извлечения/выгрузки файлов, она должна развертывать FileService и AuthService всякий раз эти службы развернуты и т. д.).

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

ответ

1

Преобразование исполняемого компонента FileService в микросервис будет иметь определенные преимущества и недостатки. Вы перечислили некоторые из них, но, самое главное, вам необходимо создать матрицу анализа затрат и результатов, применимую к вашей компании и домену. Здесь нет подхода «наилучшей практики».

Расходы:

  • это хорошо для вас, чтобы увеличить время отклика? Потому что теперь вам придется переносить файлы дважды: s3 -> fs microservice -> client microservice
  • как вероятнее будет потерять связь между узлами?
  • Насколько велики ваши файлы? Неудачная связь между микросервисами может стать проблемой?
  • как часто вы нуждаетесь в доступе к этим файлам? Может быть, вы потеряете способность локального кеша ускорить процесс?
  • ты в порядке с реализацией и поддержкой отдельной аутентификации microservice или вы можете просто белый список этой службы в брандмауэре

Преимущества:

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

Вывод:

Там нет никакого способа, чтобы ответить на эти вопросы фактически не говорить с деловыми людьми и обсуждать риски вокруг такого перехода.

+0

Спасибо IlliakaillI за ответ –

+0

не проблема @Sahar, подумайте о его маркировке – IlliakaillI