某保险企业容器云 PaaS 平台实践经验分享
本文主要介绍了集团内容器云PaaS平台的建设与应用过程。该平台以Kubernetes为核心技术,在容器化环境中实现快速部署和高可用性交付。文中详细阐述了平台的技术选型(如选择OpenShift)、架构设计(包括组件层级关系和监控体系)、实践应用(如基于GitLab CI的云原生改造)以及业务效果(如资源利用率提升和快速伸缩能力)。同时指出了建设过程中面临的挑战,并提出了未来发展的方向和技术改进措施。
摘要
摘要
一、建设背景
全面上云及向云端迁移被视为趋势,在保险行业中科技驱动已被广泛认为是推动企业数字化升级的关键方向。相较于传统虚拟化技术而言,在资源利用率与灵活性方面的提升幅度相对有限;云计算与大数据结合再加上人工智能等新技术的应用已成为各企业的重要战略选择。这些创新实践正逐步推动保险行业的全面向云原生架构转型进程,并聚焦于弹性计算平台、AI与GPU结合架构、边缘计算系统以及Serverless模式等主流配置方案。为了实现这一目标,在Kubernetes(K8S)这一主流容器 orchestration 平台的基础上,并在其底层运维支持体系中引入Service mesh(即SRE理念),从而有效提升了系统的可用性水平的同时降低了整体成本投入(TCO)。这种底层运维优化不仅有助于提高资源利用效率,还能为企业上层应用创新提供更高效的运行环境保障。此外,在微服务架构下借助DevOps理念以及分布式系统管理能力的持续优化,则使得容器虚拟化技术和相关基础设施成为数据中心下一代云基础架构的主要选择。
1、企业业务应用系统分层
企业软件开发的一个发展阶段,简单点梳理可以为:
企业级应用软件开发系统均基于私有云环境和数据中心进行了开发、设计与环境运行。
软件开发、设计、测试等在企业内部,但是最终部署在公有云环境运行;
软件的开发、设计和测试阶段以及构建及部署流程均采用公有云环境实施,并对持续集成工作流程进行全程管控。

2、基于PaaS平台的IT架构加速企业业务系统敏捷
在软件行业发展进程中,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS) platforms方面,在推动云计算服务 provided as a service (PaaS)平台方面的container技术被视为关键因素. 在软件行业发展进程中, Docker container technology emerged as one of the most notable trends in the software industry during 2016. Docker container technology represents a lightweight virtualization solution. It achieved significant progress in achieving uniform application packaging and established standard deployment practices for hybrid cloud environments.
微服务架构推动企业软件架构发生了根本性变革。该系统采用将应用划分为众多细粒度的服务单元构成的应用架构模式。借助容器技术实现了企业级应用开发、部署和性能弹性伸缩能力的提升。基于业务关联性划分微服务单元,并通过合理设计实现各子系统间的高效协调运作。

二、容器云PaaS的建设目标
Kubernetes被用作容器编排的标准推动了PaaS技术的演进。通过融合形成了一种基础架构。云计算时代为企业提供在生产环境中运行容器应用的基础架构。
基于K8S技术构建的容器云PaaS平台主要包括以下几项核心功能:首先是对云管服务搭建的支持;其次是实现CI/CD流程对接;然后是针对应用镜像(应用商店)进行管理;接着是对日志收集与监控分析对接;之后是制定服务编排策略设计;再者是优化资源调度配置;最后是对网络存储服务进行优化配置。该平台旨在为企业提供高效、可靠且可扩展的一站式容器应用管理解决方案,并助力企业快速实现业务价值最大化和系统效率提升。

三、容器平台建设架构设计及实践经验
1、技术选型
自2019年初起开始开展技术调研工作,在选型阶段我们主要考察了Kubersphere 、RancherLab、Kubernetes以及OpenShift等几款主流方案。通过进行深入的技术预研和性能评估后,我们最终确定采用的是OpenShift方案
决定采用OpenShift平台的原因在于这一解决方案是一个私有化的基于Kubernetes的企业级平台-as-a-Service(PaaS),主要用于通过容器化技术实现应用的部署与运行。考虑到我们当时在容器技术和人员储备方面正处于起步阶段的状态,在引入平台并进行定制适应的过程中具有较短的建设周期,并且可以通过参考同类企业的应用案例来优化实施流程。

2、OpenShift组件架构
OpenShift的主要组件由主节点、节点以及容器仓库(Container Registry)、网络层(Network Layer)、服务层(Service Layer)、Web控制台和命令行界面(Command Line Interface)组成。
各组件之间的层级关系如下图所示:

3、技术支撑
容器云PaaS是由Kubernetes(OpenShift)构建的,并具备分布式、多租户和企业级特性。该技术作为下一代云计算技术,并具有重要意义地支撑我司数字化转型和新技术研究。
l企业级PaaS平台能力:高可用集群,弹性伸缩,多租户安全隔离;
l高效开发运维能力:物理机直接部署,完善的运维和监控体系;
lDevOps能力包含持续集成/持续交付(CI/CD)、微服务治理能力以及全面的应用管理功能。这些核心能力不仅能够快速构建、部署以及运维容器架构,并且能够通过敏捷开发理念和全生命周期管理策略实现应用的高效运营与持续优化。

4、技术堆栈
容器云PaaS平台主要包含以下几个关键组件:包括但不限于WebConsole用于用户界面管理、GitLab CI作为持续集成工具、Kubernetes(K8s)用于容器 orchestration、ETCD作为持久化存储系统以及CRI-O框架提供特定的功能模块。基于底层Redhat CoreOS操作系统执行OpenShift核心组件的功能。

5、逻辑架构
容器云PaaS平台是一种用于管理和优化容器化应用的分布式系统,在这一平台上能够实现一系列高可用性、高性能和可扩展性的功能支持。其基础架构由多组主机计算节点、网络设备以及存储系统共同构成一个完整的容器集群环境。
整体系统架构方案如下:运维团队负责容器集群内基础节点、控制节点及计算节点的调度配置(包括但不限于资源分配策略、带宽限制设置及任务调度规则等)的整体规划与日常维护工作。开发团队将代码提交至GitLab平台后,在CICD自动化流水线上完成构建任务并生成镜像文件;随后系统管理员会利用CICD流水线对构建好的镜像进行打包,并部署至容器集群中。
在遵循我司IT技术和运维标准的基础上,在线部署的容器云PaaS平台上层架构主要包含以下几大功能模块:首先是统一身份认证服务;其次是基于多租户的安全策略的统一运维日志管理模块;接着是涵盖多维度监控指标与智能告警响应能力的统一监控与告警管理模块;然后是实现自动化流水线作业处理的自动化运维支持平台;再之是以容器编排为核心的一体化资源管理和调度功能的云管平台;此外还涵盖了现有网络架构作为云资源管理的基础支撑系统;同时配备的数据存储资源库以及保障网络安全的关键安全防护设备模块。

6、容器集群部署流程
当前容器集群部署流程如下图所示:流水线通过GitLab获取代码并进行CICD流程(支持Jenkins流水线和GitLab CI两种方案)生成制品。随后生成镜像文件,并采用Helm、手动和GitLab三种方法部署到容器集群。

7、容器云PaaS平台与内部DevOps平台
目前集团内部存在DevOps平台和容器云PaaS平台。
基于实际业务场景的应用划分下,
DevOps平台主要应用于自动化的传统虚拟机部署(采用Jenkins pipeline作为基础架构,
流水线模式将传统虚拟机部署至目标环境),而容器云PaaS平台则专注于快速实现云原生应用的部署工作(例如,
通过GitLab CI流水线将云原生应用部署至容器云平台)。

8、容器云日志收集
现针对当前容器化架构的日志输出进行了标准化规范,并实现了与外部统一日志系统ELK的无缝对接。由该系统的运行时监控层负责完成相关的数据采集工作。同时正在推进独立化的系统可观测性解决方案,并整合了涵盖从容器到云服务全生命周期的关键业务组件的日志采集与分析功能。旨在为其构建完整的自动化运维能力体系。


9、监控方案
传统的基于IP地址的CPU负载率、内存占用率以及磁盘使用率等指标并不适用于容器环境。为此,在容器环境下需要为服务探针增加健康检查机制以确保系统的稳定运行。这些核心指标主要包括集群层面的实时监测数据以及各子系统内部的状态信息。具体而言,在容器云平台上,Master节点和Worker节点的各项计算资源参数如CPU利用率/内存占用率/SWAP利用率/磁盘使用率以及日志关键指标等都会被Zabbix收集并进行基础水平的实时分析。此外,在OCP环境中运行中的Pod资源实例(如CPU负载率与内存占用率)则会借助Prometheus平台实现持续性的性能跟踪。



10、基础架构
采用容器式云平台的服务器有两种类型:一类是基于虚拟化的服务器(Virtual Machine),另一类则是裸金属服务器(Bare Metal Server)。相较于传统虚拟化服务器,在性能上实现了突破性提升,并且最大限度地减少了干扰带来的负面影响。裸金属 server 本质上是物理设备,但同时又与云计算服务深度整合,从而成为硬件与软件协同发展的产物。
英特尔曾撰写文章阐述裸金属即服务概念:其中'裸'一词指的是该方案不仅可提供物理机级别的性能和安全隔离(裸属性),还具备基于云的资源管理和调配能力的高度融合。在数据中心架构中选择采用裸金属服务器还是虚拟机设备,则需根据其具体的业务需求来决定。不同应用场景对硬件资源的需求各有差异:例如计算型应用需要更多CPU资源支持;而针对那些对安全性要求较高的场景,则更适合采用裸金属服务器这一特性进行优化配置。
此外,在容器部署领域中,裸金属架构也被视为一种趋势性方案。它不仅具有显著性能提升,并且能够充分展现容器技术的优势。如同 Twitter 的 OCI(开放容器标准)执行董事 Chris Aniszczyk 所言,在比较 CNCF 和 OCI 推动使容器更加标准化的过程中可以看出这一趋势性项目的明显优势所在:它们确实更容易在裸金属上运行。随着时间推移,在裸金属环境中运行的容器数量预计会持续增长。相比之下,在裸金属环境中构建和运行这些服务要简单得多。
综合考量并全面评估容器云平台部署裸金属服务器的事宜。裸金属部署虽然兼顾了优势特性,但仅靠现有硬件或软件升级无法满足要求,因此必须从整体架构入手,涵盖计算能力、存储效率与网络架构三者的平衡配置问题,还需从基础设施选型到平台部署与运维方式优化等环节均需细致规划。在基础设施选型中,优先考虑硬件成本是影响因素之一,但这也只是整体性能与性价比的一部分要素,生态系统的匹配度同样关键。英特尔®至强®可扩展处理器架构不仅被广泛应用于云计算环境,其在提升资源利用率的同时还显著提升了保障关键业务应用程序的一致性和可靠性方面的能力。
随着容器云技术趋于标准化且生态逐渐成熟,在向上发展的方向上 containerized computing 更注重微服务化应用的设计与实现;而在向下发展的方向上,则更倾向于利用 new hardware platform 特性通过 standardized interfaces 来适配更多的 compute resources, storage resources 及 network solutions. 近年来, intel 推出了基于 new hardware 特性的系列 compute, storage, network 和 security solutions, 这些创新成果帮助 containerized computing 不断降低企业成本并提升效率, 最终推动企业完成了数字化转型.
英特尔也在与红帽共同致力于打造一体化云原生解决方案,在当前云计算环境下广泛采用的多云架构基础之上,双方已就基于该架构的参考实现框架达成一致意见。

该容器云裸金属服务器配备了Dell PowerEdge R740处理器,其核心为Intel至强金牌6230CPU@2.10GHz及更高频率以提升处理效率。


四、应用场景的实践
1、业务应用使用GitLab CI 部署到OpenShift 的云原生改造全过程实例
1)业务应用技术债改进
除了代码,技术文档、工具配置、数据库脚本、CI 等尽量统一使用源代码管理。
能够用工具、自动化解决的问题不要简单依赖文档、口口相传。
在开发环境尽量减少外部依赖,方便环境搭建。
开发框架、技术栈升级,偿技术债。
之后才是具体的云原生改造点。
2)云原生改造,关键动作包括:
创建 Dockerfile 用于构建应用的容器镜像。
创建 Helm Chart 用于部署到 OpenShift。
创建 .gitlab-ci.yml 用于自动化以上工作。
具体的改造过程如下图所示:


通过GitLab CI流水线进行容器化部署如下图所示:

2、可观测性平台搭建:
1)技术:
基于微服务技术:Thanos +Loki+Minio;
2)可观测性平台的建设目标:
集中式日志管理平台(实现了对日志的标准化输出与统一存储功能),提供统一的数据分析功能。实现数据的一致呈现,并建立多维度的数据关联机制(构建标准化的监控界面,并支持基于不同主题的需求进行关联分析)。
3)整体设计框架:

4)可观测性平台部署架构:
LB 采用的是外部部署方式,并主要负责终止 SSL 连接。由于 Nginx 受外部控制,在配置时能够自动分配至多个服务。Nginx 不仅与 Prometheus 和 Thanos Querier 实例直接相连,并且还提供了相应的 WebUI 界面供管理使用。
OAuth2 Proxy 将被用于 表现 Prometheus 等未内置权限管理应用的代理功能,并遵循 Sidecar 模式的机制。
以上 Prometheus 主要功能是实时监控 DevOps 工具链中的关键环节,包括但不限于 GitLab、JFrog 和 Jenkins 等工具。此外,OCP自身也拥有一个独立的Prometheus,并且这两个实例均负责收集并分析相同的监控数据。

5)Thanos
Thanos整合了Prometheus的多数据源,并通过去除重复数据实现全面的数据分析视角。


6)Loki
通过Loki获取日志,在grafana上进行展示。

7)Prometheus监控展示

可观测性平台能够从DevOps工具链(GitLab、Jenkins、Sonar、Jfrog)以及OpenShift容器平台全面收集各类运行日志,并基于这些数据设计相应的性能评估指标。这些评估结果将通过统一的可视化界面展示出来,并向用户提供直观的服务健康监控界面。同时为故障定位和问题排查提供可靠的依据,在此基础上显著提升了平台整体的运维效能和用户体验。
五、业务效果
当前某些核心应用(如集团重点业务APP、部分子公司的to C类应用以及集团内部管理类系统等)已成功部署于容器云平台,在追求快速交付的过程中特别强调了容器云对弹性伸缩能力的支持与优化效果。传统的虚拟化架构导致,在业务节点期进行扩容时可能出现扩容前业务运行中断、扩容过程中出现服务等待等问题。而通过容器云技术的引入,则实现了资源的自助秒级获取能力,并将原本理想情况下需要4小时才能获取可用资源的时间缩短至不到1秒。此外采用GitLab CI部署策略能够有效实现快速回滚机制,在保障服务连续性的前提下显著提升了系统的稳定性和可靠性。
从基础架构层面上看,在选择裸金属部署方案时能够有效优化资源配置以提高其利用率,并显著提升了投资回报率。此外,在硬件创新方面采用了英特尔®至强®可扩展处理器和英特尔®傲腾™持久内存等先进技术。这些创新不仅提升了计算效率并减少了处理延迟,在整体上实现了云服务平台交付效能的重大提升。
六、挑战及展望
在容器云推广与迁移过程中,我们面临的最大挑战源于技术人员理念的转变。由于容器技术彻底改变了软件交付模式,要求技术人员采用新的理念进行应用构建。为此,我们投入了大量时间和精力用于对技术人员进行云原生理念的普及与培养,并筛选出适合业务需求的应用实施容器化改造。未来计划分阶段推进微服务架构的应用,在此基础上实现整个系统的架构转型,并持续推动三大核心应用逐步接入容器平台。
容器云PaaS平台的搭建涉及整合应用层、软件层以及底层基础设施等多个技术维度的创新性解决方案。在核心业务容器化决策过程中,则会更加谨慎地规划整体架构设计,并会对基础资源配置进行细致评估与合理选型。
