【 文章来源 】https://thenewstack.io/why-traditional-logging-and-observability-waste-developer-time/

左移(使数据位向左移动的移位操作)可观测性的神奇之处在于:能直接跳转至导致错误的特定代码行,无需重新启动、重新部署或添加更多代码。

近几年,DevOps 产生诸多变化。容器和微服务在这一方面尤为突出,主要体现在:安全责任分散至更多的团队,且呈现出自动化趋势。

也许您会认为,所有改变的共同点是让一切都云原生化——容器集中体现了对工程师的重视,更多功能“作为服务”提供,扩展似乎通过将一切转移到异地(按需)服务器来展现其自动化。但最大的“哲学性”转变是“左移”(使数据位向左移动的移位操作)。

近期的一个非 DevOps 范例可以解释这种转变:新冠肺炎疫苗。记忆回到 2020 年 3 月,冠状病毒让公众陷入紧急境地。我们急需疫苗,但疫苗研发过程通常需要数年的多阶段测试。为了生产这种疫苗,只能跳过或减少学术研究和临床前试验。于是多个试验阶段不再按程序相继开展,而是同时进行。借助于这一策略,可行的疫苗得以在不到一年的时间里生产出来。

软件也是如此。规划阶段之后是编码,然后是测试、发布、部署和操作。在这里,前三个阶段相互重叠和重复:计划、编码和测试。一旦产品的最小可行性达成,就可以进行发布,但“左移”的初始过程会持续专注于更新和用户体验。

不过说真的,“左移”这一概念有多“哲学化”?它并非抽象呈现,而存在具体所指。它并非统领性哲学,而是更直奔主题:让事情变得可行,并且做得更快。但如果它这么实用,为何人们之前没有相应动作?

“左移”花了这么长时间才引起重视是有原因的:毕竟人们在此之前并不需要这一服务。

为何是现在?

云计算已经存在了一段时间,但仅在最近几年,从本地服务器的全面转变才加快了步伐。由于更多的数据和进程可能在云中发生,云计算可以托管更复杂的应用程序。而随着这些应用程序变得越发复杂,它们的架构也随之发生改变。

为了处理新应用程序使用或提供的机制和服务,它们被分解成特有的的微级应用程序:微服务。所有组件从一个整体中分离出来,以便每个组件都能更有效地独立运行,这显然需要一个复杂的架构来使它们协同工作。

云原生 DevOps 从根本上缩短了开发周期。过去的 monolith 环境使得在测试中复制东西变得非常简单。但是有了云,需要移动的部分就太多了。

每个功能(一个实例、一个容器、某个应用程序的第二次部署)都有自己的配置。再加上影响某些个人用户体验或某些云资源可用性的确切条件,你就有了不可复制的条件集。

因此,开发人员需要在开展完全部署之前预测更多问题,特别是如果他们将流程扩展到另一个“服务”提供商(尤其是无服务器)。

如果没有这些动作,后期故障排除将不堪重负。

向左前进

与测试、安全性和总体开发运维相关的左移有不同的子类型。在测试中,我们将测试推到开发的早期阶段,以获得更快的反馈。在安全性方面,我们在新应用发布前就寻求安全措施,并在应用构建时对此再次重申。

“左移”意味着将开发阶段提前至近乎于项目开始的时间。这对开发过程每个阶段的主导者都有影响。

运维人员(Ops)曾主导整个监控栈。随着开发人员和运维人员之间越来越紧密,开发人员不仅更接近运维工具,甚至还承担起对它们的责任。这种自然发展需要继续下去。

开发人员实际上需要的是继续向左推进:通过将故障排除时间吸收到开发过程每个阶段的默认工作流中,从而找到新的方法来最小化故障排除时间。如今,更低的平均恢复时间(MTTR)不仅仅是产品的一个谈资,还是诸多微服务发挥作用的必需品。

这就意味着为开发人员提供对实时生产数据的必要访问,从而使整个操作更加灵活和动态。一旦开发团队获得了处理生产级代码的独立性,就不必等待运维部门根据具体情况授予他们访问权限。这就是为什么将 Rookout 的实时调试提升到与远程调试或可观察性的三大支柱同等重要的水平。

开发人员优先可观测性的实例

生产调试工具可以与传统的监控和应用性能监测(APM)工具分开使用,但是这些工具一起运行时,更能体现出演示可观测性需要左移的原因。因为事实是,虽然传统的 APM 和监控至关重要,但运维人员对它们提供的数据通常比开发人员更感兴趣。

无论选择何种生产调试解决方案,都应该直接与 Datadog 这样的监控和 APM 平台整合。当谈到诊断和查明性能问题的根本原因,企业的敏捷性和速度在此时将得到极大改善。“左移”可观察性的神奇之处在于:能直接跳转至导致错误的特定代码行,无需重新启动、重新部署或添加更多代码。

整合的目标是最终使企业更容易理解他们自己的软件,并缩小指出影响性能的代码相关问题、查明代码行中的直接问题和快速部署解决方案之间的差距,如此一来,就能在不必编写更多代码或重新部署应用程序的情况下获得无缝的客户体验。在现代生产调试器中,这一目标可以通过设置不中断的断点来实现,这些断点可以在应用程序保持运行的情况下实时提取数据。

节省金钱与时间

生产力可以是三种不同资源的产物:时间、金钱和精力。

通过提前检测 bug 可以节省的金额很难量化(一说是已投入生产时的 100 倍,该说法并不一定准确)。也就是说,目前存在大量关于部署前故障排除和测试成本与生产停机相关成本的数据。

如果考虑生产中的调试成本,设定美国一个四人 QA 团队每年的成本约为 30 万美元( ZipRecruiter 预估此处的平均工资为 7.5 万美元),加上完成这项工作时所需各种工具的额外费用。

另一方面,Gartner 引用的停机成本为每分钟 5600 美元(即每小时 30 万美元);Ponemon 研究所的引用为每分钟 9000 美元(即每小时 54 万美元)。

想想关闭一个全力运行的操作的成本:团队的精力转移到其他地方;直接参与识别和/或补救问题的人越来越多;非开发人员不得不降低他们的工作效率,等待工程师来拯救世界;销售代表无法吸引客户;企业间销售代表可能不得不在服务中断后将重点从寻找新客转移到维护老客,并重新赢得老客的信任以避免客户流失。

结论:翻越下一座山

向左推进越过下一个山脊意味着更快速地为团队提供正确补给。没有任何工具可以实现左移可观测性的说法是错误的,相反,之后会不断涌现这样的工具;QA这样的团队正在消亡的说法也是错误的,只是他们的工作性质正在发生变化,并且需要合适的工具来辅助工作。

我们的工作是制造可以填补这些空白的工具。对此必须从两个角度来看待,既是服务提供商,也是 DevOps 从业者。我们预计客户的这种方法会更受欢迎,因此我们正在做相应的准备。其他服务提供商也应该如此。我们内部的调试过程正向左移方向发展;不难看出,其他技术团队也正在把握这一趋势。

观测云——快速实现系统可观测

观测云(www.guance.com),新一代云原生全链路数据可观测平台,国内首批获得中国信通院颁发的「可观测性平台技术能力」最高级别「先进级」认证,实现统一采集、统一标签、统一存储和统一界面,带来全功能的一体化可观测体验。

观测云能全环境高基数采集数据,支持多维度信息智能检索分析,及提供强大的自定义可编程能力,使系统运行状态尽在掌控,故障根因无所遁形。

 

 

原文地址:http://www.cnblogs.com/littleguance/p/16851856.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性