可以想象这样一个场景:当it运维人员准备享受咖啡的时候,突如其来的急促报警会搅乱他们的好心情。即便经过不懈努力解决了大量的警报信息,如此大的工作量也会使运维人员深陷疲惫。我们不禁要问:系统为什么不能通过智能的方式预测问题并在报警发出之前就修复它们呢?想象一下, 当it运维人员使用复杂的 it系统和混合云上的应用程序来处理告警信息时会发生什么?无疑!他们会身陷 “报警泥潭”,无法自拔。
为了达到如下几个目的,为微服务量身打造的新兴架构就诞生了:
支持业务能力
自动将应用程序部署为服务
端点智能
语言和数据的去中心化控制
任何应用中的微服务都有紧密关联的迹象,这种关联会导致多米诺骨牌效应。应用中任何一点延迟或更改都会以意想不到的速度影响到其他服务。每个数字原生企业都依赖于两个要素:数据和分布式系统。两个要素可以保证企业应用中服务的完整交付。数字原生组织越成熟,就会使用更多的分布式系统,也会拥有更多的数据。
成熟的云原生企业会遇到另一个问题,那就是数据碎片化。这需要构建一个整体的应用方案来解决。gartner 估计,it 基础设施产生的数据量会以每年两到三倍的速度增长。
在这样的背景下,为什么人类要为应用程序故障负责?这使我们回过头来质疑一些基本的配置和报警解决方式。
在现代微服务世界中哪些需要改变?
1. 准备你的日志
打破集中和孤立的架构,请将日志汇集到一个系统中。无论是存放还是展示,尽量让它们保存到同一个数据源中。考虑到微服务会生成大量数据,单一视图的方式可以让日志轻松地被搜索到。这是升级现代微服务监控方法的基本操作。
2. 管理分布式网络
分布式网络及其通信不容忽视。它是任何组织的重要组成部分。使用可以长期保存历史数据的集群凯发k8官方的解决方案,并不会通过过度的下采样(downsampling 对样本再次采样,舍弃多余的样本)而牺牲数据粒度。开源和 saas 云服务使这种凯发k8官方的解决方案变得更加复杂。但是它们可以确保当你工作的监控系统与第三方平台集成后能提供完整的可观察性,即便这个三方平台拥有大型和动态的生态系统也是如此。
3. 管理动态日志/跟踪数据
随着基于微服务的应用程序演进与变化,它们生成数据的变化也悄然发生。考虑到在这种情况下监控系统也需要检测异常,所以不能仅仅依赖于手动创建的报警规则。最重要的是,关键报警不会因为日志数据的创建或更新而被忽略。
智能与机器人数据自动化 (rda)
机器人数据自动化 (rda robotic data automation)旨在自动处理数据,并使监控系统和流程更加智能从而管理报警。机器学习算法可以使用历史数据和现有学习模型随时随地创建新报警规则。它处理底层机器数据和报警,进而提供优化报警处理过程的建议。rda 让报警处理过程变得智能化,以减少人为干预。
迈向新的微服务世界
摒弃旧监控方法的四大原因如下:
1. 更多的应用程序正被部署到云中。
2. 迭代会显得更加频繁,对于程序的微小修改都需要将整体应用重新编译和发布。
3. 每次变更都会影响到其他模块,正所谓牵一发而动全身。
4. 如果沿用旧有监控的扩展方式则会影响到整个应用程序,实际上只需要扩展部分资源就可以满足监控扩展需求。
同时,新的微服务架构模式需要关注服务发现、配置管理、负载均衡、消息传递等。您需要具备数据获取和与第三方系统集成的能力。通过rda 的aiops(人工智能运维)方式帮助实现混合 it系统的性能与可用性监控。
译者介绍
崔皓:资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。曾任惠普技术专家。乐于分享,撰写了很多热门技术文章,阅读量超过60万。作者。