Поддержка файловой системы NFS/Network для собственного облачного приложения.

Некоторые говорят, что файловую систему NFS/Network не рекомендуется использовать в архитектуре облачных приложений. Вместо этого они рекомендуют использовать серверную службу для целей масштабируемости. Хотелось бы узнать точные причины.


person Toshi    schedule 21.10.2019    source источник


Ответы (1)


Как и во всем, это действительно зависит от вашего варианта использования и потребностей.

Области, в которых NFS преуспевает:

  • Чтение/запись используют стандартный API файловой системы, который хорошо известен
  • Приложение, которое читает/записывает в локальную файловую систему, можно изменить на чтение/запись NFS и без изменения кода разрешить масштабирование.
  • Вы можете масштабироваться до определенной степени, обычно добавляя оборудование/ресурсы к вашему серверу NFS.
  • Это специфично для Cloud Foundry, но вы можете получить гораздо лучший масштаб, если у вас есть рабочая нагрузка только для чтения или если вам не нужно сопоставлять uid/gid. Когда CF монтирует ваш том NFS, он будет использовать определенные параметры монтирования для загрузки производительности, если вы можете работать с этими ограничениями.
  • Этот вариант, как правило, отлично работает с устаревшими приложениями и переносом их на выбранную вами облачную платформу.

Области, в которых лучше всего работает служба на основе HTTP или служба в стиле S3:

  • Масштабирование. Масштабируется путем добавления дополнительных узлов/экземпляров к вашей службе или, если у вас есть такая служба, как S3, она масштабируется для вас и обычно до довольно больших пределов (сегменты могут составлять несколько ТБ).
  • Это зависит от службы, но обычно таким образом вы можете получить лучшие параметры безопасности (аудит, подробные разрешения на доступ и т. д.). NFS довольно ограничена в том, как она отображает uid/gid, особенно в облачных средах, где uid/gid на самом деле не привязаны к конкретному пользователю.
  • Это зависит от вашего сервиса, но иногда вы можете использовать уникальные свойства сервиса, такого как S3, чтобы разгрузить ваше приложение, например, если у вас есть клиенты, загружающие файлы. S3 или Cloud Front могут обслуживать их напрямую, вместо того, чтобы ваше приложение тратило на это циклы.
  • Если вы создаете приложение с нуля, обычно это правильный путь.

Мои 0,02 доллара. Надеюсь, это поможет!

person Daniel Mikusa    schedule 21.10.2019