Red Hat公司首席软件工程师Bart?omiej P?otka确定了现代云计算可观察性的五个关键和新兴趋势。
在高度抽象、虚拟化、通常是短暂且始终动态的云计算资源的世界中,实现持续可观察性的需求是关键。然而,一些企业创建云计算服务时并没有考虑到内部系统的可观察性。它最初是作为通过资源灵活性和成本可管理性实现IT敏捷性的关键途径而销售的。
现在云计算采用率也在增长,人们需要退后一步评估可观察性能力。此外,随着云原生实现跨越公有云、私有云、混合云、多云(多个供应商)实例,可以开始考虑多云,其中应用程序和数据服务工作负载的不同部分通过不同的云计算服务提供商区分开。
基于控制理论,现代云计算时代的可观察性以多种形式表现出来,那么哪些关键驱动因素正在塑造企业迁移到云中以获得更好视野的方式?
APM无处不在
许多人希望了解云计算可观察性和APM(应用程序性能监控)之间的区别是什么。人们过去“只是简单地”拥有虚拟机,这意味着计算块或实例可以相对容易地暴露于可观察性。
人们现在生活在嵌套虚拟化、软件定义基础设施(SDI)和云计算服务的世界中。企业的应用程序工作负载通常被软件层(也称为“应用程序”)包围:操作系统、代理、编排软件、容器引擎、虚拟机、外部服务等等。
由于APM几乎已经成为可观察性的同义词,现在看到它扩展到整个IT堆栈的每一层和结构。显然,人们需要APM用于应用程序,但还需要基础设施APM(iAPM),并且它需要能够针对现在所在的虚拟化设备。
人们可能正处于不需要区分APM和非应用程序监控的时候。业界已经可以利用类似的方式利用工具来监控和观察云中的各种软件。
联合集中编排视图
在人们拥有多个不同的云计算提供商和许多云计算实例的世界中,需要一个协调的联合可观察性级别,具有集中视图以及跨多个集群中的多个云平台进行过滤和聚合的能力,如果希望能够保持控制的话。
将可观测性数据联合到一个集中的位置是当今一种常见的技术和过程。这已被证明是查找云过载、糟糕的配置和实例闲置的“僵尸”云浪费的最佳方法。当将所有这些结合在一起时,可以驱动更高效的云计算资源来服务内容交付网络,并在更智能的层面全面工作。
考虑内部的相关性
现在消耗和产生的数据量使人们能够获得更多信号来跟踪可观察性要求。如果考虑到物联网正在以指数方式增加数据点这一事实,就数据流而言,大量数据会使可观察性变得更加困难。
为了应对这一挑战,需要考虑相关性。当人们寻求分析系统指标、日志和跟踪时,需要能够在这些程序和任务之间快速跳转,以便在IT堆栈的不同部分动态工作。由于需要观察的内容太多,连接的相关性有助于在数据源之间提供至关重要的链接,这些数据源实际上对IT功能的运行至关重要。
连续分析
可观察性目标让人们不断寻找可以提高性能效率的优化。这意味着需要寻找、跟踪和分析不同的可观察性信号。执行此操作的最佳方法之一是分析。这种技术使人们能够知道应用程序的哪个部分使用了多少计算资源(CPU时间、内存、磁盘或网络IO),而无需在查看进程的资源使用情况时进行猜测。
连续分析使人们能够查看应用程序,并在感兴趣的情况下查看过去的性能特征。如果它即将耗尽内存并可能使整个节点崩溃,则它特别有用。如果可以每60秒查看一次应用程序配置文件(或者甚至更频繁),那么人们就可以看到应用程序源代码中的某个函数可能需要优化或扩充的地方。即使在编译(而不是解释)的应用程序的情况下,也可以回顾性地执行此操作,因为它嵌入了调试符号,使人们能够向后映射到特定的函数调用。
eBPF的大量活动
最后是eBPF,或扩展Berkeley数据包过滤器以使用其全名。这是一种允许人们在Linux内核中执行附加代码的机制。当可以使用这种“特殊机构”技术查看内核内部的特定功能时,就可以获得对可观察性的新控制。另外一个好处是,还可以注意到,eBPF不需要应用程序级别的工具来开始捕获指标。
尽管它最初是为安全而设计的,但现在可以更主动地用于公开应用程序的度量。人们曾经考虑使用服务网格作为在应用程序周围放置代理的一种方式,但是可以用eBPF代替服务网格,eBPF具有更低的开销和更多的功能。
“金丝雀部署”可能仍然需要服务网格,应该注意到,服务网格仍然存在不可观察性用例,例如金丝雀部署(对流量进行严格控制)和授权(通过相互TLS)中的那些用例。目前还没有eBPF尝试在这种级别上调整流量,目前eBPF的用例只是安全性和可观察性。
如果寻求在现代IT堆栈中实现可观察性的过程中考虑这些因素和一些功能,那么可以了解在云端将会发生什么。