Creativa——Fotolia
在今天的云世界中制作容器数据移动
对于容器、混合云和多云基础设施,数据移动性至关重要。数据平面框架和数据抽象可以确保数据和应用程序的移动性。
在当今的云世界中,IT组织正在其业务中利用混合云和多云。从容器的角度来看,我们知道应用程序的移动性、灵活性和效率从一开始就内置在其中。但是容器数据的移动性如何呢?如何构建一个数据框架来优化公共云,并为应用程序及其数据提供真正的移动性?
集装箱和块存储
容器的普及源于码头工人将我们引入容器运行时,应用程序库和多边形(服务器)配置的框架。谷歌的开源容器平台,码头被Kubernetes迅速归结。
两个平台都使用基于块的存储来为容器数据提供持久性。最初,假设包含应用程序复制和冗余的容器是无状态的,以维护对持久数据的访问。这证明是不切实际的,它被认为是某种形式的需要持久存储,即使是短暂的容器。
块存储速度快,为应用程序提供低延迟。在容器部署中,块设备使用本地文件系统进行格式化并映射到容器中。根据使用要求,块设备可以在容器的生命周期内存活或仅在容器运行时使用。
如果容器中的应用程序任务是可重新启动的,那么块存储除了提供可伸缩的、快速的容器数据存储之外,不必提供其他任何东西。通过可重启,我们的意思是应用程序组件可以用新格式化的空块设备实例化。
但是,随着我们在超出这些简单的边界之外,存储必须提供更多。例如,如果容器需要重新启动硬件或软件故障,那么重新使用现有块设备上的数据可能是实际的,而不是从另一个源重新创建它。如果应用程序的一部分必须移动到另一个物理位置,那么容器数据也可能需要移动。
构建数据平面框架
为了实现数据和应用的迁移,我们需要构建一个数据平面的框架。数据将比任何单个容器的寿命都长,并且需要跨多个数据中心和位置移动。这可能意味着在两者之间移动公共云彩和本地地点。一个很好的例子是要求将数据复制到公共云到种子测试/开发环境。
对象存储是构建数据框架的许多方法之一。使用HTTP(S)协议,它本质上移动并通过WAN访问。对象存储提供了复制距离的能力,可以轻松地工作跨平台。对象存储的主要挑战是将良好的安全性和映射数据实现到应用程序层次结构,例如,使用桶和文件夹映射到应用程序名称。
向容器框架添加块和文件存储更为复杂。块存储比文件存储有更低的延迟和更大的吞吐量,但这不再是情况。通过使用NVMe等新媒体,初创企业正在构建高性能、可伸缩的文件系统,这些文件系统既可以在企业内部运行,也可以在公共云中运行。
本地块存储的另一个挑战,例如AWS'弹性计算云,这些设备只能连接到本地容器或虚拟实例。没有直接的方法将公有云中的块存储复制到不同的提供商或本地。
数据抽象
如果数据可移植性很重要,那么最好的选择是建立一个独立的数据平面,不依赖于公共云提供商的本地存储。存在跨单个或多个地理位置提供扩展块和文件存储的产品。这包括合并公共云和私有云。
一些横向扩展产品可以在多个位置呈现一个数据的单个数据,而其他则使用快照来复制数据。这意味着复制数据,并到位进程以确保可以跟踪和管理最新的副本。在广域域内提供数据时,将会有延迟问题。
api的作用和仍然存在的挑战
生态系统开发人员已经开始添加用于存储的api。Kubernetes有容器存储接口(CSI)暴露一组功能创建卷并将其附加到容器。CSI确保存储成功地映射到豆荚中的容器,这些豆荚可以跨多个物理服务器部署。
Docker使用卷插件来实现与CSI相同的功能。然后,用户可以从存储硬件和软件部署卷驱动程序,以确保数据正确地从存储映射到容器。
当谈到与容器数据和多个集装箱部署和平台之间的无缝数据迁移相关的存储时仍然存在挑战。例如,AWS Fargate不支持除了弹性云计算中的外部卷。构建一个真正的多云容器环境目前意味着使用定制容器构建而不是本机云功能。