一年 100% 云原生化,众安保险架构演进的探索与实践 | 卓越技术团队访谈录
金融行业的蓬勃发展,业务规模的不断扩张,用于支撑业务运行的系统和基础设施也日趋庞杂,强监管安全合规的属性又使得他在云原生的选择上比其他行业多了一丝谨慎,面临更多挑战。
众安保险从 2016 年就开始探索实践云原生相关技术,在服务治理、自动化运维等方面积累了大量的经验。为了深入了解众安在金融保险领域的探索和思考,近日,InfoQ 采访了众安保险技术团队,围绕金融保险云原生架构治理问题逐一展开探讨。
2016 年,众安就开始逐步尝试云原生技术,届时众安已充分意识到云原生技术本身适用于任何行业,慢慢地众安对云原生的理解也从早期概念的追随到现在大规模落地的实践者甚至是布道者。这个模式的转换更多的是依据云原生的定义搭配众安自身的演进实现,同时结合业务实际,由浅至深,由点到面的过程。
早期云原生在定义过程中,主要是应用的容器化,以及面向服务架构,容器编排等等。随着云原生生态的逐渐成熟,众安现在更关注的是标准实践之后的深度治理,比如在不可变基础设施,微服务三要素等落地规范的定义下,如何最大化的实现云原生技术红利,并不断探索云原生标准的最佳实践等。
众安对云原生理解总结为一个词就是弹性。主要分为三个方面,分别对应弹性基础设施,弹性应用架构,以及弹性研发交付流程,也分别对应容器、微服务和持续交付相关技术。容器轻与快的特性能够让企业实现按需的编排使用,对于需要使用的资源实现快速的弹性伸缩。微服务应用架构则是作为部署与交付的介质,低耦合的设计能够充分发挥容器和持续交付的能力。此外借助 DevOps 实现的持续交付流程则能够使众安更快、更敏捷的去响应需求的变化。总的来说,云原生为众安提供了一套指导思想,让企业以更轻更快的方式去实现构建部署以及交付应用。
同其他互联网公司相似,众安的技术架构也是一直在演进与升级的,整体可以分为三个阶段。
第一阶段是在成立之初采用的传统单体架构,满足业务快速上线。第二阶段,随着互联网业务对新开通高并发、低延时的要求,众安开始进行微服务架构的升级,这个阶段又可以细分为闭源与开源两个过程,最初使用国内大厂闭源的技术组件,之后慢慢拥抱开源生态。第三阶段就是现阶段,采用基于 K8s 构建云原生的架构,包含了容器化的基础设施、微服务架构、服务治理、DevOps 体系建设等等。
众安在进行架构演进的过程中,首先会进行目标架构的规划,解决方案的规划也会成为目标架构演进过程中的目标路径。这就意味着方案规划需要符合长期的目标架构,同时在中短期也要能够解决当前或者即将面临的问题。另外众安将技术架构的关键能力聚焦在业务复杂度提升和数据量变高带来的海量数据、低延时高并发等互联网式的极端流量问题之上,这也要求众安停下来去审视当前的技术架构是否能够支撑业务形态的转变,以适应未来五到十年的变化为目标去进行架构规划。
众安在云原生架构上的建设思路,恰如众安对云原生的定义理解,也是分为三个层次,包含基础设施层,应用架构层,以及研发管理层。基础设施层次建设改造主要是指的是容器化的改造,包含容器服务,容器编排,以及如何将应用部署在容器当中等。其重点在于容器云平台的搭建,众安采用 K8s 并在其之上自研了一套自己的多集群统一管理容器云方案,实现了全公司全环境容器服务以及编排的统一管理。另外,通过镜像可视化编排、镜像插件等手段去标准化约束基础镜像,实现业务系统快速进行容器环境的适配。在此之上面向云原生设计并落地了新一代数字化保险系统称之为无界山 2.0。
在应用架构与研发管理层,众安主要采取架构标准化与微服务治理和自研 DevOps 体系的思路,我们在下文服务治理段落将进行详细讲解。关于标准化的约束,众安集成在流程与工具当中,形成一套事前自动生成、事中标准指导以及事后检查的机制。
在体系建设方面众安采用核心能力拥抱开源,服务能力进行自研的方式建设基础设施、应用架构和持续交付体系。在开源工具的选择上,众安会充分考虑一些 CNCF 认证的项目与规范,同时也会采取像社区共建、团队贡献、定制私有等方式,和社区保持长期稳定的一种参与关系。
此外众安在云原生安全方面也有着非常重要的考量,一方面会借助云上的安全产品去建设基本硬件级的安全防护能力。另一方面众安面向金融场景,围绕容器、应用、数据、业务方面进行安全能力自研孵化网络安全、应用安全、数据安全产品,形成面向不同行业和场景的安全合规、业务安全的风险管理解决方案。同时众安将安全能力和研发管理流程深度集成形成了现有的 DevSecOps 体系,这些都是众安在规划架构上的思考。
保险银行证券都是属于强监管的金融行业,上云对于他们来说既是挑战,也是机遇。最基础最关键的就是如何选择一个好的云服务商,根据行业的一些特性,可以从合规、安全、数据一致性等高要求来考虑。因此在架构升级上众安会主要从两个方面考虑。
首先在业务方面,传统的金融产品和服务,存在一定的门槛,效率低下,同质化严重,可能无法满足客户的特定需求,客户更多的需要线上化、个性化、场景化的金融产品和服务。
其次在技术层面,金融行业属于信息化程度相对比较高的一个行业,传统的金融 IT 架构存在较多问题,比如研发周期长,协作沟通问题,运维成本高、创新比较慢等等,还会遇到人才储备不足的难题。
结合目前数字转型在整个行业的深化,众安看到了越来越多的云原生技术在行业上的运用。众安开始逐步尝试云原生技术在生产实践中的运用,充分利用和发挥云的优势,同时做到灵活、低成本的方式构建弹性和可扩展的应用。在帮助研发的过程中,将研发的焦点,由资源为中心转向以应用为中心,利用弹性的概念去充分发挥云的优势,帮助提升产研的能力,支撑业务的创新。整体来说的话,众安认为云原生技术能够为金融行业,尤其是互联网金融行业带来巨大的红利,为众安构建新一代的数字化基础设施,以及帮助企业数字化转型带来强大的推力。
技术升级最不缺的就是挑战,整个架构升级切换的过程,众安的技术专家表示,就像大家说的“开着飞机换引擎”,最主要的挑战就一个,技术升级的同时不能影响业务。在整个迁移的过程中,遇到了大家熟知的微服务问题,容器化,DevOps 等等,既不能影响生产业务,又不能影响日常开发的运维流程,挑战还是比较大的。众安主要分了两个阶段去尝试:
第一阶段,众安早期的业务形态,主要是围绕电商场景去开展,这个时期需要在很短的时间内做更多的生态,比如健康生态、汽车生态等等。早期的业务架构并不是很匹配未来的业务情况,因此早期有业务架构升级的需求,所以众安在做业务架构的同时,也将底层的技术架构做了升级,完成了早期云原生基础设施的转换。
第二阶段,有了云原生的基础,通过云原生的基础能力,众安对基础设施进行了底层的封装之后,确保上层应用运行环境的稳定,同时众安加强了 PaaS 层服务能力的建设,降低开发者对底层基础设施和公用组件的使用门槛和成本,这也可以帮助后续做到无感升级。同时为了降低日常运维的流程,众安还自研了 DevOps 产品,实现从构建到部署的自动化,并将标准化延伸业务交付。
众安云原生的发展阶段也可以分为三个阶段:容器探索阶段、微服务化、服务网格治理。
前面提到,众安从 16 年就开始起步探索容器技术,以 Docker Swarm 为技术核心建设了第一代容器管理和应用平台,在一些边缘应用上进行了小规模的试点应用。实践下来,在网络及其稳定性方面存在比较大的问题。
时间来到 18 年,这个时期众安以 K8s 为技术核心建设云原生基础设施,将微服务应用部署到容器环境。在容器微服务化阶段众安的迁移改造已经比较彻底,实现了业务应用 100% 容器化。
目前正处于第三服务网格服务治理阶段,当下众安主要以 Istio 和 Agent 为技术核心实现网格化的服务治理,对以 K8s 为主的云原生基础设施进行进一步的增强。
总的来说,阶段二的迁移最具挑战,迁移的过程耗时将近一年,无论是涉及到的系统规模,还是复杂度都是最高的。另外由于底层基础设施形态的转变,技术复杂度也比较高,众安通过蓝绿验证的方式,通过网关的能力进行流量的逐步切流,利用这种手段做到业务逐步迁移,保证了迁移过程中业务的连续性不中断,实现业务的无感迁移。
提及转向云原生收益之前先介绍一下众安的基建规模,众安这边的主机规模,按照 4C8G 这种机器的规格去计算的话大概是在一万加以上,应用规模是一千多个,技术人员的规模大概是在两千以上。众安技术架构在转向云原生之后,结合资源弹性编排带来的成本节省,以及 DevOps 体系建设和落地,有效提升了需求交付率,缩短了交付周期。从统计的数字上来看,21 年众安发布次数在 12 万次以上,相交于云原生之前增长了 22 倍,关于转向云原生,众安还是获得了非常明显的收益。
架构演进是一个持续的过程,企业会不断面临各种各样的问题与挑战,众安分享了其中一个多语言环境下架构治理问题。关于如何看待多语言,首先众安保险不希望开发语言成为公司吸纳各路人才的阻碍,不同的编程语言也会有他适合的一些应用场景,比如说人工智能 Python 会比较适合,云原生 Go 会比较适合,企业级的一些业务系统可能 Java 会比较适合。
在语言栈选择上众安秉承着开放的策略,但语言栈的开放带来的就是维护复杂度、治理困难的问题。为了实现统一架构的治理目标,将治理能力不断下沉到基础设施是众安认为唯一的标准答案。众安方案的抓手是流量劫持,从东西向流量和南北向流量这边分别去展开。对于南北向流量众安将治理的能力放在网关层,同时众安的目标也是建设 API、业务、安全的三合一网关;对于东西向流量众安则是依托服务网格技术,在全公司全场景覆盖,提供基础设施级的流量权限与可观测能力。
随着众安技术伴随整个业务发展进入第九年,公司在业务形态和体量上都发生了巨大的变化,整个技术架构如何去支撑业务的线上运营与发展就就变成了非常有挑战的课题。
众安保险内部架构治理遵循公司统一架构目标,以技术架构、业务架构作为支撑点,主要分为三个方面。第一,基础设施层面众安要求百分百部署在云上,充分使用云服务提供的计算、存储、网络等能力;第二,在技术架构方面,众安基于云构建了技术中台,能够向业务系统提供统一的容器、中间件等 PaaS 能力;最后在应用层面,业务系统统一使用类 Spring Cloud 生态的微服务架构。总的来说,目前众安已经形成了较为完善的云原生生态的建设,治理着超过上万服务的大规模集群。
首先金融保险属于强监管的行业,安全合规是红线,金融保险架构治理也会有一些特殊的地方。因此众安在做基于架构标准的时候就会设定一些合规性的下限,在业务设计的过程中要帮助和指导大家去考虑合规性需求的扩展和一致性。其次,由于整个金融行业存在一些“历史包袱”,尤其是一些中小型金融企业,对于技术改造存在较大的风险和挑战。
所谓金融企业的“历史包袱”,可以从两个方面展开来讲。第一是业务上的挑战,第二是技术方面的挑战。大家可能知道,组织结构会决定技术的架构,众安早期遵循的一套架构叫做“胖前置,瘦核心“,这是因为众安前期强调的业务形态是前台的业务部门高效迭代的能力。在整个架构升级过程中,尤其上发展到现在业务稳步发展的阶段之后,就会更加关注业务的效率和质量,然后持续加大一些业务中台和技术中台的投入。最后在整个过程中不但有底层的业务架构的升级,以及匹配到技术架构的升级,整协同过程中组织架构的一些调整也会有冲击。还有一点可以补充的是,像传统的金融行业的业务系统,大家可能知道企业使用的像小型机,重量级的一些数据库,甚至闭源的厂商,都是比较普遍的。关于这个方面,金融企业上云也会存在一些阻力。
不过受访专家表示,众安也相信技术先进性会让之前的一些业务开展由不可能会变成可能,同时也在不断鼓励金融创新,鼓励技术先进性的探索也会成为众安架构治理的一个重要环节。此外,在服务治理的过程中也会发现新的一些架构和交互对于传统的业务流程和组织结构带来的一些冲击,众安也发现转变企业的文化,打破部门的一些壁垒,夯实数字化的一些群众基础也是非常重要的事情。
众安在企业架构治理课题上具体来讲有以下几个方向:
首先是微服务治理,众安根据自身业务覆盖广、周期长的特性,使用开源体系落地实践的方案。以 Spring Boot 为基础,在此基础之上建设了可递进、可共建的统一微服务应用框架,为业务系统提供框架组件版本的统一管理能力,同时开放共建能力也可以让各事业线的技术团队参与到标准的制订以及演进过程当中。
众安采用无侵入为主、多语言的异构体系为辅的技术方案。尽量避免对业务代码产生侵入,升级也能够做到尽量减少对业务这块的一些感知与影响。简单来说就是 Istio 配合 Agent,或者称之为 Agent 加 Mesh 双治理的体系。众安应用服务技术体系,虽说是拥抱多语言,但实际上更多还是以 Java 占据绝对的比例。目前众安使用这两种技术体系共同完成不同业务场景的覆盖,这也是金融保险行业比较先进的治理方式。
再谈数据治理,众安作为国内较早开始数字化转型的企业之一,非常注重数据带来的价值,为此众安还成立了专门的数据治理组织。数据治理上众安保险主要关注两个方面,一是数据质量,二是数据安全,目前两个方面众安都是通过一些平台化的能力进行治理。
数据质量方面众安搭建了企业内部的数据质量平台,通过不断去维护运营过程中积累的像业务和数据的一些相关规则。比如说保险,保险是受强监管的,在业务处理的事前、事中、事后都要及时地对相关数据进行质量监控。另一方面,在数据安全上,众安自研了关于数据管理方面的平台,取名绿洲数据服务中心,通过系统对数据的一些流转和使用,进行相应的数据相关的一些权限和安全的控制。
最后是 DevOps 治理方面,或者叫研发过程的治理。这里众安是以一站式研发管理作为指导思想来建设一体化的 DevOps 平台,并且从文化、组织和工具层面对众安的研发一体化的体系进行落地。
众安整个 DevOps 体系的设计遵循了两个理念,一个是运维 N+1 的一个理念,一个称作“小工具大平台”的理念。什么意思呢?首先运维 N+1,指的是一个基础运维,N 个运维场景,也可以理解为是一个运维中台,N 个运维平台。
众安使用运维控制管道概念去提供基础的调度能力,去屏蔽底层比如容器调度、主机调度甚至文件调度,实现统一的命令和文件管道,同时上层工具平台遵循统一的数据和 API 标准。在此标准之上众安建设了像持续交付,可观测,数据治理包括 ITSM、IT 治理等众多的应用场景。“小工具大平台”则指的是众安运维体系模块化的设计,通过微前端等的一些技术手段,去实现模块的按需组合,并且按照研发角色例如开发运维测试等形成不同的工作视图。
此外,信创基础设施作为当下较为火热的课题,众安在此方面亦有相关动作。金融安全关系国家命脉,在自助可控的重要性方面尤为突出。众安积极响应国家战略,在基础设施、核心系统方面的信创适配工作有着很大的投入并产生了不错的成果,面向行业推出了安全、运维、基础架构等领域的众多满足信创要求的产品。另外,众安保险具备金融、互联网双重行业特性。同时区别于传统公司,众安的基础架构体系 100% 构建于云上,是在云上进行大规模生产实践的典型案例。在与云商等产业机构联合共创之下,快速设计了有众安特色的信创云方案并进行尝试,目前已经有一定比例的科技投入。同时众安也非常愿意以科技赋能行业为目标持续输出相关产品与经验。
中国信通院云大所云计算部副主任陈屹力曾提到,云原生是保险行业新一轮数字化升级的必经之路,众安在金融保险领域的成功实践也验证了这一点,尽管目前大多数企业还处于探索阶段,但在未来几年,金融保险行业将全面迎来云原生时代。
欧昀
众安保险首席技术专家、公司技术平台部负责人,曾任职阿里巴巴技术专家,15 年以上互联网项目技术经验。主要负责保险业务中台和技术中台规划和落地,参与完成公司技术战略制定和落地,实现科技赋能保险。
鄢晶
众安保险高级技术专家,平台架构部技术负责人,在微服务,Devops,云原生技术领域有丰富的实践经验。主导了众安新一代智能运维平台的建设。
本文选自《中国卓越技术团队访谈录》(2022 年第三季),本期精选了阿里达摩院数据库、得物、华润云、民生保险、众安保险、字节跳动 AppInfra 等技术团队在技术落地、团队建设方面的实践经验及心得体会。
《中国卓越技术团队访谈录》是 InfoQ 打造的重磅内容产品,以各个国内优秀企业的 IT 技术团队为线索策划系列采访,希望向外界传递杰出技术团队的做事方法 / 技术实践,让开发者了解他们的知识积累、技术演进、产品锤炼与团队文化等,并从中获得有价值的见解。
访谈录现开放长期报名通道,如果你身处传统企业经历了数字化转型变革,或者正在互联网公司进行创新技术的研发,并希望 InfoQ 可以关注和采访你所在的技术团队,可以添加微信:caifangfang_wechat,请注明来意及公司名称。
历时三年替换掉二十年老系统,这个团队选择“一次性到位” | 卓越技术团队访谈录
奇葩事儿:删除用户云数据还无法恢复,只赔 3 万;微信键盘来了,体积 524MB;谷歌希望将效率提高 20%:暗示将裁员?| Q 资讯
微信扫码关注该文公众号作者