Dapr:分布式应用的运行时 文章目录Dapr分布式应用的运行时1、这项目是干嘛的2、为什么要用它3、持久化执行4、构建 AI Agent5、默认安全6、分布式应用 API7、随处运行8、生产验证Dapr分布式应用的运行时Dapr 在 GitHub 上已获得 25,902 Star。这是一个开源运行时为分布式应用、工作流和 AI Agent 提供基础设施层。它以 sidecar 形式运行通过 HTTP 和 gRPC 暴露能力支持 .NET、Java、Python、Go、JavaScript/TypeScript 和 Rust。1、这项目是干嘛的Dapr 提供一组 API覆盖工作流、服务调用、状态管理、发布订阅、Actor、LLM 对话、绑定、密钥、配置、分布式锁、加密和任务调度。开发者不需要直接处理线程、分区、重试等底层逻辑。这些能力通过 sidecar 提供应用代码保持不变可以在 Kubernetes、云主机、边缘设备或本地机器上运行。2、为什么要用它现代应用包含长周期工作流、AI Agent、事件驱动管道、多 Agent 系统和人机协作流程必须在生产环境中承受故障、保持状态并安全通信。自己实现这些能力需要处理持久化、重试、网络分区、证书管理、访问控制等细节。Dapr 把这些模式打包成一致的编程模型平台团队可用它制定治理规范应用团队则获得跨环境一致的 API。3、持久化执行Dapr Workflows 提供持久化执行。进度会被自动保存遇到进程崩溃、Pod 重启、节点故障、滚动更新或基础设施中断时执行会从最后一个完成的步骤恢复。开发者用普通代码编写工作流Dapr 负责状态持久化和故障恢复。场景包括 AI Agent、客户入职、订单处理、人工审批、文档处理等。4、构建 AI AgentAI Agent 要在生产环境运行需要状态、编排、恢复、安全通信和治理能力。Dapr 提供运行 Agent 所需的原语并与现有 AI 框架和模型协同工作。能力包括可承受崩溃和重启的持久化 Agent 执行基于 Workflows 的长周期多步骤任务多 Agent 编排和 Agent 间通信跨交互的状态持久化通过 Conversation API 调用 LLM支持提示缓存和工具调用人机协作审批和事件驱动协调故障后自动恢复5、默认安全每个 Dapr 应用都会获得可验证的身份。安全机制包括服务间流量使用 mTLS工作负载身份和认证最小权限授权策略从外部密钥仓库获取密钥自动证书签发和轮换零信任通信可以通过配置定义访问策略控制哪些应用、Agent 和服务可以相互通信无需自行编写安全基础设施。6、分布式应用 APIDapr 的所有 API 都通过 HTTP 和 gRPC 暴露并提供 Java、.NET、Go、JavaScript、Python、Rust、C 和 PHP 的 SDK。主要 API 包括Workflows以代码形式编写长周期工作流和 Agent 流程Service Invocation服务间调用内置 mTLS、重试和可观测性State Management在多种存储后端上持久化和查询状态Pub/Sub基于消息代理构建事件驱动系统Actors构建有状态的 Actor 应用Conversation通过统一 API 调用 LLMBindings从外部系统触发代码或向其发送事件Secrets从外部密钥仓库获取密钥Configuration读取和订阅配置Distributed Lock协调对共享资源的访问Cryptography在不暴露密钥的情况下加密解密数据Jobs调度现在或未来执行的任务7、随处运行Dapr 以 sidecar 形式运行二进制约 58MB内存占用约 4MB。它支持以下环境KubernetesAWS、Azure、Google Cloud虚拟机和裸金属边缘和 IoT 环境气隙网络部署由于能力通过 sidecar 暴露应用不需要修改代码即可在不同平台间迁移。可以逐个 API 增量采用不存在运行时锁定。8、生产验证Dapr 是 CNCF 毕业项目被多个组织用于构建关键业务应用。团队选择 Dapr 来自动从故障中恢复、构建 AI 系统、保护服务间通信、简化分布式架构并避免基础设施锁定。Dapr 是 CNCF 毕业项目被多个组织用于构建关键业务应用。团队选择 Dapr 来自动从故障中恢复、构建 AI 系统、保护服务间通信、简化分布式架构并避免基础设施锁定。