DevOps 驱动的人保微服务平台建设之路

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

一、项目建设背景

根据保险行业发展趋势,目前保险交易已经呈现高频化、碎片化、场景化等特点,对系统的处理能力、容量、业务连续性、需求相应速度、运维响应速度提出了更高的要求。为了提高项目建设的效率、质量、安全性、技术水平,缩短项目建设周期,降低项目建设成本,进而更好的支持业务与技术的发展与创新,人保寿险急需建设应用和服务的技术标准和分布式的应用平台。

db0cb47ee7603851e6ba7f10833ffaa62431ff7e

那么建设分布式的应用平台有什么好处呢?

1.分布式应用架构解决了服务器性能的问题。单台服务器的性能毕竟有限,综合利用多个节点的处理能力,才能提高整体的服务能力。

2.将不同的业务模块部署在不同的服务器上,或者同一个业务模块分拆多个子业务,再部署在不同的服务器上,以此来解决高并发的问题。这样一来,模块的内聚性更高,更多的关注自身业务,模块与模块间耦合度更低,减少了业务复杂度。

3.分布式应用平台对分布式应用有结构化的管理,相比传统的管理模式,大大减轻了运维人员的负担,应用配置的修改发布可以通过友好的可视化页面轻松完成。

4.分布式应用平台同时解决了分布式应用的监控告警问题,对每一个应用服务进行实时的监控,出现问题能够立刻进行告警通知、第一时间响应。

二、平台技术栈及架构解析

经过项目初期的调研与考察,在人保寿险确定的平台架构技术如下:

分布式平台主要以Spring Cloud组件为技术支撑,主要用到Eureka作为注册中心、Feign用来做服务调用客户端、Ribbon来进行客户端的负载均衡,Hystrix用来作熔断、限流和降级。搭配配置中心Apollo、断路器监控中心Hystrix-dashboard 和Turbine,形成一套完整的分布式微服务架构。

235057f2ed608504a9def6395f5285bb5bd2195f

(人保寿险DevOps项目平台技术栈)

在日志的采集和处理方面,我们采用了常见的ElasticSearch+Logstash+Kibana的架构,利用ELK一站式解决方案的便利性,为整个平台提供监控。至于开发测试阶段的持续集成、持续部署,我们通过DevOps+Maven+Git/SVN来完成。

093261fdadc9ab6dbc1e42d27b90fab797dc7608

(人保寿险DevOps项目分布式平台技术架构)

分布式应用逻辑架构总共由以下这几部分组成:

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

(2)微服务平台,微服务平台负责应用服务的注册发现、负载均衡、应用配置的管理、服务调用链的监控和告警

(3)PaaS平台,PaaS作为业务基础平台,负责提供公共的各类中间件服务

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

(5)DevOps,高效自动化地完成微服务应用的持续构建和持续部署。

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

(7)流程和规范的制订,让项目的全生命周期得到管控,项目在持续构建的过程中不断精益提升,在持续发布的过程中始终可以提供可用的稳定的介质版本

f0e2122573714d6ee5e926b0e418bac94babd24e

(人保寿险微服务平台部署架构)

在人保寿险微服务平台中,我们明确了用域-系统-应用架构来进行微服务管理的部署模式。

针对人保寿险不同业务领域,例如寿险域、车险域分为不同域进行业务隔离;

每个域下根据公司的业务板块创建业务系统,业务系统这个定义在不同的客户处有不同的定义,有的叫项目、有的叫系统群,实质上都是由一组微服务应用构成的;

业务系统下部署微服务器应用,每个应用部署多个应用实例形成高可用,共同来支撑业务。

三、通过DevOps对微服务应用进行CI/CD

bc7a786856b87c258c091e2beddfaccc03d54e0e

(DevOps对微服务应用进行CI/CD)

通过DevOps进行分布式应用的构建,可以很方便地进行项目构建、发布流水线的编排,可以让开发人员将更多的工作重心放在代码业务逻辑上,大大提高了生产效率和质量,解放了开发运维人员的生产力,减少了手工的重复劳动,避免了因为操作不当带来的损失。

对于人保寿险微服务应用进行持续集成和发布,我们很好地利用了DevOps的特点,本期项目DevOps的目标是通过CICD,对微服务类应用进行自动构建、自动发布、自动部署,减轻开发人员运维人员的负担,提高项目的效率和质量。

持续集成

持续集成模块的功能主要有代码库管理、构建定义管理以及构建实例管理等。在构建定义管理模块中,DevOps平台将构建任务分成了四种类型:

编译类任务:Maven、Ant、Gradle、纯前端构建等

测试类任务:Sonarqube、Jmeter、Selenium等

打包类任务:Npm、Archive、Docker等

其他工具类任务:Copyfile、Shell、介质提交到Nexus仓库、介质上传二方库等。

在每个构建定义上可以选择若干个需要的构建任务,通过原子步骤编排,组装成一个完整构建流程。代码提交时触发构建(支持gitlab、github、svn等常用代码库版本管理工具)、日构建等不同的构建触发策略等,支撑了持续集成的完整链路打通。

自动化部署

针对人保寿险的微服务应用,DevOps定制化了一套持续集成的构建定义。

(1)首先从代码库拉取代码,支持从Git,SVN拉取

(2)接着是构建,可以使用maven、ant、gradle构建,前端支持npm构建

(3)然后通过SonarQube进行代码的质量检测,生成质量报告

(4)最后进行编译介质的发布,在部署机远程执行脚本进行介质的发布

四、总结

截止到现在,人保寿险的一体化项目、微信项目、大数据项目都已经使用DevOps进行项目的持续集成、持续部署了,每天进行近百次构建,大大提升了工作效率,得到了客户的一致好评。随着DevOps的推广,将来会有更多的项目对DevOps进行使用。 那么,怎么才能更好的编排构建流水线?怎么才能让DevOps更贴近我们的业务,更好地与分布式平台整合?自动化运维的路还很长,而做好DevOps,就是向自动化运维迈进的第一步。

精选提问:

问1:DevOps中进行构建时对于各个节点的监控告警是如何实现的,持续集成各节点耗时,超过阀值告警、包括单元测试、持续集成等,包括定时任务是否正常发起,发起是否执行成功,主机资源使用情况等?

答:DevOps暂时没有支持对jenkins构建节点的监控告警,本次微课堂介绍的是对应用微服务的监控告警,通过对应用日志的采集,根据应用日志对应用进行监控。

问2:jenkins和sonar是容器化部署的么?

答:jenkins和sonar就是正常主机安装,没有通过容器方式部署。

问3:想知道你们用的spring cloud 版本.还有断路器监控中心Hystrix以及Turbine用的spring-boot-admin的监控是吗?为啥没有用链路跟踪呢?

答:Spring Cloud,现在有2.0.1,人保的版本是1.4.3。断路器监控中心用的是turbine。人保有自己的apm,所有没有用链路跟踪。


原文发布时间为:2018-11-19

本文作者:李燕鹏

本文来自云栖社区合作伙伴“高效运维”,了解相关信息可以关注“高效运维”。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Devops
《金融专场-DevOps驱动金融行业研发效能升级-王耀伟(1)》电子版地址
金融专场-DevOps驱动金融行业研发效能升级-王耀伟(1)
100 0
《金融专场-DevOps驱动金融行业研发效能升级-王耀伟(1)》电子版地址
|
Devops 测试技术 持续交付
阿里巴巴DevOps实践指南(五)| 业务驱动的协作
明确需求层次以及每个层次承载的价值之后,接下来要做的是定义每个层次的协作过程,最终服务于“顺畅高质量地交付业务需求”这一目标。如何组织各个层次的协作,来达成这一最终目标?
阿里巴巴DevOps实践指南(五)| 业务驱动的协作
|
25天前
|
运维 安全 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
在数字化转型的浪潮中,企业对于IT基础设施的要求越来越高,不仅需要快速响应市场变化,还要确保系统的稳定与安全。本文深入探讨了如何通过融合DevOps文化和容器化技术来构建一个高效、稳定且易于管理的云基础设施。通过实际案例分析,阐述了持续集成/持续部署(CI/CD)流程的优化、自动化测试、监控以及日志管理等关键环节的实施策略,旨在为运维专业人员提供一套切实可行的解决方案。
23 3
|
28天前
|
运维 Kubernetes Devops
构建高效可靠的云基础设施:DevOps与容器化技术融合实践
【2月更文挑战第30天】 在当今快速迭代和竞争激烈的软件开发领域,传统的IT运维模式已难以满足业务发展的需要。本文将探讨如何通过整合DevOps文化和容器化技术,构建一个既高效又可靠的云基础设施。文章首先回顾了DevOps的核心理念及其对运维工作流的影响,接着深入讨论了容器化技术的优势和挑战,并提出了一套结合两者的实施方案。最后,通过案例分析展示了该方案在实际环境中的应用效果和潜在益处。
|
3天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
5天前
|
运维 Devops 持续交付
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【4月更文挑战第13天】 在当今快速迭代和持续部署的软件开发环境中,传统的IT运维模式已难以满足业务发展的需求。本文聚焦于如何通过融合DevOps理念与容器化技术,构建一个高效、稳定且易于管理的云基础设施。文章将探讨持续集成/持续交付(CI/CD)流程的优化、容器化技术的最佳实践、以及微服务架构下的应用管理,以期为企业提供一种改进运维效率、加速产品上市时间,同时保障系统稳定性的解决方案。
|
24天前
|
运维 Kubernetes 监控
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
在当今云计算时代,企业追求敏捷性、可扩展性以及成本效益的云基础设施。本文将探讨如何通过DevOps文化与容器化技术的融合,打造一个既高效又稳定的运维环境。文章不仅阐述了DevOps和容器化技术各自的优势,还提供了一个具体的实施案例,展示了这种结合如何优化资源利用、提高部署速度并降低运维复杂性。
|
3月前
|
运维 监控 Devops
构建协同创新的未来:DevOps文化与实践
在当今快节奏的技术世界中,DevOps文化和实践成为了企业实现卓越软件交付和持续创新的关键。本文将探讨DevOps的核心原则、实施步骤以及它如何促进团队协作、提高效率,并引领着未来协同创新的道路。
27 2
|
4月前
|
存储 安全 Devops
DevOps 中 API 治理的工程问题和落地实践案例
API 的全生命周期管理与 Devops 是紧密相关的,Devops 中的各个环节都会对 API 治理有一定的业务诉求,很多时候企业需要一体化的 API 管理平台来提供相应的业务能力。 在 Devops 工作流中进行 API 全生命周期管理时,成功交付的核心其实就是为企业提供工程问题的解决能力。那么所谓工程问题都有哪些呢?
76 0
DevOps 中 API 治理的工程问题和落地实践案例
|
7月前
|
安全 Devops 测试技术
DevOps高效开发管理-云效实践初体验
本实验带您体验通过云效产品,实现快速持续交付。
2029 0