NFS/Network 云原生应用的文件系统支持

NFS/Network file system support for Cloud native application

有人说NFS/Network云原生应用架构下不推荐使用文件系统。他们建议改用后端服务来实现可扩展性目的。我很想知道确切的原因。

与所有事情一样,这实际上取决于您的用例和需求。

NFS 擅长的领域:

  • Read/writes 使用众所周知的标准文件系统API
  • reads/writes 到本地文件系统的应用程序可以更改为 read/write NFS,并且无需更改代码即可向上扩展
  • 您可以扩展到一定程度,通常是将 hardware/resources 添加到您的 NFS 服务器
  • 这是 Cloud Foundry 特有的,但如果您有只读工作负载或不需要映射,则可以获得更好的规模 uid/gids。当 CF 安装您的 NFS 卷时,如果您可以使用这些限制,它将使用某些安装选项来获得性能引导。
  • 此选项往往适用于遗留应用程序并将它们安装到您选择的云平台上。

基于 HTTP 的服务或 S3 风格的服务擅长的领域:

  • 缩放。通过向您的服务添加更多 nodes/instances 来横向扩展,或者如果您有像 S3 这样的服务,它会为您扩展并且通常会达到相当大的限制(存储桶可以是多个 TB)。
  • 这取决于服务,但您通常可以通过这种方式获得更好的安全选项(审计、细粒度访问权限等)。 NFS 在映射 uid/gid 的方式上非常有限,尤其是在 uid/gid 并不真正绑定到特定用户的云环境中。
  • 这取决于您的服务,但有时您可以使用 S3 等服务的独特属性来减轻您的应用程序的负载,例如您有客户端下载文件。 S3 或 Cloud Front 可以直接处理这些服务,而不是您的应用程序在其上花费周期。
  • 如果您要构建全新的应用程序,这通常是可行的方法。

我的 0.02 美元。希望对您有所帮助!