写点什么

今天的应用架构,正处在一个不可测的阶段

  • 2022-04-19
  • 本文字数:3664 字

    阅读完需:约 12 分钟

今天的应用架构,正处在一个不可测的阶段

采访嘉宾 | 吴结生(Jason Wu) 阿里巴巴高级研究员

主持人 | 霍太稳 极客邦科技创始人 CEO

编辑 | 邓艳琴


近几年,“可观测性”这个词在国内的 IT 圈子突然走红,阿里、百度、字节腾讯等大厂纷纷跟进可观测性建设,更有多家基于可观测技术创业的公司陆续成立,可观测性领域的融资很火爆。这把名为“可观测性”的火,甚至从后端领域,延伸到了大前端,一些移动开发团队希望通过引入“可观测性”概念解决更深层次的应用架构问题,改善性能和业务体验。


然而,“可观测性”并不是一个新词,为探寻它翻红背后的原因,InfoQ 采访了阿里巴巴高级研究员、阿里云智能存储负责人吴结生(Jason Wu)。在今年首期 C 位面对面中,他与 InfoQ 共同解读了存储技术的现在与未来,分享了他亲历过的一些重大抉择与成长感悟,https://www.infoq.cn/article/Kwud4ha7syxRDDk5I4Yj。同时,Jason 所负责的团队,也正在为可观测性发展做一些工作。本次,针对可观测性,Jason 与 InfoQ 探讨了他的理解,以下是他的四个核心观点——


观点一:今天的应用架构,正处在一个不可测的阶段。

观点二:监控是系统具备可观测的能力之后,上层提供的一种工程能力。

观点三:可观测性一直存在,现在只是翻红。

观点四:云原生时代,产品更需要具备可观测性。

Observability,可观测性 or 可观察性?


在谈论可观测性的现在与未来之前,我们先来聊聊这个词语本身。


可观测性的概念来自于国外的 Observability 一词,但如果我们打开各种翻译软件,输入“Observability”,出来的翻译结果往往都是“可观察性”。


所以,为什么不叫“可观察性”,而要提“可观测性”?我们发现,今天有不少技术团队是混用这两个词语的,他们认为没有什么区别,甚至会觉得你们搞文字工作的真烦,在这里咬文嚼字,真是吃饱了撑的。


但翻译其实是一件非常严肃重要的事情,好的翻译可以让人一看就懂。举个经典的反例,计算机领域有一个词语叫鲁棒性,如果不去查询相关资料,你可能很难理解这到底是个什么特性。


因此,是选择“可观察性”还是“可观测性”,这件事还是有一些小小的讨论价值的。


若我们引用国内已有的文献,会发现这两个词都有相关的释义。


  • 可观察性是 2014 年全国科学技术名词审定委员会公布的全科医学与社区卫生名词。

  • 可观测性是 1990 年全国科学技术名词审定委员会公布的自动化科学技术名词。


看起来,沿袭可观测性的叫法,会更加贴合。那么从技术的角度来看,又是什么情况呢?对于这一个问题,Jason 表达了他的看法:“这个问题我之前还真的没有想过,但如果你去搜索,会发现可观测的频率更高一些。而我个人也会比较倾向于可观测性,为什么呢?因为,我们很多的系统,或者说,很多的应用架构,在今天其实是处在一个不可测的阶段。既然不可测,那么相对应的,可观测可能就更契合一点。”

可观测性是新概念吗?


在针对可观测性的讨论中,也夹杂着一些批判的声音:这实际上就是对监控 /Monitoring 的改头换面而已,却有人声称这是一种新技术,这都是供应商的阴谋。


这里需要探讨的有两个问题,第一,可观测性是新技术吗?第二,可观测性就是监控的包装炒作吗?

可观测性的内涵一直存在


首先,可观测性的内涵一直都存在,如果仔细回忆一下,你会发现以前大型的分布式系统,包括并行计算里面,都是强调可观测性的。再比如,Linux 里面就有很多可观测性的东西,打开一些 FLAG,它就会给你收集很多性能指标或者日志。在编译程序的时候,打开一些编译选项,你可以有很多 Debug 的信息,这些都是可观测性的体现。


Jason 认为,从某种意义上来说,可观测性就是系统或者产品的一种能力。你的产品和系统在具备了功能和性能这些基本属性之外,还需要具备可观测性,这是一种能力的体现。这样的能力会带来什么样的好处?你可以把软件、产品、服务,从黑盒变成白盒,帮助你更好地理解它们,帮助你站在更高的层次来发现问题、定位问题、解决问题。


那为什么可观测性在今天被大范围提起来了,还被提到了一个新的高度?


因为云计算的发展。容器、微服务、分布式系统的出现,让系统变得越来越复杂,在这个环境下,大家对于当下的新系统的设计、产品的设计,就衍生出了一些新的诉求,而且这个诉求在变得越来越明显。


举个例子来讲,今天,我们有非常多的业务采用的是微服务架构,有几千个容器,这些容器之间相互依赖,通信十分复杂。如果说,每个容器它自己不具备可观测的能力,你要怎么排查问题?


再举一个例子,可能你的系统用了多种技术产品,一些业务是你自己的,一些是阿里云产品的,一些是第三方提供的,这几者相互交错。如果你的系统不具备可观测性的话,你又要怎么排查问题?


总结下来,是两个原因驱动了可观测性概念的走红,一是对系统从黑盒到白盒的诉求,二是对资源到业务的可观测性的诉求。


第一点比较好理解,第二点我们需要再举个例子说明。如果你在运行一个网站服务,你发现客户的体验非常慢,那你需要想办法知道到底是慢在哪里,这时候前后端都需要排查问题。类似于这种从业务视角去解决问题的机会越来越多,对可观测性的要求也就越来越高。再比如,作为业务方,你用了非常多的容器微服务,用了很多云厂商的产品,你要关心业务的稳定性的话,你需要知道自己的系统里面发生了什么事情,那些云厂商的产品里面又发生了什么事情,这些事情怎么串联起来。这就是从资源到业务的可观测性。


可观测兴盛于云原生,它将如何作用于云原生?Jaosn 表示,它让大家意识到,不管是云原生服务也好,云原生产品也好,都需要具备可观测的能力,这是一个基本的要求。“我们要提供一些辅助的工具,去帮助客户理解和洞察他的业务里面发生的行为,所以就出现了像 APM 这样的一些工具和产品,能够自动地去插入一些代码到客户的应用里面,去帮助他们去做性能监控,或是其他事情。”

可观测性 vs 监控


第二个问题,可观测性是不是就是监控?


关于这个问题,业界存在几种观点,有认为监控就是可观测性的,有认为这两者没有区别,但是之前的监控做的不对的,也有认为监控是可观测性的子集的,还有认为这完全不是一码事的。


这里需要额外提一下第二个观点,这个观点的支持者表示:“监控不是数据采集、数据存储和数据展示,那和普通的 CRUD 有什么区别?监控应该是有 Topo 的,如果某个 Metric 下降了,告警了,你却不能告诉我为什么,是有人为变更还是机器故障了,那你叫什么监控?”


再回到我们的问题上来,Jason 认为,监控系统是系统具备可被观测的能力之后,我们在上面提供的工程能力。你首先要具备可观测性,才可被监控。当一个软件、一个模块具备可观测性之后,你就可以拿到 Traces 追踪、Loggings 日志、Metrics 性能等指标数据,再在上面去建立监控这种工程平台。得益于此,你监控的维度可能也会更多。

可观测性与存储的奇妙结合


数据是可观测性的核心,谈到数据必然离不开存储。作为阿里云智能存储负责人,Jason 如何看待存储和可观测性之间的关系呢?


Jason 以阿里云存储为例做了阐述。一方面,阿里云将大量地在系统设计和产品里面提供可观测的能力,后面将推出一系列的一些产品的功能,来强化阿里云产品的可观测能力。以存储产品为例,都会有好几个 Lens,这样一来,客户就能知道,自己发送一个请求到块存储或者 OSS 之后,这个请求在哪个地方花了多少时间,是什么样的一个状态。另一方面,他们还会帮助其他产品和客户的服务构建自身的可观测能力,例如提供一些面向 Logging、Metrics、Trace 的高效的存储系统和分析系统,或者在日志服务中提供 AI 分析能力和根因分析能力。


可观测的好处前面说了很多,但一旦涉及到数据,问题就变得十分复杂了。我们担心,系统的可观测性越强,数据安全合规的风险是否会越大?


“我觉得这是个非常好的问题。我们目前的思考是两个方面,一是说在做系统设计的时候,我们会考虑到哪些是敏感信息,哪些信息是可以透传出来的。另外一个,当我们在收集这些数据信息的时候,我们会把一些敏感字段给去掉,并且配套了类似日志审计这样的安全措施来帮助我们,保证这些可观测性的这些数据,它是合理合规的。”Jason 还告诉我们,这是一个在不断演进的过程,“我们所做的一些数据治理方面的工作,都是在围绕怎么样让数据更加合规,以及数据流动是在客户可以预期的范围内,就是说这个数据不能从这个区域流到另外一个区域。类似这样的数据安全管理,是整个产品设计和服务里面都要考虑到的。”

写在最后


当前,我们正处于一个数据量爆炸的时代,这带来了整个系统架构的演化。系统规模愈加庞大,容器与容器之间,数据与数据之间,关系错综复杂,一旦出现问题,排查起来相当棘手。打造具备可观测性的系统是应对之策,AIOps 又是另一个可行手段。接下来,我们还将联合阿里云《云桌派》栏目,带来一篇深度专访,探究可观测性与 AIOps 如何在今天的架构运维中形成合力,敬请期待。


另外,将于 6 月 22-24 日举办的 QCon 全球软件开发大会(北京站)邀请到了来自阿里、百度、腾讯、云杉网络的资深专家,围绕 Prometheus、eBPF、OpenTelemetry、下一代微服务可观测架构等分享云原生场景下的可观测实践案例点击查看大会日程安排,感兴趣的同学也可直接联系票务经理:17310043226

2022-04-19 18:004961

评论

发布
暂无评论
发现更多内容

10天拿到腾讯Android岗offer,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

一图解密百TB数据分析如何跑进45秒 原创

百度Geek说

大数据 后端

询盘获客软件系统开发详情

分布式性能测试框架用例方案设想(一)

FunTester

性能测试 接口测试 测试框架 测试开发 分布式压测

详解云安全攻防模型,这些攻击战略和战术越早知道越好!

博文视点Broadview

中国RPA厂商首次入选Gartner RPA魔力象限,背后的意义是什么?

王吉伟频道

AI RPA 机器人流程自动化 Gartner 国产RPA

MEMS加速度计如何选型?

不脱发的程序猿

物联网 传感器 ADI MEMS加速度计 期刊论文

基于docker的分布式性能测试框架功能验证(一)

FunTester

性能测试 接口测试 测试框架 测试开发 分布式压测

Vue组件间的传值五大场景,你造吗?

华为云开发者联盟

Vue 组件 传值

短视频营销获客软件系统开发内容

架构训练营毕业设计

Geek_649372

架构训练营

330页PDF,10万字的知识点总结,架构师必备!

欢喜学安卓

android 程序员 面试 移动开发

浅谈工业4.0背景下的空中数据端口,无人机 3D 可视化系统的应用

一只数据鲸鱼

无人机 数据可视化 工业4.0 数字孪生 智慧工业

差之毫厘:etcd 3 完美支持 HTTP 访问?

Apache APISIX 中文社区

etcd 网关 APISIX

逆袭成功,不愧是阿里内部面试参考指南,已帮我拿下了8个大厂的offer

Java 程序员 架构 面试 计算机

拒做背锅侠!如何利用网站性能优化驱动产品体验提升

阿里巴巴中间件

云计算 阿里云 云原生 中间件

AI智能获客询盘软件系统开发公司

肝完这在“牛客网”难倒万人的Java面试题后,已收获9个大厂offer

java小李

Sprint Boot git reset spring cloud alibaba

手撕环形队列

实力程序员

程序员 数据结构

5年经验Android程序员面试27天,从理论到实践!

欢喜学安卓

android 程序员 面试 移动开发

裸辞后吊打大厂面试官,四面拿到阿里offer后我还是选择了美团

java小李

tomcat elasticsearch

搜客系统软件开发公司

Go语言:如何通过 RPC 来实现跨平台服务!

微客鸟窝

Go 语言

马士兵「研发」对标阿里Java架构师P5—P9成长路线,文档+教程

Java架构追梦

Java 数据库 架构 JVM 多线程与高并发

系统性能优化-缓存

计算机 计算机缓存

5 分钟,从 0 到 1 上线个人网站!

程序员鱼皮

JavaScript GitHub 大前端 Web 计算机

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java 编程 程序员 架构师 计算机

短视频询盘获客系统软件开发价格

漏桶算法和令牌桶算法,区别到底在哪里?

华仔

漏桶算法 令牌桶算法

今天的应用架构,正处在一个不可测的阶段_云计算_邓艳琴_InfoQ精选文章