王作敬
作者王作敬2019-03-28 15:50
管理信息系统总监, 银河证券

容器云和云管平台融合

字数 3458阅读 546评论 2赞 5

作者:汪照辉 王作敬
汪照辉个人页面


记得去年和一个厂商的朋友讨论容器云的问题,提到多云管理是否应该放在容器云,我说,放云管啊!容器云可以实现多集群管理,但多云管理应该在云管平台去实现。后来也就没考虑太多。当前我们内部也提出了容器平台和云管理平台的整合需求。也和几家厂商进行了交流,感觉厂商提供的不是我们期望的实现方案。经过一段时间的思考,容器云和云管该怎么定位和功能整合,使其能够融合在一起,而不是简单的整合集成在一起,我们有了一些思路和想法,在此与大家分享,希望能相互学习,取长补短。

一、 容器云和云管理平台定位

理论上说,容器云平台应该在云管理平台的统一管控之下。不管哪种云资源:私有云、公有云;也不管采用什么技术实现的云平台:容器云、虚拟化云、VMware或Openstack等;又或者不管哪个厂商提供的云服务:AWS、Azure、Google、阿里、华为等;也不管企业内建立的多少朵云,都应该统一在云管平台的管控之下, 也就是构建自己的混合云管理平台。但不同的技术、不同的厂商、不同的平台、不同的接口要整合在一起通常并不容易,更不要说让它们无缝融合在一起。不过不容易并不代表不可能,让我们抽丝剥茧先看下容器云和云管平台的定位,厘清楚各自的特点和职责范围。

(一) 容器云定位

从公有容器云建设角度来说,容器云提供容器服务,并不关心客户如何使用容器服务运行什么业务应用。从私有容器云建设角度来看,客户更关心的是业务应用,所以要建设支撑业务应用生命周期管理的能力:开发、测试、部署、发布、运维、运营、监控、日志、告警、调度、API管理、认证、权限等等能力都需要具备。侧重点不一样。虽然公有云也可以提供这些能力,但其侧重点和实现复杂度就明显不在一个数量级上。暂不谈公有容器云实现,只考虑企业私有容器云的实现。基本上我们都是拿容器实现轻量化PaaS平台,支撑业务应用微服务架构。所以至少要实现容器资源管理和支撑微服务应用管理和治理的能力。

(二) 云管平台定位

云管理平台通常实现企业的云基础设施资源管理,不考虑应用或微服务的生命周期过程。云资源有很多种,通常会涉及企业内自建的私有云和公有云,实现统一的混合云管理。私有云实现有很多,VMware虚拟化、OpenStack、ClundFoundry、公有云私有化部署等等。通过云管实现对不同私有云和公有云的管理,基本上都是倾向于对多云平台的管理,提供资源服务,重点不在于业务应用管理。
相对于容器化PaaS平台关注应用,云管平台更关注云资源。不管公有云还是私有云都离不开计算资源(物理机/虚拟机/容器的CPU、Memory)、存储资源(块存储、文件存储、对象存储)、网络资源(IP资源、端口、DNS、网段、路由等)。每种云平台都可能有自己独特的资源类型。比如提供普通的NAS磁盘或者SSD闪存服务。这些资源可能分布在不同的云平台,或者不同的数据中心,这些数据中心和云平台其实就是一个个大的竖井,需要把这些资源进行整合,这就是云管平台要做的事。

二、 整合需求提出

我们建设了基于虚拟化的云管平台和基于容器技术的容器云平台,容器云平台使用虚拟化资源,而我们服务的业务研发团队既需要虚拟机资源也需要容器资源。为了更好的为各团队提供服务,领导要求提供统一的资源申请和管理门户;把两个平台整合在一起,实现统一认证和权限管理;同时在容器使用过程中根据调度的需求,需要知道虚拟宿主机的信息,甚至是所在机房、机柜、机架等信息,这样在容器调度时可以从物理位置层实现相对更安全的调度。

(一) 统一的管理门户

目前容器云平台和云管平台有各自独立的管理门户,需要把他们整合在一起;同时从长远考虑,可能会涉及容器云多集群,多云管理的需求。基于平台融合的发展思路,不可能还象单体系统建设那样,各自独立。需要把这些平台整合在一起,基于统一的门户,统一提供基础设施资源服务。

(二) 统一的权限认证方式

暂不考虑公司内系统众多,仅容器云平台和云管平台就采用不同的认证和权限管理体系,维护管理重复浪费。我们期望由统一的方式来实现云管平台和容器云平台的认证和权限管理。

(三) 应用管理能够向下钻取到基础设施的细节

目前容器云平台在应用部署时无法获取到所选择的虚拟机是否在哪一台物理宿主机上。这就存在这风险。如果部署的服务实例碰巧都在一台宿主机上的虚拟机上,一旦这台物理机损坏,就会导致服务不可用,也就失去了容器异常迁移的特性,因此需要知道虚拟机所在的宿主机信息,甚至更详细的基础设施细节。

(四) 存储、网络等资源纳入管理

容器云和云管平台没有真正管理起存储和网络等资源。我们希望把这些基础设施资源都能管理起来,按需分配。一方面可以对资源进行梳理,有个清晰的认知;另外也减少手工维护管理的工作,实现自动化。

三、 容器平台和云管平台融合思路

(一) 谁来整合谁

理论上应该由云管平台整合容器云平台。但这就是理论上从资源角度来考虑的。现实是容器云平台我们建设成为了应用部署运营平台和微服务管理平台。让云管平台来接手应用和服务管理,也明显不合适。但是容器云平台又明显不适合接管云管。所以我们也尝试和多家厂商交流过整合方案,但不甚满意。
我们在建设容器云平台时,划分了平台管理视角和租户应用管理视角。平台管理主要实现资源管理,租户管理主要关注应用管理。我们考虑如果把容器云资源管理交给云管平台,而应用管理构建为应用和微服务运营平台,使用云管平台提供的各种云资源服务(公有云、容器云、虚拟化、资源池等的计算、存储、网络等资源服务),就可以很好的整合在一起,依然是两个视角:平台资源管理视角和应用管理视角。使两个平台很好的融合在了一起。
1.资源管理视角
我们在构建容器云平台时,定义了一个“资源分区”的概念。初始是考虑把容器资源划分为独享或共享分区。在和云管平台整合时,我们发现这是一个非常好的定义。不管私有云、公有云、虚拟化、容器云、存储资源、网络资源等,我们都可以划分在一个个资源分区内。而部署时可以选择相应的资源分区进行部署,应用不需要做什么改变。只不过如果部署在虚拟机上,不能使用镜像,稍微繁琐点,不过通过提供一些成品化的虚拟机(预安装所需组件)来简化或实现自动化部署。不同的云平台提供不同的资源类型,每种资源可以划分为一到多个分区。比如需要AWS云资源分区,直接从云管划分AWS云分区给租户。租户下可能有AWS资源分区、Azure资源分区、容器云资源分区、虚拟化资源分区等,根据应用部署需要来选择合适的资源分区进行部署。
2.应用管理视角
云管平台提供资源,应用使用资源。应用属于不同的租户(客户用户)。租户为了应用的高可用和安全等因素,可能会选择多实例或多集群或多数据中心或多云部署等。能选择什么资源取决于资源管理(云管平台)接入的资源类型。比如目前我们只有容器资源,然后考虑支持虚拟机资源。将来可能接入公有云、行业云等。但对租户(应用管理视角)来说,仅仅是申请和使用资源,并不维护资源,重点在于业务应用的开发部署等管理和运维运营。资源接入和维护由云管平台(资源管理视角)来实现,然后分配给不同的租户使用。

四、 方案实现

基于上面的思路,我们按照容器云平台的设计思想,定义云平台资源管理和租户应用管理两个视角,也就是两种角色:云平台资源管理角色和租户应用管理角色。云平台资源管理实现统一的云平台接入和基础设施资源管控,租户使用这些资源部署运营自己的业务应用。这样可以很好的融合云管和容器云平台,使之成为一体。

(一) 云管平台实现统一基础设施资源管控

容器云集群资源无论是单集群、多集群或者多数据中心等都统一纳入云管平台进行管理。其他云平台或者云资源也可以管理起来,比如物理机、NAS存储、IP资源等等。这样公司的基础设施资源可以统一来管控和分配,也可以根据需要适时开放计量计费以实现内部统计评估,避免资源浪费。

(二) 以容器云应用管理思想实现多云应用管理

也就是一个租户内可能有各种不同的云资源,租户可以无缝的使用这些云资源分区进行服务部署。由容器云平台初始的容器资源分区扩展为多云资源分区,但应用管理各功能并没有变化,不同的应用选择所需的不同的资源进行部署和运维。

(三) 一个门户不同角色不同视角

使用统一的认证和权限体系,定义不同的角色,从不同视角展示平台的功能。但都是由同一个门户进入,使容器云平台和云管理平台融合为一个平台。

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

5

添加新评论2 条评论

#wuwenpin软件开发工程师, 南京
2019-04-05 21:29
非常不错的资料,学习了!
#he7yong研发工程师, Canway
2019-04-05 13:06
汪老师的每篇文章都是有深度的思考,并且结合自己的实践。非常喜欢
Ctrl+Enter 发表

关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
© 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30