vlambda博客
学习文章列表

​​​分布式架构转型之服务网格探索与实践

大家保险集团有限责任公司

信息科技中心研发部总经理  侯志敏

大家保险集团秉持保险初心,聚焦保险主业,坚守服务使命,执着探索中国保险业的健康发展之路,致力于打造国内领先的个人、家庭及团队风险管理、健康养老、财富管理服务提供商。大家保险集团以科技创新作为三大赋能板块之一,加速以客户为中心的数字化战略转型,推动公司长远发展。


随着互联网和新技术的蓬勃发展,客户的数字化接受程度越来越高,保险业的发展方式和消费场景都出现了巨大变化,数字化转型成为保险企业的重要转型路径,对保险行业的未来发展产生着极为深远的影响。在科技创新驱动业务发展的背景下,原有系统架构模式对科技赋能的支撑已步履蹒跚,难以为继,提升系统的弹性扩展和高性能,将原有传统系统架构升级为分布式架构已成为趋势。而随着分布式架构的广泛应用和信息系统架构逐渐微服务化,未来企业内部微服务数量必然呈几何级增长。虽然基于当前各种微服务框架,可以实现简单的服务治理功能,但由于每家企业可能存在多种技术栈,开发语言不同,技术架构不同,难以形成统一的服务治理体系和标准。可以想象,未来我们又将面临分布式资源管理复杂、微服务运行保障难度大、整体维护成本高且缺乏有效的跟踪分析手段等问题。


未雨绸缪,提前规划。大家保险集团在分布式架构转型初期,就将系统微服务化与服务治理同步纳入整体规划。经过研究论证,确定以服务网格(Service Mesh)技术为模型的服务治理解决方案。方案通过在网络底层通讯层面进行流量代理“劫持”,可兼容多种应用协议、微服务架构、多种开发语言。2019年4月大家保险集团分布式服务治理平台启动建设,该平台基于服务网格技术,结合自身实际业务场景,将服务治理下沉到基础设施,与业务系统解耦,提供一个可视便捷的微服务“交通治理监控”网。


服务网格技术简介

服务网格是随着微服务和云原生应用兴起而诞生的微服务应用的基础设施层。用于保证服务间安全、快速、可靠的通信,为服务提供了注册与发现、负载均衡、身份认证与授权、熔断、流量管控等一系列功能,让这些通用的功能不必每个应用都自己实现,交由服务网格处理即可。因此,服务网格对应用透明,与语言无关,屏蔽了分布式系统通信的复杂性,服务只用关注业务逻辑。


服务网格的通常实现包含两部分:一是作为“数据平面”的网络代理实例,称之为“Sidecar”。二是一些列负责监控、安全、配置、调度的组件,称之为“控制平面”。


虽然服务网格被称为下一代微服务基础架构,为企业从单体应用向微服务转型提供更安全、高效的解决方案。但由于“控制平面”的重要组件Pilot和Mixer的性能问题,导致原生服务网格框架在大型金融企业落地存在一定的难度。而以Istio为代表的主流服务网格实现框架,目前在国内大规模生产级落地案例还非常少见。

​​​分布式架构转型之服务网格探索与实践

图1  分布式服务治理平台功能架构


建设方案和思路

大家保险集团分布式服务治理平台基于服务网格框架实现。在解决原生服务网格框架性能问题的同时,更多地结合金融保险行业实际业务场景和现状,深度定制化建设,是更适应于保险金融领域的服务治理平台。


1.多种微服务架构统一治理

目前国内两大微服务技术框架分别是Dubbo和Spring Cloud,而作为微服务框架重要组件的注册中心又包括Zookeeper、Eureka、Consul、Nacos等。多种微服务架构和注册中心并存,是导致企业微服务化建设和治理复杂的主要原因之一。平台通过建立微服务及服务治理标准,对不同技术栈和架构进行整体微服务规范管理,有效预防微服务无序建设。


平台采用Nacos作为统一的注册中心,并集成K8s环境,对Nacos进行深度改造,实现两种微服务架构一个注册中心,进行服务注册与发现,及各种服务治理策略的统一配置和下发,实现多微服务架构统一治理,在微服务灵活应用和统一管理之间做到了有机结合。


2.兼容传统服务统一治理

企业微服务化转型是一个持续迭代的过程,在此期间,企业内传统服务架构与新架构会一直长期并存。因此,平台的规划设计充分考虑了对新老架构服务的兼容性,将新老架构统一治理。


平台对服务网格数据面组件Sidecar进行深度改造,充分考虑对传统服务架构体系(Webservice、Rest、Socket等)的兼容问题,为应用构建基础网络通讯模型,接管所有应用的负载、限流、熔断、认证、路由,微服务注册与发现等服务治理功能。从而实现了传统服务架构(Webservice、Rest、Socket)与微服务架构(Dubbo、Spring Cloud)的统一治理,传统虚拟机与容器环境下的服务统一治理,避免了传统模式和新模式之间的割裂,实现了既有资产复用,为渐进式架构升级策略提供了技术支撑。


另外,通过流量“半劫持”方案解决网格内外服务治理的边界问题,可以实现在一条完整的业务调用链上存在多个服务间的调用关系,允许部分服务先接入服务治理平台,从而有效降低业务系统整体变更带来的风险。


3.微服务交通路网治理与监控

随着微服务化的深入,企业微服务的数量将成呈几何级增长,如何理清微服务之间的调用关系、调用状态、运行状态等,将是企业面临的又一难题。平台通过集成基于OpenTracing标准的组件Jaeger,进行调用链信息采集,ElasticSearch进行调用链信息存储,通过平台对调用链的定制化设计实现,形成可视化微服务交通治理监控网。


4.租户化运营

作为大家保险集团统一的服务治理平台,平台为集团内各子公司创建独立租户,各租户间微服务实现隔离自治,进行个性化服务治理策略配置,租户间服务可基于RBAC访问控制模型进行互联互通。


5.服务治理精细化

平台从大家保险集团实际场景需求出发,实现服务治理精细化,可基于租户、服务、IP+端口、自定义等不同维度,对服务进行流量管控。既可对某一租户下所有服务进行粗颗粒的流量管控,又可基于单一请求自定义Header(如标识请求地域来源“北京”)进行精细化流量管控。

图2  微服务交通治理监控


建设成效

平台通过创新的技术手段,实现对多种微服务架构、传统服务架构服务治理能力的全覆盖,避免了完整业务线上服务治理出现“服务孤岛”的发生。平台上线以来,已将子公司业务系统服务及集团公共服务等近200个微服务及传统服务纳入服务治理体系,涵盖集团公有云、私有云两大基础环境,月均监控服务调用超千万次。平台可在小时级别将微服务业务系统纳入服务治理体系,提供共享的服务治理功能,有效降低业务系统30%的开发成本。平台在服务级别提供多维度的监控、预警、智能故障处理,保障了业务系统7×24小时的稳定运行。


以该平台研究规划为契机,大家保险集团已形成完整的分布式技术标准规划体系,在微服务化转型方向上全局有序推进,有效提升公司的整体资源聚合能力,增强技术专业能力和服务支撑水平。同时,大家保险集团基于前瞻性的技术理念,在服务网格技术领域的探索和深度实践相信也能够给保险行业数字化转型带来一些有益的借鉴和参考。