实战丨分布式架构以及DevOps助力人保寿险微服务平台建设

发布时间: 2024-05-01 05:06:00  来源:天博app 

  根据保险行业发展的新趋势,目前保险交易已经呈现高频化、碎片化、场景化等特点,对系统的解决能力、容量、业务连续性、需求和运维响应速度提出了更高的要求。传统的开发模式效率低、耗时长,同时随义务规模地一步步扩大,不合理的架构带来的维护成本也水涨船高。为提高项目建设的效率、质量、安全性和技术水平,缩短项目建设周期,降低项目建设成本,进而更好地支持业务与技术的发展与创新,人保寿险急需建设应用和服务的技术标准和分布式应用平台。

  分布式应用架构解决了服务器性能的问题。单台服务器的性能毕竟有限,综合利用多个节点的解决能力,才能提升整体的服务能力。将不同的业务模块部署在不同的服务器上,或者同一个业务模块分拆多个子业务,再部署在不同的服务器上,以此来解决高并发的问题。这样一来,模块的内聚性更高,模块与模块间耦合度更低,减少了业务复杂度。同时,各模块对于服务器高可用的需求不同,分布式的架构部署能够更充分地利用服务器资源,有效节约项目成本。分布式应用平台对于分布式应用有结构化的管理,相比传统的管理模式,非常大程度上减轻了运维人员的负担,应用配置的管理能够最终靠友好的可视化页面轻轻松松完成,同时支持应用配置的实时修改发布,做到了真正的自动化运维。同时,分布式应用平台解决了分布式应用的监控告警问题,分布式平台能够对每一个应用服务进行实时的日志监控,出现一些明显的异常问题能够立刻告警通知、有关人员能够第一时间做出响应,以此保证业务正常运行。

  经过项目初期的调研与考察,在人保寿险确定的平台架构技术如下:分布式平台主要以SpringCloud组件为技术支撑,主要用到Eureka作为注册中心、Feign用来做服务调用客户端、Ribbon来进行客户端的负载均衡,Hystrix用来作熔断、限流和降级。搭配配置中心Apollo、断路器监控中心Hystrix-dashboard和Turbine,形成一套完整的分布式微服务架构。分布式应用逻辑架构总共由以下7部分组成:

  服务网关APIGateway:在微服务架构中,所有的服务都变成了一个个细小的API,APIGateway作为整体架构的重要组件,它负责对应用的API进行统一的管理。

  微服务平台:微服务平台负责应用服务的注册发现、负载均衡、应用配置的管理、服务调用链的监控和告警。PaaS平台:PaaS作为业务基础平台,负责提供公共的各类中间件服务。

  管理门户:提供友好的可视化界面对应用服务进行登记、配置管理、授权以及日志监控。

  SDK:为了在应用系统技术架构上形成统一的技术标准规范和统一的规划,弥补应用开发和运行缺乏的技术平台短板,我们向人保提供了SDK脚手架以及开发手册,降低了开发分布式应用的门槛,有效缩短了项目进度。

  流程和规范的制订:让项目的全生命周期得到管控,项目在持续构建的过程中不断精益提升,在持续发布的过程中始终能够给大家提供可用、稳定的介质版本。

  使用SDK进行微服务开发能够大幅度减少项目建设成本。为了在应用系统技术架构上形成统一的技术标准规范和统一的规划,弥补应用开发和运行缺乏的技术平台短板,人保寿险根据各个项目组的真实的情况制定了开发规范,并且统一使用SDK脚手架进行分布式应用开发,帮助研发人员理解和使用分布式应用。SDK提供了包括服务降级、熔断限流、日志监控等一站式解决方案,大幅度的降低了开发分布式应用的门槛,分布式应用架构的基本功能都做好了封装,能够很好地做到开箱即用。研发人员无需在项目前期的开发框架搭建上花费过多精力,能够更专注业务,这样一来,开发效率得到了有效提升,项目进度也快速缩短,项目成本也能获得有效控制。同时,各个分布式项目使用统一的框架进行开发,能够方便项目后期的维护、升级和管理。分布式管理控制平台可以无缝地与各应用系统对接,在应用地运行期为应用提供应用注册发现、配置动态修改发布、日志查看等各种能力,真正做到“零成本运维”。

  项目中有用maven编译的、有用ant编译的,如移动应用,有android系统的、ios系统的,还有一些前端应用的编译,如nodejs,这么多不同的构建环境我们怎么支持?另外,构建过程中还需要考虑和代码质量分析,单元测试、介质上传等能力的结合,这样的构建过程其实也是一个工作流程。为保证项目质量、始终以交付为核心,DevOps通过编排jenkinspipeline,同时利用BPS流程引擎可以自动化地进行项目构建、发布流水线的配置,每一次上线都可以做到全自动的流程化发布,同时支持定时发布、审批等功能,为项目稳定交付保驾护航。通过一次次自动化构建,人保寿险项目质量的不断提升,并且始终可以获取功能稳定的交付物。

  通过这种自动化的方式,DevOps充分解放了开发运维人员的生产力,减少了手工的重复劳动,避免了因操作不当带来的损失,同时代码质量检测可以帮助开发人员发现代码质量上存在的问题,并给出建议,有效保证了生产的效率和质量。对于人保寿险微服务应用进行持续集成和发布,我们很好地利用了DevOps的特点,对微服务类应用进行自动构建、自动发布、自动部署,大大减轻了开发人员运维人员的负担。利用DevOps的发布流水线,我们成功打破了传统项目实施的“黑箱”状况,让整个CICD流程完全透明,我们可以对所有阶段的情况进行细粒度的管理和清查,让流程得到一定效果管控、透明化,在保证项目质量的前提下按时交付。

  针对人保寿险的微服务应用,DevOps定制化了一套持续集成的构建定义,打通了从配置管理代码库到部署环境的链路,自动化无干扰的进行代码编译、质量检查、资产管理、部署发布及相关操作,实际做到了通过自动化的方式保证项目质量,缩短项目周期,降低项目成本的同时提高生产效率。

  截至目前,人保寿险的一体化项目、微信项目、大数据项目都已经使用DevOps进行项目的持续集成、持续部署了,创建了50+构建定义,每天构建次数100+。同时,我们在DevOps实施过程中走访了多个项目组,了解当前人保寿险项目组的开发模式。根据访谈结果,先后制定了多种开发规范,管理建议,并将持续地来优化,通过项目不断地精益项目管理,代码开发的方式方法,持续改进。我相信,随着DevOps的推广,将来会有更多的项目使用DevOps进行项目部署。人保寿险通过分布式平台的建设以及DevOps的使用,成功地降低了开发成本,提升了工作效率,最终实现了按时交付的项目目标。怎么样才可以更好地编排构建流水线?怎么样才可以让DevOps更贴近我们的业务,更好地与分布式平台整合?自动化运维之路还很长,做好DevOps,就是向自动化运维迈进的第一步。返回搜狐,查看更加多