有人说在云原生应用架构下不推荐使用 NFS/Network 文件系统。他们建议使用后端服务来实现可扩展性。我很想知道确切的原因。
问问题
147 次
1 回答
2
与所有事情一样,这实际上取决于您的用例和需求。
NFS 擅长的领域:
- 读/写使用众所周知的标准文件系统 API
- 可以将读取/写入本地文件系统的应用程序更改为读取/写入 NFS,并且无需更改代码即可启用扩展
- 您可以在一定程度上进行扩展,通常是通过向 NFS 服务器添加硬件/资源
- 这是特定于 Cloud Foundry 的,但如果您有只读工作负载或不需要映射 uid/gids,您可以获得更好的规模。当 CF 挂载您的 NFS 卷时,如果您可以使用这些限制,它将使用某些挂载选项来获得性能引导。
- 此选项往往与遗留应用程序配合得很好,并将它们放到您选择的云平台上。
基于 HTTP 的服务或 S3 风格的服务擅长的领域:
- 缩放。通过向您的服务添加更多节点/实例来扩展,或者如果您有像 S3 这样的服务,它会为您扩展并且通常会达到相当大的限制(存储桶可以是多个 TB)。
- 这取决于服务,但您通常可以通过这种方式获得更好的安全选项(审核、细粒度访问权限等)。NFS 在映射 uid/gid 的方式上非常有限,尤其是在 uid/gid 并没有真正与特定用户绑定的云环境中。
- 这取决于你的服务,但有时你可以使用像 S3 这样的服务的独特属性来减轻你的应用程序的负载,比如如果你有客户端下载文件。S3 或 Cloud Front 可以直接处理这些服务,而不是您的应用程序在其上花费周期。
- 如果您正在构建一个未开发的应用程序,这通常是要走的路。
我的 0.02 美元。希望有帮助!
于 2019-10-21T20:57:00.417 回答