微软开源专替打造微服务应用所设计的Dapr项目

微软近日发布了新的开源项目Dapr,它的全名为分布式应用程序执行环境(Distributed Application Runtime),目的在于协助开发人员更容易构建微服务应用程序。

微服务为一种软件开发架构,先构建各种单一功能与责任的区块,再以模块化的方式,将它们组合成复杂的大型应用程序。

微软表示,近年来有越来越多的开发人员打造可扩展的云计算原生应用程序,并利用托管服务来部署与执行它们,该转变让微服务架构成为构建云计算原生应用程序的标准,且预测到了2022年,将有高达9成的新应用程序都会配备微服务架构,然而,要实现微服务架构必须先充分了解与掌握分布式系统。

一般而言,开发人员想要专注于商业逻辑,频繁且快速地迁移旧的程序代码,同时依赖各式平台来提供这些应用程序所需的规模、弹性、可维护的能力或是其它云计算架构的特性,然而,他们却会发现云计算与边缘之间的可携是受限的,使得他们必须不断地解决诸如状态管理、弹性方法调用与事件处理等同样的分布式系统问题,而且许多程序设计的执行环境经常只有狭窄的语言支持,以及严格控制的功能集,替构建微服务架构带来了挑战。

举例来说,要构建一个由不同服务组成的电子商务应用时,开发人员可能想要利用一个具状态的模型来代表购物车服务,再调用无状态的函数来负责支付与出货服务,撰写这些应用程序也许会涉及到不同的语言、开发框架或平台,也会集成外部服务,理解及管理如此复杂的技术堆栈,将使开发人员无法专心于创建商业价值。

Dapr的诞生即是为了协助开发人员解决上述问题。它是一个开源、可携且事件驱动的执行环境,以让开发人员更容易打造可在云计算与边缘运行的可靠、有状态及无状态的微服务应用程序,它包含了所有的程序语言与开发框架,也简化了应用程序的构建程序。

Dapr是由一套构建区块所组成,可通过标准的HTTP或gRPC APIs来访问,每个区块都是独立的,可在应用程序中选用全部或其中几个,同时微软也欢迎开源社群贡献更多的区块与组件。

目前的Dapr项目处于alpha阶段,因此仅提供最常用的构建区块,像是服务调用、状态管理、服务之间的出版与订阅通信、事件驱动的资源绑定、虚拟模型,以及服务之间的分布式关注。

开发人员已可借由GitHub访问Dapr程序代码与范例,微软也替Dapr创建了专属网站以供开发人员交流。