企业级微服务架构必备能力概述

时间:2022-10-12 17:03:33

企业级微服务架构要具有一套完善的软件生产流程、资源管理机制和风险管控体系,不但要满足日常软件交付,还要能实现资源的弹性伸缩、系统的风险管控和业务的持续运营。这是因为微服务架构带来的分布式系统的复杂性已经超出人工的能力范围,所以需要一整套完善的保障机制来保障系统在人力的可控范围之内运行。

实施微服务的目的是增强系统的扩展能力和弹性伸缩能力,也就是系统的运营能力。说到运营能力,要看系统的反应能力,面对新需求、业务变更的反应速度。在信息时代,唯“快”不破,因此高效的软件交付也是企业级微服务架构的必备能力之一。

所以企业级微服务架构要具备以下能力:自动化软件交付、智能化系统运维、系统化业务运营。

一、自动化软件交付

在传统开发模式中,系统要上线,开发人员提交代码,通过版本管理工具进行代码整合,运维人员把代码打包编译成一个JAR包,然后进行集群部署。由于操作对象少,一切还在人为掌控之中。而一旦实现微服务,一个系统拆分成大大小小几十个、上百个微服务,甚至更多,如果还采取人工部署上线的方式,结果可想而知。

微服务架构增加了系统的复杂度,面对数量庞大的微服务,考虑到集群部署,集群间关系,如果还按照传统的软件交付模式,已很难支撑。这就需要一种新的软件交付模式,DevOps的出现解决了微服务交付的难题。

DevOps即开发运维一体,其核心是自动化协同。自动化是技术手段,通过纵向打通工具链,把从开发提交到上线部署的各个环节打通,实现自动化,完成一键部署。协同是横向打通部门墙,通过流程把开发、运维和所有相关人员连接起来更高效地工作。

二、智能化系统运维

微服务架构把一个完整的系统拆分成一个个微服务,再加上集群化部署,大大增加了系统的复杂性。有时候这些复杂性已经超出了人工的能力范围,需要借助一些智能化的手段来帮助运维人员维护这么庞大的资源。这就是企业级微服务架构必须要实现智能化运维的原因。这也需要智能化运维具备以下能力。

1、基础资源管理能力

基础资源指代码库、配置信息、容器、环境等资源。拆分成微服务后,代码库体积可能变化不大,但管理对象会增多,关系会变得复杂,运营指标也会不一样,这些都需要有效的管理。配置信息涉及服务资源的分配,而服务数量众多,还要考虑资源动态分配,所以配置信息对于系统的稳定运行至关重要。容器与环境是微服务的基础,如果不能为自动化软件交付提供基础能力和实现系统资源的弹性伸缩,那么实施微服务就是一句空话。

2、有效的服务治理能力

打造平台的稳定性是系统建设的永恒追求,特别是拆分成微服务后,分布式系统固有复杂性带来了更多的故障潜在点和更难的问题排查,这就对系统的稳定性和可维护性提出了更高的要求。如果没有有效的服务治理手段,则系统就会陷入无序和不可控。所谓有效服务治理,就是系统要能够提供服务资产管理能力、在线服务控制能力,以及问题自动检测和主动自愈能力。服务注册与发现、熔断机制、限流与降级、流量调度、故障转移等都是打造平台稳定性的有效手段。

3、调用链跟踪分析能力

微服务架构解耦了业务系统,使得系统日志碎片化。如果还采用在单体模式下通过登录后台主机查看日志的方式定位问题和分析则会变得非常困难,必须要有一种新的技术手段能够快速定位和分析问题。因此,调用链跟踪分析成为微服务架构的必备能力。调用链跟踪分析是通过汇集日志,把完成一项业务过程中调用的所有服务根据先后顺序串接起来形成调用链。调用链跟踪除了展示服务的调用关系外,还要能够记录每个服务的执行状态、执行时长、运行态参数等信息,具备系统执行瓶颈分析、故障传导分析、运营指标分析和输出质量报表等能力。

4、预警、告警能力

预警、告警也是一种保障系统稳定性的重要手段。预警是一种事前告警行为,通过设置安全阈值实现预警。告警则是一种事后的告警行为,当系统出现问题,就发出告警,通知相关责任人。预警、告警要能够根据告警的不同级别设定不同的默认处理方式,如容灾、容错、故障转移等。

三、系统化业务运营

支撑业务运营是系统价值所在。以前业务运营对系统的要求并不高,只要系统运行稳定,能够满足日常的业务活动即可,并没有特别要求。而今,市场发生了很大的变化,人口红利结束,个性的需求开始出现,系统也不再孤立,出现了生态,这就对系统的运营能力提出了新的要求。不但要能够保证7×24小时不间隔地提供服务,还要能够与外部连接,提供各种分析报表,这就要求运维团队由运维向运营进行职能转变。

系统运维变成了系统运营,这也是企业精细化管理的要求。微服务化后的系统运营责任会更加明确,每个团队都有自己负责的微服务,这些微服务的服务能力和服务质量与团队的业绩绑定。另外,以微服务的质量作为考核指标,这也有助于系统的优化,有助于提升微服务的价值。

因此,系统化业务运营要能够达到以下要求:

  • 能够评估微服务的质量,与运维团队绩效相关;
  • 提供系统运营质量报告,包括服务引用次数、出错率、系统分布、价值、风险评估等内容;
  • 需求的定制能力,能够根据用户个性化要求提供有针对性的产品或服务;
  • 构建生态的能力,能够通过能力开放与外部系统进行连接。