Dapr云和边缘计算的微服务构件

联合创作 · 2023-09-28 05:08

Dapr(Distributed Application Runtime ,分布式应用运行时)是微软新推出的,一种可移植的、serverless 的、事件驱动的运行时,它使开发人员可以轻松构建弹性,无状态和有状态微服务,这些服务运行在云和边缘上,并包含多种语言和开发框架。

Dapr 整理了构建微服务应用为开放,独立的构建块的最佳实践,使用户能够使用自己选择的语言和框架来构建可移植的应用程序。每个构建块都是独立的,用户可以在应用中使用其中的一个或多个。

注意:Dapr 目前正处于 Alpha 阶段的社区开发中。在 1.0 稳定版本之前,不建议将 Dapr 用于生产工作负载。

Dapr 的功能和定位概括图:

  • 最底下基础设施是各种云平台(主流公有云都支持)或者边缘环境
  • 其上是 dapr 提供的分布式能力,dapr 称之为“building block”。
  • 这些 building block 的能力,以统一的 API(支持 HTTP 和 gRPC)对外提供服务
  • 应用可以用各种语言编写,然后通过 dapr 提供的 API 使用这些能力,dapr 也提供客户端类库来简化对 API 的调用,实现了多语言的支持。

Dapr 提供的具体分布式能力(building block)如下图所示:

具体内容可查看 Dapr 官方文档:https://github.com/dapr/docs/tree/master/concepts

目标

  • 使开发人员可以使用任何语言或框架来编写分布式应用程序
  • 通过提供最佳实践构建块来解决开发人员构建微服务应用程序时遇到的难题
  • 社区驱动,开放并与供应商无关
  • 获得新的贡献者
  • 通过开放的 API 提供一致性和可移植性
  • 跨云和边缘与平台无关
  • 拥抱可扩展性并提供可插入组件,而无需供应商锁定
  • 通过高性能和轻量级实现物联网和边缘场景
  • 可以从现有代码中逐步采用,而没有运行时依赖

特征

  • 具有可插入提供程序和至少一次语义的事件驱动的 Pub-Sub 系统
  • 使用可插入提供程序的输入和输出绑定
  • 具有可插拔数据存储的状态管理
  • 一致的服务到服务发现和调用
  • 选择加入状态模型:强大/最终一致性,首次写入/最后写入获胜
  • 跨平台虚拟演员
  • 机密管理可从安全密钥库中检索机密
  • 限速
  • 内置可观察性支持
  • 使用专用的 Operator和CRD 在 Kubernetes 上本地运行
  • 通过 HTTP 和 gRPC 支持所有编程语言
  • 来自 Azure、AWS、GCP 的 Multi-Cloud、开放式组件(绑定,发布-订阅,状态)
  • 作为过程或容器化在任何地方运行
  • 轻量级(58MB 二进制,4MB 物理内存)
  • 作为辅助工具运行-无需特殊的SDK或库
  • 专用的CLI-易于调试的开发人员友好体验
  • Java、.NET Core、Go、Javascript、Python、Rust 和 C ++ 的客户端
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报