微软近日发表了新的开源项目Dapr,它的全名为分布式应用程序执行环境(Distributed Application Runtime),目的在于协助开发人员更容易创建微服务应用程序。
微服务为一种软体开发架构,先创建各种单一功能与责任的区块,再以模组化的方式将它们组合成复杂的大型应用程序。
微软表示,近年来有越来越多的开发人员打造可扩展的云原生应用程序,并利用托管服务来部署与执行它们,此一转变让微服务架构成为构建云原生应用程序的标准,且预测到了2022年,将有高达9成的新应用都会配备微服务架构,然而要实现微服务架构必须先充份了解与掌握分布式系统。
一般而言,开发人员想要专注于商业逻辑,频繁且快速地迁移旧的代码,同时仰赖各式平台来提供这些应用程序所需的规模、弹性、可维护的能力或是其它云端架构的特性,然而,他们却会发现云端与边缘之间的可携是受限的,使得他们必须不断地解决诸如状态管理、弹性方法呼叫与事件处理等同样的分布式系统问题,而且许多程式设计的执行环境经常只有较少的语言支持,以及严格控制的功能集,替创建微服务架构带来了挑战。
举例来说,要创建一个由不同服务组成的电子商务应用时,开发人员可能想要利用一个具状态的模型来代表购物车服务,再呼叫无状态的函数来负责支付与出货服务,撰写这些应用程式也许会牵涉到不同的语言、开发框架或平台,也会整合外部服务,理解及管理如此复杂的技术堆叠,将使开发人员无法专心于建立商业价值。
Dapr的诞生即是为了协助开发人员解决上述问题。它是一个开源、可携且事件驱动的执行环境,以让开发人员更容易打造可在云端与边缘运行的可靠、有状态及无状态的微服务应用程序,它包含了所有的程序语言与开发框架,也简化了应用的构建程序。
Dapr是由一套创建区块所组成,可通过标准的HTTP或gRPC APIs来存取,每个区块都是独立的,可在应用程序中选用全部或其中几个,同时微软也欢迎开源社区贡献更多的区块与组件。
目前的Dapr项目处于alpha阶段,因此仅提供最常用的创建区块,例如服务调用、状态管理、服务之间的出版与订阅通讯、事件驱动的资源绑定、虚拟模型,以及服务之间的分散式追踪。
开发人员已可由GitHub存取Dapr程序代码与范例,微软会建立专门的Dapr网站以供开发人员交流。
参考:
https://www.ithome.com.tw/news/133713 https://cloudblogs.microsoft.com/opensource/2019/10/16/announcing-dapr-open-source-project-build-microservice-applications/ https://github.com/dapr/dapr