定义金融云原生的 10 大新要素
云原生架构是基于云原生技术的一组架构原则和设计模式的集合, 旨在将云应用中的非业 务代码部分进行最大化剥离, 从而让云设施接管应用中原有的大量非功能特性 ( 如弹性、韧性、 安全性、可观测性、灰度等 ), 在没有非功能性业务中断困扰的同时, 使业务具备轻量、敏捷、 高度自动化的特点。在传统架构中,应用层有较多的非业务代码;而在云原生架构下,理想情 况是不再有非功能性代码在应用代码逻辑中体现,而让其下沉到基础设施中去,业务运维人员 也只需专注于与业务代码相关的部分。 我们将金融级云原生的核心总结为如下 10 大架构要素。
要素 1:平台工程 & 不可变基础设施
面对云原生技术大规模使用,降低金融机构在研发和运维层面的复杂性,是制约云原生技 术落地的一个很大阻碍。目前从研发管理和运维管理角度, “平台工程”和“不可变基础设施” 是两个可以大幅降低复杂性的云原生关键能力。
DevOps 理念是“谁构建,谁运行”,开发人员应该能够端到端地开发、部署和运行他们 的应用。但对于大多数金融机构而言,这实际上并不容易实现。而原来被证明有效的劳动分工 (Ops 和 Dev)对人才要求相对更低,但随着 DevOps 范式的推崇,研发人员必须对所有事 情都了如指掌,大大增加了“认知负担”。这对金融机构的研发团队提出了很高的要求,不利 于普适型人才建设,也会很大程度地阻碍金融机构在云原生应用的全面引入。如果说改进最可 能的一个方向, 那么非平台工程(Platform Engineering) 莫属了, 平台工程是 DevOps 和 业务程序员之间桥梁。让开发人员更快更好交付业务软件的自助服务平台。通过简单页面化的 操作,就能完成这个环节的串联配置,让研发无需关注诸多运维工具的细节,专注在应用功能 研发上即可。Gartner 对平台工程的描述 “平台汇集的工具、能力和流程均由领域专家精心挑 选,并经过封装,以方便端用户使用。其最终的目标,是打造无摩擦的自助服务体验,为用户提供正确的能力,帮助其以最少的成本完成重要工作,提高终端用户的生产力,并减少他们的 认知负担。”
传统的可变基础设施是指应用服务基于物理机或虚拟服务器进行部署,运行环境的构建依 赖很多变量,诸如一些服务器上的配置、基础软件等,在不同环境之间可以通过动态配置下发 或实时访问外部服务更新应用的状态,整个应用服务所依赖的基础设施一直处于变化之中,当 出现需要进行应急回滚的场景时,运维人员处理流程往往会比较复杂,容易出错。
云原生不可变基础设施是指基于云原生的镜像化方案将应用依赖的基础设施(操作系统、 安全脚本、运维 Agent 、开发框架、运行环境等)打包成不可变的镜像,应用发布时只需依赖 镜像将容器拉起即可, 极大地降低了应用的部署和运维成本, 使得应用部署及运维变得更简单、 更可预测,同时应用运行环境也获得了更高的一致性和可靠性。此外,基于镜像还可以实现自 动轮转替换、自动回滚等运维功能,大幅提升了应用运维的自动化水平。一方面通过镜像分层 可以提升镜像的管理水平,另一方面根据容器加载镜像的原理镜像分层可以一定程度上提升镜 像加载效率,从而提升应用启动速度。