伴随着越来越多的开发人员构建可扩展的云原生应用,微软在 2019 年 10 月推出了分布式开源微服务构建运行时 Dapr。它是一个开源的、事件驱动的框架,旨在为云计算和边缘应用程序构建弹性和可移植的微服务。今天该服务达到了 1.0 里程碑,标志着该项目已经准备好投入商用领域。
时至今日,Dapr 项目经历了 14 次更新,社区已经集成了包括 Azure、AWS、阿里云和 Google Cloud 在内的几乎所有主要云供应商。微软 Azure 首席技术官 Mark Russinovich 表示,Dapr 的目标是为企业开发者实现云原生开发的民主化。
他表示
当我们去看企业开发人员被要求做什么时--他们传统上一直在做客户端、服务器、Web加数据库类型的应用。但现在,我们要求他们进行容器化,并创建可扩展的微服务,并且具有无停机更新的功能--他们必须与所有这些云服务进行整合。
此外,许多企业还要求他们制作的应用能够在企业内部环境和云环境之间移植,甚至能够在云之间移动。所以,只是大量的复杂性被扔给了他们,而这些复杂性与他们试图解决的业务问题并不具体或不相关。
而很多开发都可能需要从头开始,以便于让他们的应用能够可靠地与其他各种服务对话。Dapr 背后的理念是为开发者提供一个单一的运行时,开箱即用,提供开发者构建事件驱动微服务所需的工具。除此以外,Dapr 还为服务对服务的通信、状态管理、pub/sub和秘密管理等提供了各种构建模块。
Russinovich 表示
Dapr 的目标是:让我们把编写这些云原生的分布式、高可用、可扩展、安全的云服务的所有琐碎工作从开发人员身上转移开,让他们可以专注于他们的代码。实际上,我们从无服务器、功能即服务中吸取了教训,例如 Azure Functions,它是事件驱动的,他们专注于他们的业务逻辑,然后像 Azure Functions 的绑定一样,负责与其他服务连接。
他还指出,这里的另一个目标是取消特定语言的模型,创建一个可以从任何语言中利用的编程模型。毕竟,企业倾向于在其现有代码中使用多种语言,而且很多企业现在正在研究如何最好地实现现有应用程序的现代化--而不需要扔掉所有的现有代码。