智能、互联时代已经来临,应用并发量激增,业务流程更加复杂,新技术迭代落地的速度更快。采用传统单体架构开发和控制系统代码的复杂度、保障系统可扩展性的难度越来越大。微服务架构通过将独立业务流程解耦的设计理念快速赢得了大量架构师的关注,其更加灵活的部署方式和便捷的服务拼装都使人眼前一亮。大量企业,特别是互联网企业基于微服务架构建设的信息系统都获得了成功。然而,微服务架构是否适合所有类型的应用系统呢?微服务架构是否是解决日益膨胀的数字系统开发和管理难题的方案呢?
微服务架构是一把双刃剑,一方面它大幅度缓解了基于单体架构的系统开发、部署的复杂性问题;另一方面它给用户数字体验保障、应用性能稳定性保障带来了新的挑战。
基于微服务架构的应用的主要特点是业务功能模块松耦合、分布式部署。大部分业务功能模块都是单独部署运行的,彼此通过数据总线交互,基本都是无状态的服务,以确保能够灵活扩展。在这种架构下,从前台到后台的业务流程会经过多个服务节点(可能包括多台物理设备、虚拟机、容器和很多微服务)来进行处理、调用和传递。这种方式的主要优点如下。
- 业务逻辑复杂、系统庞大的应用系统能够持续交付、持续部署。
- 服务业务逻辑独立,易于开发。
- 服务之间的耦合度低,可以独立部署。
- 服务可以独立集群扩容。
- 使应用能够快速引入新技术,支持多种语言开发的服务协同工作。
基于微服务架构的应用系统在运维过程中会遇到如下很多棘手的问题。
- 应用的服务节点数快速增加,复杂度急剧膨胀,导致测试、运维成本增加。
- 业务流程处理链路变长,保障用户数字体验的难度增加。
- 业务逻辑和中间件解耦,动态性提升,日常管理的难度增加。
- 监控目标类型多,数据来源分散,故障定位、分析困难。
目前,运维团队应对以上问题的主要手段是,采用Prometheus、ElasticSearch、SkyWalking、Zipkin、ZABBIX等开源工具自建应用监控系统。但是,实践结果显示,这种方式不仅不能降低微服务监控运维的成本,而且由于需要搭建多种监控系统来协同工作,反而增加了系统的复杂度,同时从多个系统接收告警、查询相关数据,使得故障定位和分析的成本更高。
因此,企业需要围绕基于微服务架构的应用监控运维场景,研发设计全景监控管理解决方案。以全景监控视图整合应用监控数据,通过场景化仪表盘来应对用户数字体验保障、业务流程监控、应用性能稳定性保障等场景,化繁为简,为企业落地微服务保驾护航。该解决方案的核心价值可以总结四个方面。
- 业务优先一体化监控,提升了系统的可靠性。
- 划清责任边界,有序管理运维。
- 实时监控业务,简化人工处理故障的过程。
- 融合多源数据,支持智能、高效运维。
对于企业来说,基于微服务架构的应用的智能运维系统能够解决的主要难点和对应的解决方案可以总结为以下几点。
- 系统复杂度激增,导致故障频发、用户投诉不断,用户体验难以保障。
解决方案:围绕用户体验保障,打造全景监控系统,提升系统的可靠性。
关键价值:
①业务优先一体化监控,提升了系统的可靠性;
②全景监控,简化了问题溯源流程;
③业务状态可视化,简化了定位分析流程;
④全局态势分析,可实时感知潜在风险;
⑤故障溯源,可进行海量数据的溯源分析;
⑥全面支持各种微服务基础组件。
- 指标告警和业务错误无法关联,责任边界难以界定。
解决方案:梳理整合业务流程和监控指标、关联系统告警和业务异常,划清责任边界,有序管理运维。
关键价值:
①划清责任边界,有序管理运维;
②可视化层级视图管理,明确职责边界;
③整合业务和监控指标,辅助风险根源定位;
④有序关联运维场景,简化故障处理流程。
- 应用业务流程复杂,故障排查耗时。
解决方案:打造以业务为核心的一体化监控视图,实时自动采集和分析复杂业务流程的状态,简化人工排查故障、定位故障根源的过程。
关键价值:实时监控业务,简化人工处理故障的过程,具体来说,包括以下方面。
①核心业务全景监控,一站式管理业务状态;
②实时监控业务,业务故障自动发现;
③打通业务和技术指标,压缩故障分析过程。
- 监控数据分散,定位分析困难。
解决方案:整合现有监控系统数据,打造运维中台,打通异构监控数据源,为实现智能、高效运维奠定基础。
关键价值:
①融合多源数据,支撑智能、高效运维;
②运维数据融合存储,业务技术指标联动;
③应用全链路监控,方便故障的关联定位;
④智能检测定位异常,支撑运维提效减负。
综上所述,要想让微服务架构为企业所用,发挥更大的价值,必须要有行之有效的基于微服务架构的应用监控运维系统。