可观测性
突然想到了一个很好的隐喻.可观测性, 分布式系统中的可观测性 ,大致是说,面对一个黑盒,如果我们想管理他,那么第一就是要想办法增加可观测性,能够观测,有了量化的结果,才能够进行优化.
代码重构是一个例子.人/开发工程师 肉体的进行观测,经过数十年,大大小小的观测,经过自己内心的总结,归纳出了"bad smell".事物向好的方向发展的一种方式是: 归纳(观测)->总结->优化->归纳,这种循环.
那么公司,特别是软件开发公司的可观测性体现在哪里?
实际上大概就是各种协助软件,每个任务的建立和关闭,所代表的就是公司的一次呼吸.这种数据就是优化的来源.
软件的可观测性
软件的可观测性,一部分来自于软件的日志,不过并不是说有了详尽日志的软件就是可观测的。这种观测必须是对象化的。当我们能够如臂使指的操作这些日志,或者讲日志所体现的不是割裂的单个记录而是一个相互链接的有机体,到了这中程度我们才可以说一个软件是可观测的。
操作系统的可观测性
操作系统的实际上就是软件。系统调用就可以说是其的一次运动,windows上有eventlog,linux 上有bpf。
开发的可观测性
开发活动实际上也是可以观测的。特别是敏捷运动,降生以来,软件开发过程实际上被程序化了。每一个流程的流转过程实际上就是状态的变化过程,也就是我们的观察点。目前的各种协助软件,各种统计报表就是在做这样的事情。
个人的可观测性
人,特别是程序员,特别是可穿戴设备流行之后,人所产生的数据在很大程度上也被保存了起来,所以人同样也是可观测,可分析,可优化的。所以提升自我的一种手段就是多多的提升自己的可观测性,多写写日记博客之类的,以供优化分析。
自律
同样套用软件的隐喻,当我们讲一个软件不自律会是怎么样的一个场景?时常的崩溃,占用高,性能低,同样这些评价也可以在应用回对人的评价上。所以解决软件问题的一些方式同样也可以被借鉴到个人上。学习各种模式,嗅到各种坏味道后尽快的进行重构。
公司的可观测性
公司,特别是软件开发公司,尽可能的使用各种协助工具,给各种公司运转,研发过程留下信息,提升可观测性,从而通过分析数据得到提升。即效能分析/优化。
世界的可观测性
进入信息时代以来,这个世界的可观测性,提升了很多,天气api,gps,物流api,现在大家可以说真的是在网上生活,一个人实际上从可观测性的角度来讲就是一个在不停发出各种事件的事件触发器。
one more thing
在可观测性之后,还有一个概念是可操作性。当我们有了足够的数据后,如果使得改变更容易发生?,当我们发现自己的问题时,如何或者怎么样才能更轻易的更快的改变自己?(拥抱变化.jpg)。我们应该如何使自己变得更具可操作性?