作者 | Dapr 社区译者 | 敖小剑来源|阿里巴巴云原生公众年夜众号
Dapr 是 2019 年 10 月开源的分布式运行时。早在 Dapr 开源初期,阿里云就开始参与 Dapr 社区培植和代码开拓,目前已有两位 Dapr 成员,是 Dapr 项目中除微软之外代码贡献最多的公司。作为 Dapr 项目的早期采取者,阿里在 Dapr v1.0 发布之前就在内部小规模的试点。本文由 Dapr 社区成员敖小剑翻译。
本日,我们很高兴地发布分布式运用运行时(Distributed APplication Runtime / Dapr)的 v1.0 版本,它已经达到了生产就绪所需的稳定性和企业准备。Dapr 是一个开源、可移植、事宜驱动的运行时,它使开拓职员能够轻松地构建运行在云平台和边缘的弹性而微做事化的运用程序,无论是无状态还是有状态。Dapr 让开发职员能够专注于编写业务逻辑,而不是办理分布式系统的寻衅,从而显著提高生产力并减少开拓韶光。Dapr 降落了基于微做事架构构建当代云原生运用的准入门槛,而通过这次发布的 v1.0 版本,Dapr 运用可以支配莅临盆场景中的自托管根本举动步伐或 Kubernetes 集群。

自 2019 年 10 月首次发布 以来,Dapr 已有 14 个版本,每个版本都建立在大量的社区和用户反馈根本上,以推动改进、稳定性和性能。这些版本立足于构建真实的运用,反响了当今开拓者在开拓云原生运用时的实际情形;无论是在云平台、边缘还是私有根本举动步伐上,社区都在加紧贡献与 Azure、AWS、阿里巴巴和 Google cloud 集成的 Dapr 组件。
办理现实天下场景中的分布式运用寻衅从成立之初开始,Dapr 开源项目就面向那些正在构建新的现实天下绿色地带(greenfield)运用的开拓者,以及那些在云原生架构中迁移和利用现有运用和组件的开拓者。Dapr 方法的关键是知足开拓者和企业的现状,帮助他们实现运用的当代化,并利用他们在云原生和微做事架构中的现有技能。在 v1.0 版本中,我们专注于将 Kubernetes 作为运行生产运用的紧张托管环境,随着 Dapr 的进一步成熟,我们希望在无做事器(serverless)环境中看到 Dapr。在过去的一年半韶光中,我们与早期采取者和互助伙伴紧密互助,因此 Dapr 现在已经成为多个基于 Kubernetes 的生产和预生产运用的核心。在这个用户驱动的过程中,Dapr 社区改进了 Java、.NET 和 Python SDK 的原生措辞体验,用真实的事情负载测试了规模和性能,增加了安全特性,并证明了 Dapr 的 Actor 编程模型是事情流和物联网(IoT)场景的最佳选择。以下是一些早期采取者的故事,以凸显 Dapr 如今的利用情形。
蔡司:光学和光电子领域的国际技能领导者ZEISS 面临的寻衅是掩护和更新一个具有 20 年历史的带有硬编码业务规则的后端系统。原来的订单验证和路由办理方案是基于一个具有固定容量的单体架构,开拓职员在不直接在系统中重新配置表格的情形下,无法轻松的更新、重新路由或跟踪订单。此外,业务部门无法直接掌握其订单处理流程。由于存在大量的系统依赖,变更总是须要代价高昂而耗时的开拓职员干预。为理解决这个问题,ZEISS 利用 Azure 和 Dapr 开拓了一个新的运用程序,可以更快地完成客户订单,同时还加快了开拓速率,并改进了公司的业务连续性。你可以在 这里 阅读更多关于他们的故事。
Ignition Group:一家位于南非的技能企业,专注于客户承诺和发卖支持工具
Ignition Group 打造的订单处理软件可以跟踪产品、管理订阅和处理来自各种来源的支付。订单处理涉及许多依赖,有一个采购跟踪机制,这个机制会调用客户订阅,触发司帐和计费流程,并确定适当的支付渠道。Ignition Group 希望微做事能给其事情流逻辑带来好处——高可用性、弹性、可扩展性和性能。利用 Dapr 和 .NET Core,Ignition Group 构建了一个新的、可扩展性更好的、可掩护的订单处理和支付系统,该系统目前已在生产中运行。Ignition Group 本日已经运行在生产中,你可以在 这里 阅读更多关于他们的故事。
Roadwork:采集数据洞若观火Roadwork 是一家为自主系统供应端到端平台的初创公司,让用户产生可实行的洞察力并据此行动。目前,他们专注于数据提取技能,并以全面集成自主系统为路径。通过对 Dapr 与 KEDA 的梳理,他们在 Kubernetes 上创建了一个生产做事,根据传入的客户负载要求,自动扩展运用和集群。Dapr 供应了利用 RabbitMQ 的 pub/sub 的抽象和集成,其能够轻松拥有 竞争消费者模式。本日,Roadwork 的第一个产品 Scraper.ai 已经在生产中运行。在 这里 理解更多信息。
社区和生态系统是社区的努力让 Dapr 发展到 v1.0。自 Dapr 首次公布以来,开源社区联络在 Dapr 周围并不断发展,令人惊叹——从 2019 年 10 月的 114 个贡献者增长到本日的 700 个。在短短的 16 个月内,增长了 6 倍多!
社区对项目的贡献涉及到 Dapr 的每一个仓库,范围包括提交问题、参与功能提案谈论、供应样本,当然也包括贡献代码。社区成员对项目贡献最大的部分包括 Dapr 运行时、文档、CLI 和 SDK。其余一个关键的贡献领域是创建了一个丰富的组件生态系统。可供开拓职员利用的组件超过 70 个,使 Dapr 成为一个可以适用于广泛场景的办理方案,包括开源技能和云供应商的特定集成。当开拓职员希望创建具有高可移植性的云平台无关的运用程序时,这些使得 Dapr 成为一个有吸引力的选择。
贡献并不局限于个人,还包括阿里云、HashiCorp、微软等组织,以及上文提到的 ZEISS 和 Ignition Group 等早期采取者。Dapr 生态系统还包括互助伙伴的技能栈,这些技能栈为利用 Dapr 的开拓者供应了附加值。例如,New Relic 供应了关于他们的监控工具如何与 Dapr 无缝事情的辅导,这要归功于 Dapr 利用的标准跟踪协议,这些协议可以在不改变任何代码的情形下轻松地检测您的运用程序。
培养一个开放和原谅的社区是 Dapr 项目的紧张目标。作为该承诺的一部分,我们分享了 向开放管理模式的过渡,这也是我们保持 Dapr 开放、供应商中立和原谅性的办法。我们的愿景是连续这一起程,并打算在不久的将来让 Dapr 加入一个开放软件基金会。同时,我们约请您通过 GitHub、Dapr 社区定期会议 和最近推出的 Discord 做事器 与 Dapr 社区互动。
"在阿里云,我们相信 Dapr 将引领微做事的发展。通过采取 Dapr,我们的客户现在可以以更快的速率来构建可移植和健壮的分布式系统。"
—— 阿里云资深技能专家 李响
发布亮点在最近的几个月中,我们已经发布了三个 v1.0 版本的候选版本,专注于从社区得到反馈,并为 v1.0 版本做准备。在性能、安全、高可用性(HA)和同等性等方面更深入地关注于生产就绪。完全的发布解释可以在 这里 得到,以下是一些亮点:
作为生产环境的 Kubernetes对付 v1.0 版本,Kubernetes 是首选的托管环境,它与 Dapr 掌握平面和 Dapr sidecar架构深度集成。例如,在运维上,通过 Dapr CLI "init" 和 "upgrade" 命令简化了 Dapr 在 Kubernetes 上的安装和升级,这些命令可以拉取精确的 Dapr 运行时版本,并确保这些版本以受控的办法推出,包括迁移正在利用中的证书。您可以在 HA 模式下安装 Dapr 掌握平面,确保多个实例同时运行,而且 Dapr sidecar 有一个康健端点,可以实现 Kubernetes 就绪(readiness)和活泼度(liveness)探针以确定其康健状态。在全体发布候选版本的过程中,我们与早期采取者密切互助,以确保他们能够以可运维的办法迁移到每个 Dapr 运行时版本,而不是构建新的集群。请参阅 生产支配指南 以理解更多信息。
性能、同等性和支持在云原生运用中,性能是至关主要的,而 Dapr 对高性能非常重视。一个常常被提起的话题是,由 sidecar 模型为运用程序完成所有繁重事情所带来的影响,以及数据平面性能的权衡取舍。个中一个特殊关注的领域是做事调用构建块,在这里,当通过两个 Dapr sidecar 在两个运用之间调用并收到相应时,Dapr 在 p90 时增加了约 1.2ms 的端到端延迟,在 p99 时增加了约 2ms。由此可见,Dapr 具有极低的做事间延迟,并针对高吞吐量场景进行了优化。
Dapr 有超过 70 个由社区开拓的组件,为了确保对这些组件的利用信心,它们要经由一系列的同等性测试。组件首先从 alpha 状态开始,终极达到 GA 状态,并须要用户在生产中利用它们。对付 v1.0 版本,只有部分已经在生产中广泛利用的组件被批准为 GA,其他组件在知足标准后也将加入个中。与浩瀚开源云原生技能一样,变更、修复和改进的引入速率很快,这意味着受支持版本存在滚动窗口。主要的是,Dapr v1.0 版本流传宣传 API 层面是稳定的,如果未来须要修正,将通过 版本机制 来担保 API 的完备向后兼容,如果须要毁坏性的修正,则会提前几个版本注明。末了,从支持的角度来看,当前和之前的版本都将支持 在涌现关键问题或安全问题时进行补丁更新。
安全安全一贯是 Dapr 的核心主题,由于我们已经认识到基于微做事架构构建安全的当代分布式运用的繁芜性,而 Dapr 已经通过了多项独立的安全审计。为了抵御运用程序之间的中间人攻击,您须要进行加密,而 Dapr 通过其掌握平面做事发出的 x.509 证书供应加密,这些证书会自动更新和滚动。为了供应对资源的访问掌握,如状态存储、密钥、做事间调用,或发布/订阅特定主题的能力,您须要细粒度的访问掌握策略(ACL)。当利用 spiffe 作为身份标准访问资源时,Dapr 供应了广泛的 ACL。当运行运用程序时,您可以将这些运用程序隔离在不同的命名空间中,以便进走运维支配和隔离。这些广泛的安全能力不才图中显示,这里有三个利用 Dapr 安全特性的微做事:
编程措辞和 SDK
Dapr 以其编程措辞、框架和工具拥抱所有的开拓者社区。Dapr 被设计为可以通过 HTTP 和 gRPC 协议从任何编程措辞中利用,这意味着您不须要在编译时包含任何依赖关系。当然,为了改进开拓者的原生措辞体验,Java、.NET、Python 和 Go 的 SDK 也以 v1.0 生产就绪的形式发布,这反响了它们在社区和组织中的成熟运用。这些 SDK 可以让您作为开拓者,利用您最喜好的开拓环境,如 VS Code 或 IntelliJ。JavaScript/Node.js、C++、Rust 和 PHP 的 SDK 目前处于预览阶段,随后将发布 v1.0 版本。PHP SDK 包括对 Actor 的支持,这是社区为 Dapr 广泛且不断增长的编程措辞列表做出贡献的一个极佳的例子。
展望未来
通过这个 v1.0 版本,我们为构建当代云原生运用所需的基本构建块奠定根本的旅程才刚刚起步。社区驱动意味着社区将在未来的版本中设定项目的优先级,个中许多优先级已经被投票通过。例如,增强现有构建块的亮点,包括在状态管理中利用 OData 查询和过滤多个值的能力。在 pub/sub 中,支持 CloudEvents v1.0 过滤功能,以根据内容过滤出用户感兴趣的事宜。在可不雅观测性方面,供应一个 API 用于 从运用中追踪事宜,防止您不得不绑定到特定的监控类库,并使 actor 能够直接订阅 pub/sub 事宜,从而开启了丰富的事宜驱动场景。
新的构建块提案包括用于读写运用程序配置数据的配置 API,例如来自 Azure Configuration Manager 或 GCP Configuration Management。领导者选举构建块,供应创建单例实例、同步或锁定语义能力。用于网络级做事调用的透明代理构建块,使您能够根据 URL 或 DNS 地址来路由,以及用于熔断器、隔离舱和超时等模式的更多弹性构建块。
末了,在 v1.0 版本中,Dapr 集成了多个开拓者框架,包括 ASP.NET Core、Java Spring Boot、Azure Functions 和 Logic Apps,而我们认为这还将连续,更多的开源框架如 Django、Nodejs 和 Kyma 都是潜在的例子。此外,考虑到 Dapr 的托管平台独立性,在虚拟机、边缘平台(如 Azure Stack Hub 或 AWS Outpost)和其他分布式系统平台上供应对 Dapr 掌握平面一流的支持,可以实现运用的可移植性。
开始和贡献我们希望您能试用 Dapr v1.0。您可以利用文档中的 入门指南 进行学习,然后通过 快速入门 来深入理解。如果你须要更多信息,样本库 是 Dapr 社区捐赠的不同的运用程序的展示。Dapr 文档 docs.dapr.io 是全面的指南,还有几本书,包括《 Learning Dapr》、《利用 Dapr 和 .NET 实践微做事》以及最新发布的免费电子书《Dapr for .NET 开拓者》。如果您有任何疑问,碰着问题或想与社区的其他成员互换,Dapr 社区随时在 Discord 上欢迎您的到来。
对付 Dapr 来说,v1.0 版本的发布只是一个开始,在这个过程中,我们感谢并鼓励您的持续帮助、反馈和贡献。无论是编写新的组件,提出建议,贡献新的构建块,还是增强您最喜好的措辞的 SDK,我们都希望听到您的见地并与您一起参与。在这个微做事开拓的时期,作为一名开拓者,这是一个令人愉快的时候,Dapr 将开释您的生产力和创造力,轻松构建当代化的分布式运用。我们非常高兴的看到您连续利用这个项目,看到您利用它进行构建,并对 Dapr 的发展保持关注。
译者注英文原文来自 Dapr 官方网站博客文章 Announcing Dapr v1.0。译者所在的阿里如斯原生团队深度参与了 Dapr 1.0 的开拓,同时也正在内部小规模的试点 Dapr ,稍后将分享阿里云在 Dapr 上的实践。文中提到的 《 Learning Dapr》 一书,译者所在的团队正在翻译中,估量很快就将出版发行,欢迎关注。Dapr 中文社区 目前正在组织翻译 Dapr 的官方文档,估量不久将完成部分章节并在官方上线,同样欢迎关注,更欢迎一起参与。译者简介敖小剑,资深码农,十九年软件开拓履历,微做事专家,Service Mesh 布道师,Servicemesher 社区联合创始人。专注于根本架构,Cloud Native 推戴者,敏捷实践者,坚守开拓一线打磨匠艺的架构师。曾在亚信、爱立信、唯品会、蚂蚁金服等任职,对根本架构和微做事有过深入研究和实践。目前就职于阿里如斯原生运用平台从事 Service Mesh、Serverless、Multiple Runtime 等云原生产品设计和开拓。