谁、什么、为什么以及如何为构建软件的团队提供可观察性

在这个质量意识节目主持人费德里科·托莱多(Federico Toledo)坐下来与丽莎·克里斯宾(Lisa Crispin)进行虚拟聊天。她最近在低代码开发平台担任质量负责人的角色,OutSystems该公司总部位于葡萄牙。她与Janet Gregory的合作也非常有名,Janet Gregory是敏捷测试协会的创始人之一,也是许多有影响力的敏捷测试书籍的合著者。

期待什么?

  • 两人讨论了“可观察性”这个新术语是什么,以及它与监控、测试甚至混沌工程的关系
  • 测试现代软件的所有复杂性和处理“未知的未知”的挑战
  • 项目OpenTelemetry和不同的工具如何帮助实现可观察性
  • 如果你想了解更多关于持续交付、DevOps和可观察性的知识,可以阅读什么
  • 合作和结对是学习和提高你所做事情的好方法吗

听:

事件记录:

(为了清晰,稍微编辑了一下。)

费德里科•:

你好Lisa,非常感谢你加入我们的播客!

丽莎:

费德里克,这是我的荣幸。我很高兴能有这个新的播客,我一直在听。真正伟大的东西。

费德里科•:

谢谢你!非常感谢。你要开始一份新工作了,对吧?最近怎么样?

丽莎:

是的。就在三月底,我加入了OutSystems,这是一个低代码的平台,非常有趣。

我的团队在葡萄牙,所以这是一种全新的体验,在这个每个人都很遥远的奇怪时代开始一份新工作是很有趣的。

这对我来说是件好事,因为无论如何我都要远离他们,但认识新朋友是件有趣的事,你不仅会认识他们,还会认识(由于COVID-19)与他们住在一起的人。他们的孩子,他们的宠物,所以我想这是一个更私人的层面。

当然,人们也会因为这些事情而感到更有压力。所以,这是开始一份新工作的好时机,同时也能学到一些全新的东西。但我真的很喜欢,我开始学习葡萄牙语。

费德里科•:

这是你第一次在美国以外的公司工作吗?

丽莎:

不。实际上,几年前我在一家德国软件公司工作了很长一段时间,当时我住在丹佛,但我每次都要去德国三四个星期,和那里的开发人员一起工作,这真的很有趣。看到世界上其他地方的人是如何开发软件的,这很令人兴奋,也很有趣。

我认为现在我们都是如此紧密地联系在一起,差异已经很少了,但回到80年代和90年代,你会看到非常不同的想法,有些领域比其他领域更有创新。所以很有趣。

费德里科•:

今天我想讲的主题是与可观察性有关的。我知道你最近一直在讨论这个话题。

丽莎:

是的,我是。我的新工作是,我的主要关注点是帮助OutSystems建立一个可观察性实践无论是在公司内部,还是在支持我们的客户。对于那些用我们的产品构建应用程序的客户,也要为他们构建可观察性。所以这是一个很大的努力。这才刚刚开始。

费德里科•:

首先,什么是可观察性?因为我认为这是一个很新的术语。

丽莎:

它确实是一个新的测试领域,很多测试人员都没有听说过它。但即使当你和那些在运营部门工作的人交谈他们已经做了监控和日志等工作,他们也不知道这是什么。

有些人认为,“哦,这只是监控的新名称。”当然,这是完全不同的。

费德里科•:

可观察性与监视有何不同?

丽莎:

我们已经有很长时间的监控了。我们有仪表盘,我们将日志数据写入日志文件,这样当出现问题时,我们可以调试它。

问题是,我们倾向于用我们的代码知道可能会出问题或者我们预期会出问题。当超过某些性能阈值或错误阈值时,我们设置警报。我们提供警报,以便有人能调查。如果发生事故,我们会记录下来。

但是,如果发生了我们没有预料到的事情,我们不会对这部分代码进行任何日志记录。我相信很多听众都有过这样的经历,他们只是说,“好吧,我们想不出来。这是生产中的一个严重问题。现在我们必须在代码中添加一些日志并重新部署。”

根据在您的环境中部署它的容易程度,在以前的问题下,这可能是非常痛苦的。

费德里科•:

重现这个问题,对吧?

丽莎:

正确的。你需要更多的信息,这样我们才能重新介绍。所以这可能是一个漫长的过程。与此同时,你的客户感到痛苦。

所以可观察性是在我们的代码中使用更多的东西,在我们的系统中使用更多的事件,所以如果出现了我们完全无法想象的错误(所有的风险评估和我们事先做的事情),我们只是没有想到它。

可观察性让我们深入研究,“哦,哪里出了问题?”哦,那是什么模块?哦,看,这一件事花了很长时间,我们没有预料到,现在我们可以深入研究它。我们还可以追踪用户的行为。”

所以我们现在有很多复杂的分布式系统,我们的用户通过我们的应用程序走一条路。

“可观察性允许我们追踪用户在所有不同的服务和api中做了什么,以便准确地看到他们所采取的所有步骤,这样我们就可以重现问题。这是一种利用我们现有的非常复杂的工具来探索生产的方法,而且因为我们现在能够以负担得起的成本存储大量数据。”

LISA CRISPIN

所以这些东西结合在一起,这在几年前是不可能的。

费德里科•:

是的。既然你提到了这一点,我认为这是真的,这是一个关键工具,可以在系统的不同部分分析更多的东西,因为系统有更多的组件和更多的东西要监视或分析。所以你需要更多的空间来存储所有这些数据。

但我的理解是,基本上,我们必须为可能出现的问题做好准备我们对可能发生的问题一无所知,对吧?

丽莎:

对的,正确的。正如他们所说的“未知的未知”。

费德里科•:

是的。巨大的挑战。

丽莎:

是的。这是我听过的最好的比喻之一,或许它只是个比喻。我不知道有什么区别,但我觉得是皮埃尔·文森特在他的在曼彻斯特TestBash的演讲

你可能有一辆非常快、马力很大的车,可以很快地把你带到某个地方,但如果有雾,你又看不见,那车就得开得非常慢。

你把它和喷射机相比,它即使在云中也能飞得很快,因为它有仪器可以让它有能见度。一种不同的能见度。

所以他说,这是对我们软件的一种不同的可见性,使我们能够……我们在一个快节奏的世界,我们在做持续的交付,我们希望能够以可持续的速度部署小的变化。这是其中一个重要的组成部分。

费德里科•:

有趣。作为测试人员,我们如何协作因为可观察性是我们系统的一个属性,对吧?所以我们应该测试一下我们的系统有多可观测,对吧?

丽莎:

说得好,费德里科。

我自己也在挣扎。如果你很幸运,你所在的团队已经学会了如何正确地处理代码,创建这些跨度和事件,这将是一个全新的术语,并拥有工具让你能够进行跟踪,并帮助你准确地识别问题发生的位置。

然后,你就可以和使用这些工具的人建立关系,平台工程师,站点可靠性工程师,开发人员,也许和他们配对并学习这些工具。但我认为到目前为止,很少有组织真正掌握了这一点,所以我所做的只是,再次强调,建立关系。

我工作的研发部门有些人对此有所了解。他们当然知道很多关于日志记录或在系统上构建和已经可用的监视的知识。还有那些在第一线帮助顾客的人。他们往往最了解它,因为他们是调试问题的人。

我们必须与来自组织双方的人员一起创建团队,一起做一些概念证明,并找出最好的方法来测试我们的代码。

有一个新标准叫做OpenTelemetry看起来它将成为一个行业标准,提供一种方法来仪表你的代码来创建和存储这些事件,并与许多工具兼容。

所以不同的供应商都在贡献并支持这个标准,所以如果你想选择一个不同的工具来实现可观察性,你不需要重新测试你的代码。

这很有帮助。这些都是最近才发生的事情。这些东西只是凑合在一起。

我认为这是可观察性的起步阶段。所以我认为这对我有很大帮助,还有我认识的人,比如Abby Banks,她也是一名测试员,是她让我对这个感兴趣,她现在在MU的平台工程团队。

和她交谈,有一件事对她很有帮助,那就是她有很好的编程技能。她有开发的背景,她可以深入代码,自己摸索,更好地理解发生了什么。我必须与开发人员结对才能做到这一点,因为我的编码技能不是很好。所以我觉得这对我来说是一个限制。

所以我必须依靠合作。我需要让工程师们和我搭档,一起工作,这是一个额外的挑战。但与此同时,我发现我能给他们带来价值,因为我在思考他们还没想过要问自己的问题。

费德里科•:

我不认为合作是件坏事。

这个问题需要两个人来解决。但是在这个过程的最后,你可能会学到一些关于如何构建这个解决方案的知识,而他或她也会学到一些关于如何批判性地思考用户使用系统的方式的知识。

丽莎:

是的。当然,这也阻碍了我对产品的了解,我不知道客户是如何使用它的。这是我的另一项努力,学习教程,学习产品,因为这很重要。你必须了解数据,你必须了解人们正在做的事情的类型,这样你才能知道你想要如何调查问题。

费德里科•:

上次我们谈话时你告诉我的一些东西,我发现关于可观察性和测试之间的关系非常有趣。基本上,两者的目标或多或少是相同的。

因为这就像获取关于系统使用情况或质量的信息或考虑应用程序的不同方面,目的是将这些信息提供给要做决定的人。

丽莎:

正确的。这确实对我们有帮助。有很多不同的方法我认为在可观察性和分析性之间的界限有点模糊,但我认为如何为分析工具编写代码以及用户在做什么也很重要?

如果我们有了一个新客户,他们首先会做什么?他们在哪里放弃了产品,因为他们无法弄清楚它?

所以我们需要这些信息来构建我们的产品和下一个新功能。但我们也需要信息来知道他们在哪里花的时间最多。对他们来说什么是最有价值的,哪里出现的错误最多?那么我们的测试应该集中在哪里呢?我们想把测试的重点放在所有有价值的东西和所有有问题的东西上。

所以对生产有这样的见解。我们只是猜测,对吧?

也许我们对客户进行了采访,我们当然有很多关于机票或人们报告的问题的信息,但这并没有真正告诉我们什么对他们最有价值。

这是一个额外的工具因为它越来越难测试所有的东西。我们有连续的交付,我们的速度很快。我们的测试环境看起来不像生产环境,在我们有分布式系统的今天更不像。

我们仍然想在发布之前完成所有的测试,但我们必须利用所有这些额外的工具,如可观察性,在生产中测试,使用特性切换,混沌工程。

所以我认为这都是包的一部分,测试人员真的需要参与到持续交付循环或DevOps循环的两边。我们需要全程参与,因为我们也需要对生产过程的第一手知识。

费德里科•:

是的。转向右边,焦点也在环的右边。

丽莎:

是的。这个环的右边和左边。所以它在整个过程中都告诉了我们。

费德里科•:

我还没想过。混沌工程也与可观察性有关因为它可能是一种通过注入错误来提高系统可观察性的方法,对吧?并试着去理解你的团队有能力利用他们所掌握的信息分析并解决问题。

丽莎:

正确的。我当然不是一个混乱工程专家,但是…

混沌工程是一种发现未知未知的方法。这就像,“哦,让我们关闭服务器,看看会发生什么。让我们删除一个数据库表,看看会发生什么。”

你不需要在生产环境中做,你可以在登台环境中做。但是在几年前的欧洲测试会议上,Sarah Wells做了一个关于他们在金融时报的工作的主题演讲,她称之为混沌工程,“在生产中工具辅助的探索性测试。”我认为这是非常恰当的,因为这些都是探索性测试和学习我们的生产系统的形式。

费德里科•:

为了做到这一点,做混沌工程或者致力于改善系统的可观察性,你认为我们应该发展或改进哪些技能?

丽莎:

有各种各样的技能。当然,当我们在编写代码,构建新功能时,我们会考虑可测试性和可操作性。测试代码的最佳方法是什么?我们如何确保获取所需的所有信息?作为测试人员,我们有很多新工具需要学习,对吧?

作为一名测试人员,我发现这个工具非常有趣,因为你可以进入并进行查询,它能帮助你做到这一点。这就像对数据进行SQL查询,但它有一个UI可以帮助您完成它。

一旦你开始看到这样的模式,“这里的反应时间很长。”你可以深入研究它,它有一个冒泡的特征,告诉你,“这是不同的数据片段,其中有异常。你可能想调查一下。所以这个模块或这个功能花了很长时间。”

它加速了对它的研究。还有其他的工具,LightStep是工具Kibana有一个新的APM来做跟踪和其他事情,所以它也支持可观察性。

但我看到的另一件事是,我不知道这些工具在幕后使用了什么,但我甚至想知道机器学习是否可以用于检测这类异常。不是为了帮你解决问题,因为人们谈论AIOPs和人工智能可以为你做所有这些。我不认为它能帮到你,但我认为它能帮你更快地调查因为它能把那些图案活生生地呈现出来。

费德里科•:

是的。您提到了寻找模式,所以我认为分析您的日志和指标的历史和所有东西可以帮助您轻松地识别模式,对吗?

丽莎:

是的。测试者们,我们很擅长发现有趣的模式。我们善于识别风险,团队中的其他人也是如此。

现在我开始能够,我能够参加更多的DevOps和持续交付类型会议(因为他们都在线),我觉得主要是他们正在讨论测试和质量和专业测试人员,但很明显,这是他们正在做的很多。我发现他们非常欢迎“来吧,来帮助我们”的测试者。

费德里科•:

是的。当我第一次读这本连续投递的书时,我也有同样的感觉。

丽莎:

完全正确。是的。

费德里科•:

我说过这是一本关于测试的书,对吧?但是,

丽莎:

没错。

所以我想鼓励测试人员,谈论DevOps听起来很可怕。这些工具可能很可怕,因为它们不是直观的,你不能直接使用它们,因为就像我说的,你必须了解你的数据,你的应用,你的客户在做什么。

但是测试人员,如果你已经知道你的领域,你已经知道你的客户,这对你来说会更容易。

费德里科•:

是的。不仅如此,因为从你提到的,我理解你需要理解系统背后的架构和技术,以便理解应该关注哪里或者应该寻找什么,对吧?

丽莎:

非常真实的。

费德里科•:

也许和团队里不同的人一起训练会很有用。

丽莎:

是啊,我就指望着这个呢。

费德里科•:

酷。典型的信息来源是什么?

丽莎:

这是一个很好的问题。我发现让工程师给我讲解他们的架构图真的很有帮助。我可能看不懂,但让他们帮我理清头绪很有意义。我喜欢这些视觉效果,它们真的帮助我学习。这是一个方面。

我想了解一下这些数据,收集的日志数据是什么?你怎么能把这些数据放在一起来表达一些有意义的东西,来研究一些东西呢?

有监控数据,有来自我们公司系统的数据,有来自我们客户系统和他们应用程序的数据。有很多不同的层次。实际上我做了一个很大的思维导图,上面是所有团队的成员,他们在做记录,在做监控,在做可观察性的工作,以及我们使用的所有工具。它最终变成了一个巨大的思维导图,我真的很惊讶,当然,这是一个很大的组织。

但不同领域的人们已经意识到他们需要数据,他们需要更好的数据,他们并不都在同一个地方或以相同的方式做这些事情。但这绝对是一个重点,我认为越来越多的公司会看到他们需要在这个领域做出巨大努力,因为这是一个机会。

之前我们没有,如果它可以减少我们的痛苦的原因的调查我们的问题或预防客户的问题,因为现在我们已经暗启动、发布功能切换,进步的糊涂事,我们不仅可以把一些生产和监控,但是使用可观察性工具来发现不寻常的模式。

所以它给了我们所有这些额外的工具来帮助我们更快地解决客户的问题。

费德里科•:

另一个浮现在脑海中的问题是:我们应该在开发过程中什么时候开始研究可观察性?

丽莎:

是的。我认为当我们计划新的特性,新的改变时,我们必须讨论我们需要如何处理我们的代码。当我们这样做的时候,我们想要捕捉什么?我认为这是所有块让你的代码的可测试的一部分,让你的代码和可操作性,我认为是与可观测性确保你捕捉所有您需要捕获的事件和捕获的所有数据,这样你就可以跟踪用户旅行通过应用程序。在你创造它们的时候要考虑到这一点。

即使你正在开发一个遗留系统,上周我和奥斯汀·帕克进行了一次非常有趣的谈话。他为LightStep工作,这是一个可观察的工具,他也为OpenTelemetry开源项目做出了很多贡献。

和他有免费的办公时间!你可以去报名和他呆在一起,问问题。上周我和他们谈过,他说过,如果你要打破一个庞然大物,不要等到你用乐器完成。

你可以继续用OpenTelemetry之类的工具来测试你的代码,开始捕捉所有这些信息这样你就能看到性能和延迟之类的东西然后当你把这个整体分割成一个API或服务时,现在你可以看到性能是怎样的,从整体到API,再回到整体。

我还没想过这个,它就像引导你,它帮助你知道你是否在用正确的方式拆分它,如果你在拆分的时候突然出现了性能问题你知道,“哦,你做错了。”你得重新考虑一下。

所以它也可以发挥作用,OpenTelemetry可以作为一个安全网来帮助指导大型遗留应用程序的重构。我觉得这很有意思。所以这有很多不同的应用。

随着我了解的越来越多,我也越来越多地了解到这种数据的用途。就像任何东西一样,就像当你没有任何自动化的单元测试你有一个遗留代码库,你会怎么做?你开始重构它,当你重构它并试图更好地设计它的时候,你使用单元测试来帮助你设计它并建立安全网。随着时间的推移,这张安全网会越来越大。我认为遥测技术也可以做到这一点,既可以用于监测,也可以用于观测。

费德里科•:

太好了。最后几个问题,我想我们可以继续讨论几个小时。

丽莎:

嗯,我觉得我只是在随口说说,我并没有真正注意到它的深度,但我看到了它的潜力和价值。

费德里科•:

这是惊人的。我的一个问题是,如果你有什么书可以推荐,它可能与可观察性或其他任何东西有关。

丽莎:

我推荐的书最多,我听到很多人推荐它。也许有点无聊,但是加速书由尼科尔·弗斯格伦博士、杰斯·汉博和吉恩·金撰写。

我发现很有价值,因为我自己的团队现在正试图使这种转变和移动,建立在可观测性,我们要做很多,我们试图与持续交付成功,所以知道我们可以测量,看看我们在进步我们的旅程。

因此,Accelerate这本书提供了那些与高效团队相关的指标。所以我们知道要衡量好的东西,这有助于我们建立我们所需要的文化和领导力。

所以这些都是很大的努力,特别是当你有一个遗留代码库,你需要有远见的领导,你需要很多的支持,模型和东西来帮助团队知道如何在这个旅程中前进。

,这些都是一块的,能够经常向客户提供有价值的微小的变化在一个可持续的速度和更低的风险,因为我们是做很小的改变,我们可以回复如果我们需要或如果我们需要关掉该功能飞行。

这是一个整体的一部分。所以我喜欢Accelerate,那里的信息可以提供一个基础,无论你在哪个商业领域,我认为它可以为你提供很多指导。

费德里科•:

你让我想起了几周前我看到的一个很棒的网络研讨会,有人在讨论BDD和持续交付

丽莎:

哦,这是一个有趣的网络研讨会!这些东西相互支持,对吧?就像我说的"都是过程的一部分"甚至我想有些人,我想也许艾比·班克斯正在做这个,探索:我们如何在发展基础设施的同时进行BDD ?支持持续交付的基础设施,支持可观察性和监视的基础设施。我们可以驱动那些正面临业务或正面临测试的操作。所有这些我们都知道,作为测试人员,我们可以以多种方式应用它们,帮助我们的团队。

费德里科•:

是的,在我们制作过程的不同阶段或不同部分。另一个问题:你有什么建议给我们的听众,让他们在未来的培训中去检查吗?

丽莎:

问得好,费德里科。我们有我们的面向整个团队的敏捷测试课程。

那是一个三天的现场课程,现在,珍妮特已经把它变成了虚拟便利。在Zoom或类似的平台上,课程现在可以在五天内完成。珍妮特打算每天做5天4个小时。有些人甚至把它延长到10天。

但珍妮特将在6月第一次为自己提供这个机会,这是一个很好的机会。如果你所在的时区适合你直接向珍妮特学习,可以问她问题,向她请教。

她绝对是最好的推动者。她问的最好的问题能真正让你思考,让你动手实践,和一个小组一起工作,她的课程只有10个人。这是一个非常非常小的群体。

我认为这是一个非常特殊的机会。但我们所有的教练都做得很棒。

如果你去agiletestingfellow.com,你可以看到所有提供的培训,这也可以作为一个私人课程在你的公司。所以我们真的很兴奋,我们已经能够适应远程。

费德里科•:

非常感谢你,丽莎。这是我的荣幸。我很喜欢,

丽莎:

谢谢你,费德里科•。是的,那太好了。我很荣幸来到这里。

费德里科•:

谢谢你!在见到你。再见,再见。

丽莎:

再见,非常感谢。


推荐给你

与Lisa Crispin的问答:BDD和持续交付
Quality Sense Podcast: Alon Girmonsky - Testing Microservices with UP9