在计划构建分布式应用程序时,开发人员通常会发现超越应用程序的业务逻辑。例如,如何确保多个微服务彼此通信,与外部系统集成,如果微服务是有状态,如何以弹性方式保存其状态,允许它们从潜在故障中恢复。

当然,有多种模式解决这些问题以及可帮助您实现它们的开源或云提供商的特定技术。内部服务通信方法的示例包括通过HTTP或通过HTTP的服务到服务调用grpc.发布/订阅使用诸如Kafka或RabbitMQ等消息经纪人。状态商店是保持应用解耦的应用状态的好方法,常见的内容包括内存存储,如redis和mongodb等数据库。添加到秘密商店中的确保连接字符串和证书,例如Hashicorp拱顶和云提供商服务的细节,提供Azure,AWS和GCP的类似解决方案,并且很清楚甚至在您到达之前要做很多事情188bet亚洲体育您尝试构建的特定逻辑。

On top of having to choose, ramp up, and integrate various SDKs into the code, you also need to keep in mind that your application may need to be deployed to different environments (e.g., local dev box, on-prem, multi-cloud), so you may need to replace some of these solutions on deployment, depending on the hosting infrastructure.

最后,也可以说是最重要的,您和您的开发团队需要安全地构建这些分布式应用程序(例如,加密通信,实现访问控制),并对它们进行检测,以便它们可以被观察到。在这里,特定的云基础设施细节增加了复杂性。

什么是dapr?

分布式应用程序运行时(DAPR)开源项目旨在帮助开发人员解决构建分布式应用程序的挑战。DAPR定义了一组映射到特定功能的构建块,例如服务到服务方法调用,状态管理,秘密存储和PUB /子消息传递。这些构建块提供了API,其抽象了特定的实现(称为组件)并保存您需要将SDK和/或库添加到代码中,甚至知道实现功能的技术的细节。DAPR运行时使用sidecar模式并作为一个单独的过程运行,因此它是语言不可知论并允许您的应用程序通过HTTP或GRPC进行所有API调用(尽管有特定语言SDKS可用)。

与之释放DAPR v1.0,DAPR现在已制作准备,几个大型和小型公司已经使用它来构建业务关键的应用程序。你可以尝试自己的dapr入门指南

在分布式应用程序中使用DAPR的一些好处包括:

  • 简单代码:您不再需要将各种SDK集成或直接以自定义方式与组件进行交互(创建客户端,管理连接等),如果使用相同的代码,您也需要考虑不同实现的情况部署在其他地方。
  • 语言不可知论者:DAPR API使用HTTP / GRPC,因此以任何语言编写的应用程序可以使用它没有依赖性。DAPR为.NET,Java,Go,Python,JavaScript提供SDK,如果您希望使用它们,可以提供更多信息。
  • 高便携性:在底层托管技术上没有依赖于代码。切换云提供商或移动到可能使用不同状态商店的环境时,秘密存储,消息代理或绑定,您不需要更改代码,只有配置DAPR的组件文件。
  • 安全:DAPR通过旁边的侧面通过持久通信MTLS身份验证包括名称空间和范围,以允许访问控制秘密,服务调用和PUB /子订阅主题。
  • 可观察性:DAPR Sidecar可以配置为发送跟踪数据,因此只需使用DAPR,您已经在授权您的应用程序。

DAPR分布式应用程序运行时的屏幕截图

DAPR可观察性如何工作?

许多DAPR用户发现它提供的可观察性功能是真正的游戏更换器。使用DAPR API为所有服务到服务通话和PUB /子消息传递,您可以获得自动应用程序感知仪器。DAPR Sidecar根据配置文件处理跟踪,因此仪器不需要任何额外的代码。因为DAPR符合标准W3C跟踪上下文OpenTeLemetry.并使用Zipkin协议发出跟踪,它可以与支持它的任何工具集成。或者,您可以使用OpenTeLeMetry Collector将其与任何其他监视工具集成。

有它W3C跟踪上下文兼容性,DAPR在跟踪上下文管理中为您提供灵活性;您可以让DAPR自动生成并传播跟踪上下文或自己生成或传播。这允许您使用在应用程序外部生成的跟踪上下文或在其他自定义流中传播它。

配置DAPR进行跟踪

DAPR.配置使用设置跟踪采样率的yaml配置文件定义(DAPR使用概率抽样)追踪集合的端点URL:

apiersion:dapr.io/v1alpha1种类:配置元数据:name:myconfig命名空间:默认规格:跟踪:samplingrate:“1”zipkin:endpointaddress:“http:// ...”

部署Dapr应用程序时,它将使用上述配置。例如,在Kubernetes部署中,ddr注释dapr.io/config定义要与应用程序关联的配置(了解更多信息将DAPR应用程序部署到Kubernetes)。

使用dapr与新的遗物单个

由于新的遗物一个支持Zipkin,您可以将其作为终端点用于在DAPR应用程序中进行跟踪,因此无需在代码中添加任何内容。这使得使用新的遗物遗传是追踪的后端,并充分利用跟踪可视化,见解和更多。

您需要做的就是在配置文件中设置端点以指向新的遗物跟踪API

apiersion:dapr.io/v1alpha1种类:配置元数据:名称:appconfig命名空间:默认规格:跟踪:samplingrate:“1”zipkin:endpointaddress:“https://trace-api.newrelic.com/trace/v1?api-key = &Data-Format = Zipkin&Data-Format-Version = 2“

请注意,您需要在此处包含您的API键。此外,URL还包括一个参数,该参数将数据格式定义为ZIPKIN(因为这是协议DAPR将使用)。

分布式跟踪截图

下一步

注册新的遗物的免费层和探索如何配置它以使用DAPR

ori zohar是Microsoft Azure孵化团队的高级计划经理,目前正在研究分布式应用程序运行时,DAPR。ORI在各种角色建立嵌入式和云解决方案的多年经验,包括工程,传福音和产品营销。188bet亚洲体育查看帖子

对新遗物博客的写作有兴趣吗?188博彩体育网址送我们一个球场!!