作者简介
张应罗,SUSE 资深架构师,拥有 15 年架构咨询工作经验,专注于 SUSE Cloud-native 相关的产品落地方案及咨询方案设计。
客户背景
客户为国内领先的基金公司之一,拥有近 8000 万客户,管理基金规模近 2 万亿元,拥有国内公募和私募资管产品管理全资格、三大支柱养老金投资管理业务全资质,拥有涵盖公募私募证券投资、境内与跨境投资的牌照,是业内构建产品线最迅速、产品种类最多的公司之一。
业务现状与面临的挑战
当前,客户以开发、测试、运维团队各司其职的方式,保障各个业务系统的开发、上线、运行。业务系统采用外购与自研的形式,其中自研应用多基于 SpringBoot 架构。在测试环境中,业务系统主要采用脚本式流水线的方式进行持续集成和持续交付,准生产和生产环境采用手工方式。大部分业务系统直接运行在 Linux 虚拟机中,个别业务系统以 Docker 容器的形式运行。现有使用 GPU 资源的业务应用直接部署在独立的物理机上。
客户面临的主要挑战包括:
- 时间长:一次系统上线,需要开发测试、准生产、生产环境中重复搭建,且存在配置不一致的情况。
- 效率低:从开发测试到生产上线、运维整个流程中,存在大量跨部门协作,以及大量的手工操作,未实现端到端的交付和一体化管理。
- 迭代慢:软件的架构适合整体迭代,不适合进行模块化的快速更新,新功能、新特性难以快速投入生产。
- 观测弱:业务服务之间的通信,如调用关系、服务响应时间、失败率等重要指标,需应用自行解决。
- 资源利用率低:每个使用 GPU 的应用单独占用一台物理机,GPU 资源使用率长期处于低水位,无法共享使用。
客户需求
客户亟需通过新技术降本增效、助力业务创新。在进行一系列技术探索之后,客户计划构建一套以 Kubernetes、DevOps、服务网格为核心的 PaaS 平台来改善现状:
- 以容器为核心,快速提供一致的开发测试、准生产和生产环境,支持业务快速在 K8s 中部署和运行,同时由 K8s 解决 GPU 资源的共享问题。
- 以 CI/CD 流程为核心,实现开发、测试、生产全流程交付,并确保应用信息、介质等的一致性,缩短开发测试阶段和生产阶段的上线时间。
- 以微服务为核心,实现服务之间的流量管理、可观测性、安全、灰度发布等功能。
SUSE 的解决方案
容器管理平台
客户将以 SUSE Rancher 为核心的容器管理平台作为 PaaS 平台的底座,依据网络安全区域划分为开发测试、准生产和生产环境,在 SUSE Linux 12 SP5 服务器上分别构建了三个 K8s 集群和一个使用 GPU 的 K8s 集群。在 K8s 集群内部 Istio 服务网格,提供了针对服务的流量管控、指标观测、认证鉴权、灰度发布等能力。
GPU 共享调度
客户通过 SUSE Rancher,在具备 GPU 显卡的物理机上创建 K8s 集群,在其上部署使用 GPU 资源的业务应用,利用 SUSE Rancher 提供的 GPU 共享调度能力,实现了多个应用同时使用一块 GPU 显卡的功能,同等硬件资源可承载更多业务应用。
CI/CD 流水线
对接客户已有的基于 Jenkins 和 Gitlab 的 CI/CD 工具链,帮助客户改善流水线流程。更改为声明式的流水线,新代码推送到代码仓库后,触发流水线流程,开始进行代码的编译,生成制品,依据 Dockerfile 打包镜像,并推送到 Harbor 镜像仓库。依据工作负载模板,生成应用的 Helm/Chart 包,并推送到Gitlab代码库作为 SUSE Rancher 的应用商店使用。调用 K8s 的 api,向集群中直接部署 yaml 文件或者 chart 包。
业务应用改造
SUSE 结合 PaaS 平台的建设和流水线的改造,对客户已有业务系统进行适云分析,针对不同类型的业务应用采用不同的上云方案和策略。新研业务应用采用微服务架构进行开发,采用上述的 CI/CD 流水线发布的 K8s 集群,则使用其中的 Istio 能力。新购外部应用,要求厂商以 chart 包形式交付应用,可放置在应用商店中部署。已有自研业务应用按应用优先级进行容器化改造,逐步上云。
客户收益
- PaaS 平台建设完成之后,客户通过 SUSE Rancher 快速建立不同环境的 K8s 集群,降低了基础环境的准备时间,确保了环境的一致性;通过快速向集群中增加服务器来扩充资源池,让 PaaS 平台具备弹性扩展的能力。
- 基于 SUSE Rancher 的 GPU 共享调度能力,实现了多个应用同时使用一块 GPU 显卡,充分利用了硬件资源,降低了使用成本。
- 客户借助完整的上云策略和流水线流程,可快速将业务发布到 K8s 集群中,减少了人工操作,实现了端到端的自动化交付能力。
- 对业务系统进行的容器化和微服务化改造,能够有力支撑业务模块的快速更新迭代,快速应对多样化的市场需求。
- 借助 Istio 的微服务能力,实现了流量的多样管理,精准监测服务状态,轻松应对应用故障,快速进行应用优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。