fggang
作者fggang2018-03-05 09:46
系统安全工程师, bjrcb

容器云很火,企业级应用如何考虑其存储架构的搭建?

字数 4552阅读 11281评论 3赞 5
无疑,容器云是目前企业级应用最热的话题之一。那么,应该有什么样的存储架构,才能够满足容器云其私有镜像库和容器持久化的需求?

在企业级应用领域,如果要问最近最热的话题是什么,容器一定能算其中的一个。

资料显示,95%的公司正在使用云计算技术,对于私有云和混合云的采用也正在逐步增长,相关技术人员对于容器(Docker)和容器云的兴趣在急剧扩大。在2016年使用Docker容器技术的企业,急剧增长了40%!

如同中国银河证券股份有限公司 信息技术部IT研发中心汪照辉和王作敬在其文章 《以微服务的思想实施容器云》(http://www.talkwithtrend.com/Article/219699)中所述,基于容器技术的容器云在过去的2017高歌猛进,势不可当。各个容器厂商呈现春秋争霸之姿、战国争雄之态。

为什么容器云备受欢迎?

容器技术与虚拟机技术类似,但是解决了不同的问题。在过去的一段时间,容器技术备受瞩目,主要是因为容器更好地解决了企业IT人员的一些需求和挑战,而采用容器来实现云计算技术,则对于很多特定的应用场景来说,更加能够满足企业IT从业人员的要求。

从本质上来说,容器云是一种轻量级的容器虚拟化平台,以及一套标准的开发、构建、部署、运行的流程,它还可以整合各类工具,诸如持续的集成、数据库与缓存,大数据等等。从某种程度上来说,容器云兼有IaaS的灵活性,以及PaaS的便利性。

比较而言,相对于虚拟机,容器更加轻量级,其性能也更加优越。虚拟机一般都在数千兆字节大小,而容器一般只需要几兆字节。因此,与虚拟机的分钟级启动相比较,容器能够在数秒钟内就可以启动或者重新启动,不需要太多额外的开销,因此容器能够消耗更少的CPU和内存。

因此,不管是DevOps还是轻量级的PaaS或者微服务,如果采用容器技术,都能够获得非常大的优势。

开发人员喜欢容器技术,因为容器构建一次之后,可以在任何地方运行,能够为其应用程序提供一个干净、安全、卫生、便携的运行时环境;在其自己的独立容器中运行每个应用程序,也可以为每个应用程序运行各种版本的库和其他依赖项目;此外,包括自动化测试、集成、封装等,都可以实现脚本化等等诸多好处。

管理人员喜欢容器技术,理由就更多了,比如说配置一次,可以运行任何应用,毕竟容器云的容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等等;整个生命周期更加高效、一致以及可重复;能够提高开发人员产生的代码质量;以及,能够消除开发、测试、生产和客户环境之间的不一致等等。

就像中国大地财产保险集团信息技术部云平台架构师顾文俊在一次主题为“GPFS如何实现容器云持久化存储”(http://www.sohu.com/a/220445896_151779)的分享中所表示的那样,“金融保险行业IT变革必经之路”,就是“容器化”。他认为,毕竟如果不是用容器化的技术,传统的应用基础架构部署难度大、重复操作、效率低下;也无法及时响应业务多变的需求;以及,计算资源利用率会比较低等等各种不足之处。

为什么需要私有镜像库和容器的持久化存储?

随着容器云得到越来越广泛的追捧,对于容器使用的要求也逐渐提升。在回答私有镜像库和容器持久化对存储的要求之前,我们需要先理解一下容器持久化存储及其趋势。

在容器的最初设计中,数据与容器共生共灭,人们很难把容器从一台机器迁移到另一台机器,因此在容器中部署的应用大多数是Web服务器这样的无状态服务器程序。无状态容器服务出现问题之后,只要直接杀掉,新建一个就行,管理起来非常简单。

但是逐渐地,企业需要容器提供有状态的服务,有状态容器,即能够存储相关数据的容器应用就越来越成为主流。比如说数据库,它要求容器的数据有更长的生命周期。这就要求容器具备持久化存储的能力。

如大家所熟悉的,容器架构中需要使用三种类型的存储:镜像存储、容器管理数据、容器应用的存储。

容器镜像相对于虚拟机而言,体积要小得多,因此它可以更高效地存储与共享;而容器管理数据可以借助现有存储完成相关的工作。

真正最具挑战性的,还是容器应用的存储。容器使用分层的文件系统,所有新写入的数据都存储在临时虚拟层,最底层的容器镜像并不做修改,一旦容器灭失,所有的临时存储数据都会随之消失不见。

署名为大地保险系统架构师Garyy在其文章《容器持久化存储必要性分享总结》(http://www.talkwithtrend.com/Article/217861)中表示,对于容器中运行的应用,如果真正需要保存的数据,可以写入持久化的Volume数据卷,Docker发布了容器卷的插件规范,允许第三方厂商的数据卷在Docker引擎中提供数据服务,这使得外置存储可以超过容器的生命周期而存在。

企业级容器云持久化存储面临的挑战

通过插件,容器就可以通过相关驱动程序与现有的各种存储进行对接。从设计原理上来说几乎没有什么风险,但是如果是银行、保险等金融机构进行业务应用的话,那么就需要确保相关的插件实现的持久化存储,其技术的稳定性、可靠性能够满足金融行业的苛刻需求,也必须能够与现有的传统架构相融合。

另外,根据中国大地财产保险集团信息技术部云平台架构师顾文俊的观点,容器云的持久化存储还将面临弹性伸缩方面的挑战。一旦容器云中的容器增长到成千上万的规模时,由于大量容器是临时运行并且不断迁移的,它们所依赖的持久化存储能力,如果是紧耦合到特定容器宿主主机的话,这就会给整个容器架构的可扩展性和弹性伸缩能力带来极大的麻烦。

此外,容器持久化存储还需要考虑数据监控的问题。一般来说,容器持久化存储的实现需要依赖容器外部的存储能力,对于I/O要求比较高的应用会用宿主机的本地磁盘,而容器内部只能看到持久化存储数据已经使用的空间,并不能看到外部数据盘的大小。如果容器数量不多,而且设置相应的规则,那么就可以监控外部数据盘,如果容器数量过多,以及用到了不同的外部存储卷,那么针对单个容器进行精细化的持久化数据存储监控,就需要专业的产品来实现辅助。

更何况,对于金融机构这样的企业级要求的容器云部署,还需要考虑镜像库管理的安全性、网络相关的安全性、跨主机以及容器之间负载均衡的能力等等。简而言之,容器云的企业级应用需要全生命周期的管理能力,从而保证数据的安全以及业务连续性。

因此,尽管目前已经有很多提供容器持久化存储的解决方案,开源的解决方案也有很多,但是开源的方案大多产品化严重不足,需要专家级团队的支持,好在包括IBM、HPE、Dell等各大厂商都有支持容器持久化存储的商业化插件技术。因此对于一般的金融企业来说,还是选择IBM Ubiquity Volume Plugin等这样的大厂商所推出的插件技术更为稳妥。

如何选择私有镜像库与容器持久化存储方案?

如果企业需要安全、可靠的容器私有镜像,也需要该解决方案提供基于存储的企业级数据管理能力,那么基于IBM Cloud Object Storage云对象存储(原Cleversafe)或Spectrum Scale的容器私有镜像库方案是不错的选择。

一方面,IBM Cloud Object Storage云对象存储方案能够兼容所有主流的公有云接口, 也能够实现多节点纠删码模式,提供高可靠性;更重要的是,它具备大容量、高性能、易扩展的特性,支持多租户方式使用;它还能够结合Spectrum Protect实现数据的备份和生命周期管理,也能结合容器云平台的高可用能力,实现应用双活,可实现企业级的数据远程灾备。

另一方面,IBM Spectrum Scale文件存储方案能够实现多节点多副本模式,从而提供高可靠性;它也具备大容量、高性能、易扩展的分布式文件系统,能够基于policy的自动数据分层及数据全生命周期管理;同时,IBM Spectrum Scale结合Spectrum Archive或Spectrum Protect对接带库或对象存储实现数据的自动化备份归档,也能够使用AFM/Async-DR功能实现企业级的数据远程灾备功能。

这些特性使得IBM Cloud Object Storage云对象存储或Spectrum Scale的容器私有镜像库方案,适用于On-premise或Hybrid Cloud部署模式下的容器应用,不论是无状态容器( Web服务, Tomcat等)还是有状态容器(轻量级DB-MySQL, HDFS等),都能够得到满足。

如果企业需要相关的解决方案能够提供高性能、高可靠的容器持久化存储,也能够支持有状态容器的夸物理机在线迁,以及提供基于存储的企业级数据管理能力,那么基于IBM Spectrum Scale with Ubiquity的容器持久化存储方案,就是很好的选择。

作为企业级的容器云插件,IBM的Ubiquity Volume Plugin提供容器与文件系统的直接交互能力,也具大容量、高性能、易扩展的分布式文件系统;能够实现多节点多副本模式,从而提供高可靠性;它支持多容器并行访问,提供统一的名称空间(namespace),支持有状态容器的跨物理机在线迁移;它也能够结合Spectrum Scale的功能特性(分层、基于策略的自动迁移、AFM/Async-DR等),从而实现企业级数据管理功能(数据的全生命周期管理、数据备份和灾备等);同时,该方案结合Spectrum Archive或Spectrum Protect,还能够对接带库或对象存储实现数据的自动化备份归档;更重要的是,该方案结合容器云平台的高可用能力,能够实现应用双活。

因此,如果企业需要在开发测试云、DevOps中的数据密集型容器应用,实现有状态的容器应用,那么基于IBM Spectrum Scale with Ubiquity的容器持久化存储方案,将会是不错的抉择。

最后,如果企业需要容器云能够支持大规模容器的快速启动,提供高性能、高可靠的容器持久化存储;也需要支持有状态容器的跨物理机在线迁移,提供基于存储的企业级数据管理能力,基于IBM FlashSystem with SCBE and Ubiquity的容器持久化存储方案将是很好的选择。

在该方案中,IBM Ubiquity Volume Plugin和SCBE提供容器与块存储直接交互的能力;该方案也支持Spectrum Accelerate和Spectrum Virtualize家族存储产品接入,使用FlashSystem则可有效降低I/O响应延迟;此外,IBM Ubiquity Volume Plugin层提供并行访问能力,支持持久卷的在线快速迁移;通过结合块存储的功能特性(快照、数据复制、HyperSwap等),该方案实现企业级功能(数据备份、数据灾备及高可用等);当然,结合容器云平台的高可用能力,实现应用双活,以及结合Spectrum Control和容器云平台,提供存储层的使用监控和管理;最重要的,也可通过Spectrum Scale的分层功能特性实现企业级数据全生命周期管理,从而满足企业的需求。

容器云正在成为越来越多企业的选择,正在准备部署容器云的企业,你们做好相关的准备了么?

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论3 条评论

hunshiwangrenhunshiwangren技术支持, 中电信数智科技有限公司
2021-01-12 17:41
不错,学习学习
zyralzyralit技术咨询顾问, PwC
2019-04-20 13:02
很好,谢谢分享
wuwenpinwuwenpin软件开发工程师, 南京
2018-03-28 17:10
学习了
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广