我们正在升级FutureStack的注册,仅到4月30日。条款和条件适用。 现在注册

监控AWS Lambda中的无服务器应用程序需要什么

7分钟阅读

对于开发人员来说,构建软件并将其部署到生产环境中从来没有像现在这样容易。在云平台提供商、现代开发框架、容器和编配技术(如Docker和Kubernetes)以及自动伸缩数据库等管理服务的出现的支持下,经验丰富的软件团队现在可以在数小时或数天内,而不是几个月的时间内,大规模地构建生产系统。

无服务器功能的兴起

主要云计算提供商提供的一些最先进的功能现在完全是“无服务器”的,这意味着它们几乎不需要管理开销。这些能力不仅适用于初创公司;大型企业也正在迅速采用这些服务作为其组织内的标准。这些无服务器的工具包括数据库亚马逊DynamoDB对象存储解决方案亚博直播平台谷歌云存储到托管容器托管服务,如Amazon弹性容器服务(ECS)以及功能即服务产品,例如AWSλ.这些和其他无服务器的工具摘要避免了供应和支持基础设施的挑战;这成为云提供商的责任,它只为软件开发团队留下了应用架构和逻辑来处理。这些无服务器产品也按需缩放,您只需支付您使用的内容。

无服务器对创新周期和软件工程团队生产力的影响是显而易见的。构建新应用程序所涉及的工作和摩擦的减少使企业能够更快地创新,并更快地对不断变化的需求作出反应。快速迭代允许用户体验根据客户反馈而发展;不可避免的错误可以迅速修正。独立开发团队可以扩展现有的系统组件,而不需要集中控制。而动态扩展意味着高需求(读:高价值)系统的某些部分可以灵活地满足不断增长的需求,而不需要进行大型的基础设施或架构更改。

从微服务到纳米服务的演变

这种基础设施的灵活性导致了从微服务到本质服务的演变nanoservice架构。虽然组织可能使用内部或面向公共的api维护各种微服务,但每个微服务本身可能由许多其他服务组件组成,所有这些组件都可以独立修改和扩展。考虑这个简单但常见的web API示例:一个HTTP请求被发送到亚马逊API网关,它调用一个同步Lambda函数,该函数执行一些处理并将数据放入DynamoDB表中,在操作完成后返回成功或正确的错误代码。

从那里,您可以发展这个体系结构来做更复杂的事情。

与上面的web请求类似,HTTP调用被路由到执行某些处理的函数,但这一次它发布到亚马逊运动流。另一个函数则负责从该流中消费数据,进行一些数据聚合工作,并将其存储在亚马逊S3桶供以后使用。

这样,即使对系统进行很小的更改,也可以很容易地引入更多的复杂性并交付更多的价值。这些系统组件可以组合成许多不同的工作流。开发团队可以通过在系统上构建他们自己的扩展来减少彼此之间的依赖关系。他们可以自由选择他们需要的工具、语言和服务来满足他们的目标,只修改组成更大的应用程序所需的组件,而不是更改大块的代码。

构建软件从来没有这么容易过,但是监控软件从来没有这么难过

然而,这种方法具有成本,并且成本是复杂性:多种语言,许多服务和通过系统的无数路径。因此,虽然它从未更容易构建软件,但了解您的系统并监控它们从未如此困难。使用此方法的架构的好处是清晰的,但用于构建,监视和故障排除这些复合应用程序的工具尚未保持。

现代软件开发人员需要对他们的无服务器应用程序具有完全的可观察性,具有他们对遗留的单片应用程序所期望的同样的深度和广度。这种可观测性的关键数据包括:

  1. 了解系统运行状况的指标:聚合度量对于理解最高层正在发生的事情至关重要。有很多关键指标的例子,但是4金的信号谷歌都是书是一个很好的开始。理解每个级别的指标有助于识别问题,这一点很关键,但问题的细节也很重要。
  2. 端到端路径的跟踪:当您发现一个问题时,无论是通过警报、支持票据还是通过您的观察,您都需要了解通过分布式系统的端到端路径。查看这些跟踪可以帮助您更好地理解数据流,并识别出有问题的组件,即使它们位于很远的下游。
  3. 根本原因分析的详细数据:找到源后,您需要找到原因。您的指标和跟踪的上下文中的丰富,代码级,HTTP请求详细信息和错误使您可以确定错误。您不必在多个函数和服务中下载一堆日志,聚合它们,并开始运行自定义查询以获取答案。
  4. 上下文的关系:无服务器、高度迭代的系统会经历大量的变化,而这些变化通常是以计划外的方式发生的。可能有意外或未知的上游或下游系统导致问题。当出现问题时,您需要查看系统的完整上下文。

开发人员在构建和操作他们的软件时需要将所有这些数据放在一个地方——在一个平台上使用一个工具。他们不仅需要孤立地查看无服务器应用程序,还需要了解这些应用程序如何与遗留系统交互。监控数据需要动态伸缩,就像它们的应用程序一样——即使是在它们最重要的日子。

新的Relic AWS Lambda监控-现在是内测版

这就是为什么我们很自豪地宣布我们的AWS Lambda监视解决方案的私有测试版。与New Relic配对不断增长的集成列表提供对托管服务数据的洞察(请参阅此处的文档),我们为我们的客户提供了他们的无服务器应用程序的更完整的图片。我们的解决方案旨在让您对Lambda函数进行监控、可视化、故障排除和警报,所有这些都在您正在使用的New Relic平台中。您可以聚合地监视Lambda性能,然后深入到单个Lambda调用,以查看跟踪、错误、查看端到端跟踪和其他故障排除信息。

node . jsPython,我们的解决方案包括专门设计用于在Lambda环境中运行的自动框架工具,以及构建的用于收集数据并将其发送到new Relic的新数据收集工具,其开销可以忽略不计。特定于lambda的数据被插装,包括调用源、错误和回溯,以及调用的服务。数据被写入亚马逊CloudWatch日志,在那里它被提取通过一个日志流并发送到New Relic平台。

收集之后,我们添加重要的元数据和标记,以便在以后的查询中使用,并定义与系统中其他实体的关系。有了New Relic平台中的数据,开发人员就可以使用我们强大的功能:警报、应用智能功能(如异常检测)、精心设计的UI体验、自定义仪表板、API自动化和临时分析。

早期访问客户已经在使用我们的解决方案来监控他们的产品Lambda系统。一如既往,我们的产品开发过程包括在将新解决方案扩展到整个客户群之前,先与选定的客户确认新解决方案。亚博直播平台如果你想尽早获得访问权并提供反馈,注册在这里.不幸的是,并不是每个注册的人都会被邀请参加内测,但是每个人都会收到更新,因为我们达到了关键的里程碑,在一般可用的道路上。我们欢迎您的反馈-事实上,我们的兴旺!