产品观念:更好的捕鼠器_系统可观察性:如何再次使您的生产环境更好

产品观念:更好的捕鼠器

可观察性不仅仅是监视系统,还在于了解系统

监视生产环境至关重要。 性能问题,错误和异常一直在发生,我们必须知道发生了什么。 但是,我们如何看到何时以及为什么发生某些问题呢? 这就是“可观察性”概念出现的地方,以帮助我们深入了解系统并了解实际发生了什么。

在下面的文章中,我们将介绍为什么在公司内部提升“可观察性”很重要,以及它如何帮助您更好地控制其在生产中的行为。

观看并从系统内部学习

可观察性的概念是由美国匈牙利工程师Rudolf E. Kalman提出的,用于线性动力系统。 在控制理论中,它是一种度量,可以通过了解系统的外部输出来推断系统的内部状态。

为了简化它,我们可以将其与《国家地理》进行比较。 自然纪录片的共同之处是什么? 在此期间,我们观察了动物在其自然栖息地中的活动,因此我们可以学习有关它们的新知识。

这种学习是通过外部输出实现的,在这种情况下,是电影摄制组及其工具随时监视和记录文件。 在公司内部,我们是必须设置工具以记录我们的生产环境并获取我们所需的信息以进行改善的人。

从头开始建立可观察性

Stripe的软件工程师兼Observability团队负责人Cory Watson在最近的Monitorama会议上谈到了Observability。 他谈到了上班的第一天,他问了一个对某些人来说可能是基本的问题:“我如何知道在发货后它是否有效?”。

在得到“很好,只需发布​​网站”的回答(非常恐怖)之后,他了解到了将Observability概念引入公司的时候了。

尽管大多数公司都具有一定程度的可观察性,但是有时没有足够的信息来了解正在发生的事情。 在大多数情况下,直到为时已晚并且用户受到影响,我们才知道实际需要的数据。

所以,我们能做些什么? 首选解决方案是创建仪表板或使用工具来识别我们过去已经遇到的模式或问题,希望它们会再次发生,而这次我们将抓住它们。 相反,重点应该放在主动的方法上,这样可以及时发现未知问题并了解如何处理这些问题。

这意味着我们必须改变思维方式。 当然,我们需要处理当前的问题,但是尚未发生的事情呢? 我们是否认为用户可能无法完成某笔交易? 系统将能够处理用户负载吗? 那我们未曾想到的一切呢?

我们不必等待这些情况,然后尝试弄清楚如何监视和解决它们,而我们的思路应该是围绕如何在它们发生时立即抓住它们。

这是Cory谈到的关键要素之一:“这与特定的技术无关,而与人有关”。 这意味着我们使用一种工具还是另一种工具实际上并不重要,我们必须建立一种关心这些问题的工程文化。

我们该怎么做? Cory引入了一个负反馈环路,在该环路中,将输出与所需值进行比较并进行相应的更改:

负反馈回路。资料来源:Cory Watson

负反馈回路。 资料来源:Cory Watson

用科里的话来说:“如果内部状态变坏,工作就会变坏。 我们需要添加传感器”。 主要目标是通过提供将正确的信号发送回工程师并向他们展示需要更改的内容所需的工具,使此图正常工作。 这使我们进入了此过程中最困难的部分:

让团队加入

众所周知,很难养成习惯或改变我们做某些事情的方式,当您试图说服他人也这样做时,就更困难了。 实施新文化的过程是一项艰巨的任务,应谨慎处理。

Cory的方法是将其视为一种文化变革,扩大了我们的思维范围,并提供了一种方法来帮助他人擅长于自己的工作。 为了做到这一点,我们需要打下基础,并了解我们要实现的目标。

将其分解为三个主要问题会更容易:

  • 我要改善什么?
  • 我该如何测量?
  • 这是我要解决的最佳解决方案吗?

现在是时候让团队参与了。 我们需要去给同事一些反馈,并询问他们如何认为我们可以改善我们选择关注的领域。

Cory的建议是,如果我们计划进行更改,则应在组织中找到超级用户,并要求他们参与思考过程以及测试过程。 通过赋予他们权力,他们将赋予其他团队成员权力,并帮助建立公司的工程文化。

第一步

现在我们知道了可观察性是什么,并且了解了它如何为我们提供帮助,是时候开始做生意了。 尽管Cory提到的不是技术,但我们不能忽略满足所有测量需求的各种工具。

为了使Observability更好,我们针对一些不同的问题收集了一些最受欢迎的解决方案,您可以主动跟踪这些问题:

记录中

生产环境的关键数据来源之一是日志文件,日志文件每天通常以GB为单位增长。 这意味着每次我们想知道系统中发生的事情时,我们都必须阅读大量信息。

从好的方面来说,有许多选择可以帮助您获得更好的可观察性,并看到裸日志文件的淡淡线条。 如果您刚刚开始使用日志管理工具,那么以下是您应该了解的7大工具

如果您已经熟悉这些工具,并且想为您找到合适的工具,则可以查看我们对主导该领域的知名公司的比较。 我们检查了Splunk vs ELK (以及ELK的 托管选项 ),并在Splunk,Logstash和Sumo Logic之间进行了更大的日志管理。

性能监控

应用程序性能管理工具(APM)帮助您确定执行代码中不同区域并完成事务所需的时间。

大多数企业APM上出现的两个主要工具可能是AppDynamics和Dynatrace ,而New Relic被视为开发人员的更现代选择。

生产调试

当开发中发生不良情况时,IDE的调试器将在那里帮助您了解问题所在。 当代码投入生产时,快进几步-停止训练轮,留下您一个堆栈跟踪信息,如果幸运的话,可能还会有一些日志事件作为提示。

使用Takipi ,即使在多台服务器之间 ,您也可以自动重现每个生产错误并显示导致该错误的代码和变量。

最后的想法

毫无疑问,更好的监视和可观察性对于了解生产中的情况并使其对我们的用户更好地工作至关重要。 但是……改变并不容易。

最艰难的步骤是开始,如果您打算在公司中建立可观察性的文化,最好先从小步骤开始。 思考您正在寻找的价值,衡量有效性并寻求反馈。

您还有其他技巧来提高可观察性吗? 我们希望在下面的评论中听到有关它们的信息。

翻译自: https://www.javacodegeeks.com/2016/08/system-observability-make-production-environment-great.html

产品观念:更好的捕鼠器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值