成功/ Lightbend

有状态无服务器平台即服务Akka serverless背后的Lightbend公司是如何使用Grafana Cloud来监控其基础设施的

当Capital One、PayPal和Verizon等顶级公司需要为其苛刻的、全球分布的云原生应用程序环境和流数据管道提供平台时,他们就转向了这个平台Akka,这是运行在Kubernetes上的云原生应用程序最流行的Actor模型实现。

Akka背后的公司是Lightbend是云原生应用程序和架构领域的领导者。十多年来,Lightbend一直在提供可扩展的高性能微服务框架和流引擎,用于构建以数据为中心的系统,这些系统经过优化,可以在云原生基础设施上运行。

2021年6月,Lightbend宣布进行公开测试Akka Serverless(一般可用性,2021年11月),一种新的云原生开发平台即服务。可观察性不仅对Akka无服务器的成功至关重要,而且对Lightbend本身也至关重要。毕竟,该公司的首席站点可靠性工程师费尔南多·科斯塔(Fernando Costa)说,“如果你正在为一家公司提供数据服务或托管,然后发生了事故,你可能会失去客户。”正因如此,该公司依赖于Grafana云来监控其Kubernetes集群。

“由于我们拥有的工具,我们还没有因为Akka无服务器而停机。”

- Fernando Costa, Lightbend公司首席站点可靠性工程师


使用Akka无服务器,Lightbend将“状态”和函数放在一起,这意味着函数需要的数据在需要时传递给函数。通过这种独特的方法,Akka Serverless为开发人员带来了api优先、无数据库编程模型和无服务器运行时。“如果没有可观察性,我们就无法运行Akka无服务器。这是一切,”科斯塔说。“我们运行这些功能时并不知道它们在做什么,也不知道它们的逻辑,但我们需要让它们继续运行,并有一个好的方法来收集它们的指标。可观察性让我们从外部更好地理解,因为我们无法检查函数。”

科斯塔解释说,通过自动化,Lightbend还可以同时掌握客户的所有功能,而无需任何人随时查看。“我们现在有客户使用这个系统,他们可以在几秒钟内从两个豆荚增加到100个豆荚。”但如果不是《Grafana Cloud》,光弯可能不会知道这一点。他说:“如果没有这样的工具,我们就无法对任何可能的异常或故障进行检测和警报。”“你不可能同时关注所有人。”

使用Grafana进行监控可以帮助Lightbend获得更快的响应时间,以满足sla和slo。他解释说:“我们可以看看Akka无服务器是否在工作,并证明它在工作,我们的服务器正在及时响应。”

可观察性帮助Lightbend在客户体验中保持领先地位。科斯塔说:“你不希望发生事故而自己不知道——或者更糟的是,让客户告诉你。”“监控的价值在于,甚至在客户注意到之前,或者在某些情况下,在任何事情发生之前,就知道哪里出了问题。”

从零开始

Costa于2020年加入Lightbend,直到那时,Akka Serverless还没有集中的可观测性工具。他以前做过系统管理员,对Grafana很熟悉,并且已经使用它大约四年了。

当科斯塔第一次尝试Grafana时,他对它在盒子外使用的简单程度印象深刻。他说:“刚开始绘制图形的感觉真好。”在可观察性方面,他补充说,“这是预测或预防问题的完美工具。”

时光飞逝,科斯塔开始思考如何满足光弯的需求。他很快意识到Grafana是一个完美的匹配,尤其是因为他的同事都是开源爱好者。“而且,我们编写的所有库都可以使用Prometheus轻松地公开度量,”他说。“这是一个双赢的局面。”Costa也喜欢Grafana提供的灵活性。“更好的是,我可以使用同一个工具处理多个数据源。”

在最终选择Grafana之前,Costa测试了另一个有竞争力的解决方案进行比较。他认为它可以用于基本的度量和事件监控,但不适用于Lightbend的高级需求。其中包括能够操作数据并确保其用户部署正常运行,同时保持项目严格的IaaC标准。他说:“如果你需要自己发布指标,那么Grafana是一个更好的选择。”

一旦Costa将Grafana作为他的堆栈选择,他就面临着另一个决定:如何以一种优化团队工作量和Grafana能力以满足Lightbend业务需求的方式来最好地托管、管理和部署它。

“我们需要专注于我们的产品,而不是其他东西。而Grafana Cloud让我们可以安心地去做这些事情。”

- Fernando Costa, Lightbend公司首席站点可靠性工程师

尽管Costa之前拥有自托管Cortex的经验,并且拥有能够让Lightbend做到这一点的脚本,但这种类型的设置存在太多缺点。科斯塔解释说:“这就像全职员工的工作只是维护,而且有安全隐患。”“这至少需要另一个集群,我们必须将数据发送到其他地方,并确保数据被正确存储。我还以为我们会有皮质和灭霸,所以有很多事情要处理。”

Costa还向他的经理展示了与Grafana Cloud的成本相比,覆盖所有这些成本的成本是多少。由于所有这些原因,决定注册Grafana Cloud——并将可伸缩性、可用性、备份等问题留给Grafana Labs——是一个很容易的决定。bob电竞频道“每个人都很开心,”他说。“对我们来说,Grafana将是最简单的续约。”

多亏了Grafana Cloud, Costa能够专注于Akka无服务器的性能,而不是运行一个可观察的基础设施堆栈。“我们需要专注于我们的产品,而不是其他东西,”他说。“而Grafana Cloud让我们可以安心地做到这一点。”

数据流设计

在确定了最适合Lightbend的工具和部署方法后,Costa开始确保所有的架构都是正确的。

Lightbend在Kubernetes中管理和编排容器,并在同一个集群上运行Prometheus。他们有两个生产中的Kubernetes集群,有54个节点和343个客户(并且还在增长)。在Grafana云度量在美国,该公司拥有超过42万个Prometheus和Graphite的有效系列。

光弯主要从普罗米修斯提取数据,但也从谷歌Stackdriver。科斯塔说:“我不只是提取数据并将其导出到普罗米修斯,而是直接从谷歌读取数据。”该公司目前也有Postgres和Graphite数据源,他们依赖Grafana Cloud Metrics为Prometheus和Graphite提供数据。

Costa创建了Lightbend的第一个Grafana仪表板,他正在构建节点出口商、API服务器、Kubernetes API和Istio等类型。但这个工具变得如此受欢迎,以至于现在甚至不在他的团队中的用户都在创建自己的仪表板,以解决科斯塔的团队在第一次建立Grafana系统时甚至没有想到的问题。门户中有超过25个成员。“我们有很多不同的人在创造仪表盘,”他说。“有些人甚至在运行商业智能。”

如果公司的任何团队正在运行Kubernetes,并且想要在Grafana中添加分析指标,他们只需要正确地标记舱和部署。“每天都有新事物,”科斯塔说。“使用其他工具是不可能做到这一点的——或者需要我们编写代码并修改代码才能做到这一点。考虑到Grafana Cloud Metrics允许我们开箱即用,这两种方法都不值得。”

Costa每天都会发送一份由grafana生成的报告,他说Lightbend的首席执行官Jonas Bonér甚至已经注意到了图表中的数据。“有一次他问我,为什么一个数字今天是20毫秒,明天是两秒。”科斯塔在查看了更详细的仪表盘后,不到两分钟就找到了答案。

对Grafana的投资不仅帮助了整个公司,还改变了Costa和他的团队的运作方式。“没有Grafana,我的团队的生活将是一场噩梦,”他说。“不是每个人都能访问Kubernetes和我们的其他生产环境,所以任何需要一个指标的人都会来找我们。我脑子里没有计算或合计指标的指令,所以需要花很多时间才能得到答案。”相反,科斯塔和他的团队可以专注于观察趋势,并在任何潜在的问题之前保持领先。

关键指示板

Costa和他的团队一直在Grafana中工作,以跟踪Akka上发生的事情,他们的一些仪表板是常规的。以下是Lightbend的一些关键仪表板示例:

Akka无服务器通用指标

Costa最喜欢的仪表板之一用于监视高级指标。仪表板上的面板包括总项目、活动项目、在Akka无服务器上运行的服务、gRPC请求、命令、趋势、警报等等。这是整个公司每天共享的数据。“这几乎是过去24小时内的所有数据,”他解释说,“没有我们不能展示的数据。”

Costa回忆起一件事,当时Grafana仪表盘和警报帮助Lightbend避免了可能是一个巨大的挑战。谷歌的一次重大宕机影响了几家公司,但在谷歌宣布这一事件之前,Costa说他的团队注意到新节点没有启动。“即使发生了这次重大故障,我们也能够保持系统正常运行,因为我们看到所有的迹象都表明有问题,我们开始测试。他们两天内无法启动节点,但由于我们的Grafana仪表板触发警报,告诉我们将会出现问题,我们已经启动了额外的节点,并且能够在没有对客户产生任何影响的情况下度过谷歌的问题。”

操作

下面的仪表盘是由Lightbend的Akka无服务器和运营团队使用的,它是一个真正的时间节省。“基本上,如果我有任何问题,我可以来这里看看发生了什么,而不必访问Kubernetes或登录系统,”科斯塔说。“我们可以看到所有的生产部署,所有的容器,所有正在运行的东西。我还可以通过名称空间进行选择,查看请求是如何运行的,或者从侧车中检查数据。”

Costa估计,由于不需要手动收集所有信息,每次出现问题时,使用Grafana仪表板可以为支持团队成员节省至少20到30分钟的时间——考虑到他们每周可能有2到3个问题,随着时间的推移,团队成员的时间也会增加。他表示:“这非常省时,最终也很划算。”

不过,这不仅仅是节省时间和金钱。“这也是安全问题,”科斯塔说。“如果我需要,我可以访问生产,但我甚至不再需要每天访问Kubernetes。如果我需要检查什么东西,我只要来到这个仪表盘。”

除了Costa和他的团队,Lightbend的技术支持团队还利用了Grafana提供的安全单窗格。“他们很少能访问我们的生产环境,所以他们每天都会使用这个仪表板来查看发生了什么,或者如果容器没有运行CPU——不管是什么问题——作为支持Akka无服务器开发人员的一种方式。”

综合监测

Lightbend也使用综合监测,这是Grafana Cloud的一个关键特性。下面的Akka无服务器度量仪表板包括一些外部端点的时间,这是Costa用合成数据计算出来的。他计划做更多。他解释说:“我们现在正在设计如何使用合成来监控来自不同地理位置的每个部署服务的响应时间和可用性——就像一个基本的验证。”光弯将把它作为SLO报告的一部分。

这个合成仪表板监视Akka无服务器的API可用性。它的API是系统的关键部分之一,因为它是客户与系统交互和管理服务的入口点。

开源和支持

非开源的可观察性工具不允许对软件运行的完全可见性,因此Grafana的好处之一是客户可以自己找到(或创建)问题的解决方案。bob彩票中奖计划科斯塔说:“我通常打开GitHub,试图找到一些东西,或者自己写代码来改变一些东西。”

当Lightbend遇到管道破裂时,他能够在GitHub中引用Grafana源代码,并在测试中运行Docker容器以快速确认问题。有了这些信息,Grafana团队的支持就加快了。“他们的反应很快,”他说,“我得到了所有我需要的答案。”

期待

Lightbend已经为Akka无服务器引入了一个性能测试,并且已经使用了Grafana作为测试的一部分。“我们正在运行旧版本的性能,将数据推送到Grafana,应用升级,再次运行并比较两者,并在它们发生巨大变化时寻找警报,”Costa说。“一旦我们有足够的数据来决定正确的阈值,就应该发出警报。”

他希望在未来,光弯可以开始使用洛基(和Grafana Cloud Logs),这样他就可以无缝地关联指标和日志。此时,Lightbend的日志位于谷歌云平台中,因此Costa构建了带有链接的仪表板,这些链接可以返回谷歌Stackdriver,从而选择适当的名称空间。“但这不是一回事,”他说。“我是一个非常视觉化的人,所以,如果我能将事物可视化并将其联系起来,这对我有很大帮助,而不是跳过链接。”

当科斯塔想到他在Lightbend依赖Grafana的方式时,他对多年来技术进步改变监测和可观测性的方式感到惊讶。“十年前,我管理着大约200台服务器。它们有名字——就像宠物一样。现在完全不同了。就像我们养了一大群牛一样。”“通过可观察性和自动化,我们可以管理数千个服务器和数千个应用程序,这令人惊讶。有很多工具可以帮助我们,Grafana就是其中之一。”

行业
软件与技术

公司规模
100名员工

总部
旧金山,加州

bob手机app官网产品/项目使用

79bob官方下载

普罗米修斯

皮质

石墨

Grafana云

420000 +

Grafana Cloud Metrics的活动系列