1.4 企业级容器云总体架构方案设计

在新战略和新形势下,企业加快系统架构云化的转型势在必行,IT业务支撑系统正在由分散逐步走向集中。新一代的云计算技术毫无疑问会给整个企业的开发、运维、服务管理、持续集成、持续交付、传统中间件及业务应用带来深刻的变化,实现更高的性能及效率。在设计企业级容器化PaaS平台架构方案时,需要从以下两方面进行考虑。

(1)如何建设和维护大型业务处理和计算集群。

(2)开发和运营团队如何在这种新型的PaaS平台上高效工作,以及如何定义一套完整有效的工具集,以及容器云平台的建设运营框架体系。

容器云PaaS平台的建设是企业基础设施平台云化建设的基石,因此,必须有一个长远性、全局性、方向性的整体规划。我们以“厚PaaS、轻应用、微服务”为架构设计的总原则,来构建企业级容器云平台。在具体设计容器化PaaS平台架构之前,我们设计了企业混合云(Hybrid IT)的整体架构规划,如图1-1所示。

img

图1-1

该架构规划分为以下几个关键部分。

(1)Hybrid IaaS子系统:实现对数据中心IT设备(主机、存储、网络)整个生命周期(即IT设备上架后的发现、纳管、配置、运行监控、故障告警和脱管下架)的管理,其中包括对资源、配置、性能、告警、租户及订单的管理。南向提供各类接口,与X86服务器、存储、网络、虚拟化软件、SDN、分布式存储等各类私有云资源池的资源进行对接,并提供与公有云的接口,快速实现与Amazon AWS、Microsoft Azure、阿里云、腾讯云、百度云等各类主流公有云的对接。

(2)容器化PaaS子系统:是一个全新的基于容器技术的分布式架构的集群管理平台,选择以开源技术Docker和Kubernetes为基础来构建,以“容器+微服务”为架构核心,形成标准化、灵活、开放的平台核心支撑层;以容器为基础封装各类应用和运行环境,为上层应用提供一个统一的开发、测试和运行环境;提供多租户安全集中管控、镜像管理、应用统一部署、应用配置统一管理、域名统一管理、服务配置数据管理等功能;并内置各种基础的通用的技术服务(例如数据库类、存储类、缓存类、消息类、日志类等),满足企业应用能力的复用、整合和快速开发部署的需求。

(3)大数据管理子系统:该系统通过以Hadoop架构为基础的大数据处理平台,对内核进行了优化和重构,满足其在广域网环境下的高性能数据处理需求;采用分布式处理,以HDFS为存储介质,用MR编程模型编写和处理应用,对数据进行采集、处理、转换、汇总、过滤和加载等,实现容器云平台的多样化,以及海量数据的聚合与处理;基于事件触发的数据调度引擎对数据全生命周期进行管理,并结合Spark、MPP的高性能数据分析和挖掘引擎,为企业内外的各系统提供高价值的数据服务与数据应用支撑能力。

(4)微服务管理子系统:微服务管理架构的总体思路是以容器云PaaS平台为基础支撑,采用容器化技术进行微服务的封装、部署和管控;为不同类型的微服务提供差异化的管理策略,并通过微服务治理平台进行微服务定义与设计、微服务测试、服务管控、服务安全、微服务配置与部署,以及微服务运行与监控,以实现多种复杂应用场景的敏捷交付、独立快速部署、高可用和弹性扩展。容器化PaaS平台有效解决了微服务的环境搭建、部署及运维成本高的问题,为开发者提供部署和管理微服务的简单方法,它把所有这些问题都打包和内置解决了,大大推动了微服务的大规模应用。

(5)AIOps管理子系统:该系统主要聚焦于开发运维一体化流水线、持续集成、灰度发布、智能运维机器人、智慧分析、智能告警、安全管理等能力的建设。随着AI技术在各个行业和应用领域的落地及实践,IT运维也将迎来一个智能化运维的新时代。在运维发展的过程中最早出现的是手工运维,在大量的自动化脚本产生后就有了自动化运维,后来又出现了DevOps和AIOps智能运维。通过持续的机器学习,智能运维将把运维人员从纷繁复杂的告警和噪声中解放出来。

(6)SaaS应用子系统:在应用层面,可以实现在容器云PaaS平台基础架构的基础上,快速支撑电信、电力、航空、政府、金融、石油等行业的SaaS应用。

容器云PaaS平台是企业IT集中化建设的基础设施平台,在本书的企业级容器云PaaS平台的实践中,我们的建设目标是结合业务场景需求,构建容器化PaaS基础设施服务平台,并在此基础上对微服务进行集中管控、智能运维和容器云全生命周期等运营管理。在容器云PaaS平台的集中管控框架下,对主机、网络、存储、应用环境、开发、部署、集成、运维等过程等进行分析和规划,以资源的集中管理及应用的统一快速部署、不中断业务的灰度发布、集中操作管控及集中运维监控为核心管理目标,构建一个高可用、高性能、高扩展的集中化PaaS平台,并相应地制定一系列标准、规范和流程来保障运营过程。

在容器云PaaS平台的总体架构设计中,项目技术团队根据IT业务支撑系统的应用特性、部署现状、未来发展和云化实践的现状,对系统架构做了大量的分析、探讨和研究,提出了如图1-2所示的容器云PaaS平台的技术架构规划。

img

图1-2

该架构以Docker容器为承载,以微服务架构为支撑,将Kubernetes作为集群管理平台。容器云PaaS平台基于廉价、异构的小机、X86物理机、虚拟机等,实现对多集群的统一管理,通过微服务管理框架实现灵活的业务服务管理,通过多租户设计实现资源的安全隔离,通过智能调度引擎实现应用的快速发布和应用的弹性扩缩容,来构建一个高效、弹性、智能的容器化PaaS平台。

在企业级容器云架构方案的设计过程中,需要遵循以下设计原则。

(1)先进性和成熟性:互联网技术发展迅速,新的技术不断涌现并趋于成熟,系统设计需要在满足实用性的基础上,立足高起点,选用先进性和成熟性融合较好的技术,既要确保平台领先,满足3~5年的技术发展需要,又要确保较好地经过实践验证。

(2)开放性与标准化:平台选用的所有产品和技术都需要符合国际、国家相关标准,是开放的可兼容系统,能兼容不同厂商的产品。因此,在总体设计中应秉承开放式、松耦合、标准化的设计原则,使系统有适应外界环境变化的能力,易于调整、扩充和组合,最大限度地满足业务要求。

(3)可靠性与安全性:安全可靠地运行是整个系统建设的基础。平台需要提供良好的安全可靠性策略,支持多种安全可靠性技术手段,制定严格的安全可靠性管理措施。并且要具备容错、备份及自诊断模块,便于快速判断和排除故障点,还要配置严密的数据安全体系,避免非法入侵,确保系统数据的准确性、正确性,防止异常情况的发生。

(4)可维护性和易用性:平台要提供界面化的管理工具,实现对系统的日常维护,提供智能运维、运维机器人等先进的运维管理手段,同时提供及时可靠的告警和通知机制。在容器技术普及之前,企业通常都已经有比较成熟和稳定的其他IT系统,为了使容器平台更容易被接受和使用,应让容器平台融入企业原有的整个IT系统。

(4)运营流程的敏捷性与规范性:平台要具备系统开发和更新的敏捷性,能够敏捷地支撑各类复杂业务的交付,同时对流程复杂的应用具备可管理性。因此,平台具备一个高效的流程设计和管理工具就成为一个必要条件,在业务变更时使开发过程更加规范、高效和快捷。