Docker容器的永久存储

在本周的白板演练中,MapR工业解决方案高级总监Dale Kim讲述了MapR如何应对在大数据设置中为容器提供持久层的挑战。 Dale描述了一种支持Docker容器,MapR持久性应用程序客户端容器或PACC的新技术。 这使您可以在启用安全性的情况下将容器部署到任何地方,同时还可以访问MapR融合数据平台,该平台包括NoSQL数据库和流消息传输以及用于持久层的文件。

有关这些主题的其他内容,请参见:

这是完整的视频转录:

嗨,我是MapR Technologies的Dale Kim。 欢迎来到我的白板演练。 在本集中,我想谈谈MapR如何在您的容器化基础架构中为您提供帮助。 现在您可能已经熟悉了基于管理程序的虚拟化技术,并且容器的工作方式几乎相同。 容器的最大优点是您不必在服务器主机操作系统之上运行来宾操作系统。 它们重量更轻,效率更高。

现在,在虚拟化环境中容器的一些优点包括以下事实:您可以隔离容器内的系统依赖关系,以便由应用程序和容器来控制这些依赖关系。 另一个优势是更好的硬件利用率。 您可以将应用程序打包在一个容器中,然后根据可用资源将其部署到任何地方。 另一个大优点是可部署应用程序的可预测性,您可以在测试和开发环境中构建该应用程序,但是您要确保该应用程序在生产服务器中的运行方式几乎相同,即使它们与所测试的服务器完全不同。

这些优势非常明显。 今天使用容器的最大挑战之一是如何处理持久性,如何保存数据,创建状态以及如何在容器中获取数据。 这是许多容器用户面临的问题。 让我们谈谈今天可用的一些选项。

在此图中,矩形代表服务器。 圆圈代表容器。 三角形是应用程序。 气瓶是存储的。 在第一个模型中,您可以将应用程序直接放入容器中的存储中。 这是一种有限的方法,因为如果容器发生故障,您将丢失所有保存的数据。 您会失去状态,这不是一个很好的长期解决方案。 在第二个选项中,您可能需要将应用程序写入本地主机磁盘。 这也不怎么好,特别是在大规模情况下,因为如果您在多个不同的节点上部署容器,则IT操作人员会跟踪该状态并将其移动到容器的新位置。 那里有很多开销,但这也并不是很好。

另一个选择是将主机连接到NAS,以便容器中的应用程序访问NAS并拥有集中式存储库,但这会增加很多复杂性。 您有许多这些主机要附加到NASes。 它会降低性能,而且NASes仅适合文件。 在构建基础结构时,您肯定需要其他类型的持久性存储,而不仅仅是文件。 最后,存在一种选择,其中出现了一些合并技术,这些技术可以帮助解决或至少尝试解决容器内的持久性。 很多复杂性,很多管理工作,非常早期,因此还有待观察他们将如何做。

您已经看到了容器的所有优点,但是您并不需要经过很多折衷就可以在环境中部署它们。 让我们看一下您绝对想要的一些东西。 部署现有应用程序时,您不需要进行大量代码更改。 您想确保您的环境与您首次编写应用程序时所期望的环境一致。 很多时候,您已经预先打包了应用程序或别人编写了应用程序,因此您没有机会进行更改。 您希望您的环境具有成本效益。 您不想仅仅为了部署容器而花很多钱,从而失去了许多其他优势。

您希望系统具有可伸缩性。 在当今的许多体系结构中,您将看到数据量不断增长,因此您需要一个可以随数据增长而增长的系统,尤其是当这些应用程序本质上可运行并创建数据时。 您希望系统是可管理的。 很多时候,开发人员会否决容器化基础架构的概念,因为其中涉及很多工作。 您要确保系统尽可能易于管理。 最后,您希望能够访问除文件之外的其他类型的存储,例如NoSQL数据库和流,因为毕竟,当您构建现代数据体系结构时,可以从数据中获取更多类型的见解,您需要能够以正确的格式类型存储数据。 这是MapR特别擅长的领域。 实际上,作为容器化基础架构的一部分,您想要的所有这些东西,MapR都可以为您提供帮助。

让我们看看这里。 作为容器故事的一部分,让我们谈谈两个部分。 首先是MapR融合数据平台。 这充当您的持久存储。 我们不仅可以访问文件,而且还为您的发布/订阅框架提供了MapR-DB(它表示JSON NoSQL文档数据库)以及MapR Streams。 所有这些功能一起提供了作为整体基础架构一部分所需的不同类型的数据,不同类型的格式和计算引擎。

那是在您的基础架构方面。 在应用程序方面,我们提供了所谓的MapR持久性应用程序客户端容器。 这样一来,您便可以在这些容器中部署应用程序,从而轻松,自动地访问MapR中的持久性存储。 使用PACC的优点是您可以将它们部署在任何地方。 您可以将它们部署在本地节点上。 您可以将它们再次部署在不同的主机,不同的群集,不同的数据中心,甚至跨云。 您具有灵活性,因为就访问持久性层而言,所需的一切都在PACC内。

另外,PACC的一些优点包括启用安全性的事实,从而可以保护对MapR融合数据平台的传输进行加密,从而保护通信。 除此之外,您还可以在容器级别进行身份验证,以确保您的应用程序仅访问其有权访问的数据。 可伸缩性是MapR中一个非常重要的特征,因此,如果由于数据量不断增长而想要扩展集群,则只需为服务器配置MapR,然后将其添加到集群中,而无需额外的分片,负载均衡,添加该节点,您就可以开始了。

当然,最后我已经说过,您需要将某些额外的持久性存储作为体系结构的一部分。 考虑一下微服务架构,您可以在其中简化从单一类型的架构到可以协同工作的更多特定于任务的应用程序的应用程序。 那就是MapR-DB和MapR流特别重要的地方,那里有用于记录MapR-DB以存储状态的文件。 当您具有以JSON格式存储的不断发展的,分层的和嵌套的数据时,MapR-DB特别有用。 然后,MapR流以一种非常轻巧,可靠的方式作为在每个微服务之间进行通信的一种方式。

希望本白板演练为您提供有关如何为您的容器化基础架构提供帮助的良好概述。 如果您有任何疑问,请在下面填写评论。 感谢收看。

翻译自: https://www.javacodegeeks.com/2017/02/persistent-storage-docker-containers.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值