华为云计算 云知识 华为云Stack基础设施服务架构设计
华为云Stack基础设施服务架构设计

华为云Stack 基础设施服务的产品设计,基于公有云先进的架构技术和创新能力,采用了重构改造+积木式搭配+抽屉式替换等一些典型架构设计理念相结合的方式,继承式的迭代改良产品能力来满足政企客户场景。

  • 重构改造:会侵入原有系统,但具备复用效率上的优势,适用于逻辑重叠且相对确定性的特性;
  • 积木式搭配:与原有系统以接口方式松耦合集成,适用于逻辑相对独立的特性能力;
  • 抽屉式替:换要求系统提供基于模型抽象的框架能力来组合差异化能力,可用于需要差异化灵活适配的场景。

下面我们结合几个具体例子,分享一些华为云Stack基础设施服务从场景分析到设计实现过程中的思考与实践。

IaaS架构设计实践

下面我们结合几个具体例子,分享一些华为云Stack基础设施服务从场景分析到设计实现过程中的思考与实践。

存量异构网络的集成网关

云内的网络自动化设计,通常面向的是云内资源,通过联动云内资源的生命周期管理模块,实现网络的自动化配置,云和外部的连接通常以存在Internet或专线接入为前提。政企客户由于多年IT基础设施的发展,积累了大量存量或异构资源,包括物理机、虚拟化、多种Appliance设备等,这些资源和云之间的连接,往往是同机房或近机房的短距离部署,不依赖Internet或专线,客户需要的是一种高效的二三层直连网络,帮助客户的应用快速上云和互通。

存量异构网络的集成网关正式面向这种场景的设计,考虑到VNF的带宽限制及成本,选择以单组800Gbps吞吐量*N组的硬件交换机来实现中转,可以低成本连接云内VPC网络并提供L2/L3互联能力,形成云内云外的一张网。

图1  集成网关架构设计

如图1所示,云内VPC网络控制器将虚拟机/裸机资源的 虚拟网络 位置信息,通过路由转换模块,转换为EVPN路由,通过消息机制通知集成网关的路由控制模块,配置到集成网关交换机,最后集成网关交换机根据路由信息,配置相应的云内VPC资源的ARP、MAC策略,以及到云内物理主机的隧道策略。

在这个设计中,云内控制器部分做了部分代码重构,新增了路由转换模块和云内VPC资源数据实施对接,同时新增了两个设备管理模块及路由控制模块,和云平台松耦合集成,可独立部署运行,通过积木式搭配满足该场景下的客户要求。

云主机同城主备容灾

政企关键应用在生产中心发生灾难时,需要能够在灾备中心快速恢复业务,另外日常维护的计划内停机,也往往会通过灾备中心过渡,在原生产中心完成计划性活动后将业务切回。云主机容灾服务即是针对这种场景的解决方案,和基于应用层的容灾方案所不同,云主机容灾服务提供了基于IaaS层可以无需上层应用感知或改造的主备容灾能力。客户也可以基于该能力,结合应用层容灾或应用双活的设计,来满足自身的需要。

图2 华为云Stack 同城双AZ容灾设计

这里以同城双AZ场景为例,如图3所示,当AZ1发生灾害,或需要做计划性维护时,管理员可以通过云主机容灾服务,将保护组内的业务通过自动或手工的方式在AZ2恢复。这个过程可以做到数据不丢失,业务恢复时间最小可达10分钟。

这是一个复杂的系统级解决方案,架构设计思想如图所示,采用一种分层解耦积木式搭建的思路:

  • 存储层:研发HyperMetro特性实现数据在生产中心到灾备中心的实时同步,并相上提供双活LUN的接口能力,可以被上层系统松耦合集成。作为存储双活的原子能力,可用于传统IT的使用场景、云场景下计算多路径访问的高可用场景,也可以用于云主机容灾场景,由容灾服务调用进行双活LUN的配置和切换。
  • 计算层:提供主备虚拟机的元数据获取和配置的原子接口,并提供灾备中心创建占位虚拟机的能力。容灾服务通过建立生产和容灾站点虚拟机之间的元数据映射关系,以保护组模型来管理,当需要进行故障切换时,可调用计算层接口进行容灾虚拟机的启动切换终止操作。
  • 网络层:无论是否需要容灾特性,通用的多站点部署环境下,集中式形态的网元首先要解决自身的高可用能力,应对链路故障、网元集群故障、设备故障甚至控制软件问题等多种故障场景,而容灾只是其中一种整体AZ级别的故障模式。通过多集群冗余、链路冗余,设备探测、元数据同步、路由切换等多种手段的结合,首先设计了通用的多站点部署高可用能力,而后提供给容灾服务,来解决双AZ容灾的网络切换问题。
  • 管控层:管控面服务自身的设计和网络类似,首先设计通用的站点内分布式集群冗余的高可用以及多站点部署环境下的高可用能力,解决管控面服务自身的故障切换问题,而后只需要暴露原子切换能力给容灾服务,针对站点故障时做容灾切换的操作。

可以看出,以上各层提供的是应对通用故障场景下自身的高可用原子能力,并且相互之间不形成依赖耦合关系。而容灾服务设计为一个独立解耦的模块,集成各层的能力,内聚编排、策略、演练、任务流程,并最终提供面向管理员的容灾服务化体验。

云平台集成3rd块存储

客户由于自身的采购策略或业务连续性等种种因素的考虑,会存在软硬件分层的诉求。从云平台软件的角度,一定程度的南向开放能力,也是作为软件平台的开放架构下的竞争要求,可以促进市场生态的繁荣。

同一厂商对自身同构设备的集成,由于研发组织协作紧密、特性路标规划明确、版本配套互锁,短路径集成性能更优等一系列原因,通常会忽略对良好的开放性和能力差异化的设计考虑。下图以云平台集成某3rd块存储的实践为例,分享一些云平台在南向开放集成时的设计思路。

图3 第三方存储集成设计

如图3所示,对南向设备的集成,包括管理运维、服务控制、及数据面集成几个层次。数据面的集成,包括存储、服务器及网络设备在内,采用成熟标准的协议来对接。管理运维通常直接采用设备厂商的自带系统,对于管理运维协议标准化成熟度较高的设备,也可以考虑集成到统一管理运维平台来提升体验。

控制面的集成,是设计复杂性的集中体现。一是设备的控制方式鲜有一致的标准,接口语法和语义各有不同,如果不做统一设计,逐款对接会导致管控面的处理逻辑代码相互耦合,难以维护;二是设备的能力、规格和性能参差不齐,多种组合会引起代码分叉严重,开发和交叉测试代价居高不下。

我们采用部分重构结合抽屉式替换的思路来缓解这个问题,模型部分抽象出存储服务等级描述如性能、容量、保护能力等,来简化屏蔽细节差异的代价;通用的南向框架提供以Driver机制接入的方式来集成多种不同类型的南向设备,减少对主体控制流程的侵入;自动配置重构优化针对设备能力差异如快照、回滚、复制、动态调整等特性做自动识别从而减少代码级别的耦合。进一步更灵活更解耦的优化改造也正在设计和实践中,包括彻底的二进制级的部署解耦,运维边界划分的设计,以及面向3rd设备厂商的开放的自动化集成测试验证流程的工具集等。

跨平台云 主机迁移

IaaS技术的发展会存在一些跨代的阶梯式演进,如虚拟化引擎从XEN到KVM、经典VLAN网络到隧道网络,单体平台架构到分布式平台架构等等。在提供更先进的技术生产力的同时,也要尽量避免对客户的已上线业务造成影响。新平台通过解耦的管理系统纳管旧平台来水平演进,并提供平台间的网路互联服务,是一种比较稳妥的解决方案。而对于一些客户,也希望能够提供业务的迁移能力,高效的把旧平台上的存量业务便捷的迁移到新平台。

通用的迁移方式,是提供和云平台不相关的迁移工具,基于计算资源内的代理模块做数据同步和资源重建。这种方式的适用范围更广,但也存在着较为低效的问题,同时由于和云平台能力互不关联,数据模型的重建无法借助云平台提供,在迁移体验上会有损失。

基于这个考虑,在满足一定条件的前提下,我们针对部分高优先的场景,做了一些尝试和实践,可以基于存储数据不搬迁的方式重建计算资源,消减数据拷贝带来的影响,同时利用和云平台的配合,提升配置同步的自动化体验。

图4 跨平台云主机迁移设计

这个设计是独立解耦的积木式搭配思路,对云平台不做任何侵入式改造。基于独立的迁移服务模块,以松耦合北向API对接平台的方式,可以形成和云平台无关的可独立演进的服务,既不受平台版本的内部迭代变化和研发进度约束,又具备了可以持续累加能力的演进性。在当前实践的限定使用场景之上,未来也可以不断扩展到更多的平台形态,更多的服务特性如迁移、调度、网络互连,配置同步等,以及更广泛的多云跨云场景下的混合控制能力。

以上列举的几点,是华为云Stack基础设施服务和政企客户共同探索过程中沉淀下来的场景化产品能力,在众多客户的实际生产环境中发挥着良好的效果。同时我们也实践了软件架构设计中的一些典型思路,通过局部改造结合解耦分层设计的实践,有效避免了由于碎片化发散带来的产品不可持续演进的风险。


 
华为云Stack
华为云Stack是部署在政企客户本地数据中心的云基础设施,通过持续创新,打造安全、可靠、高效的混合云,以用户视角一朵云的能力,助力客户从业务上云迈向深度用云,释放数字生产力。
上一篇:服务器有什么作用 下一篇:云速建站如何添加站内搜索功能

华为云

面向未来的智能世界,数字化是企业发展的必由之路。数字化成功的关键是以云原生的思维践行云原生,全数字化、全云化、AI驱动,一切皆服务。

华为云将持续创新,携手客户、合作伙伴和开发者,致力于让云无处不在,让智能无所不及,共建智能世界云底座。