微服务是云原生架构的核心,通常使用Kubernetes 来按需管理服务扩展。微软一直走在 Cloud Native Computing Foundation的 最前沿,并通过使用Kubernetes来支持其超大规模Azure和其混合云Azure Stack,微软对云原生的投资一部分来自其工具,该工具具有一系列支持云原生微服务开发的不同平台和服务。除了.NET也是微软在云原生应用开发的一个重要平台,Dapr(分布式应用程序运行时)也是另外一个非常重要的平台,根据官方文档的说法,Dapr是一个可移植、事件驱动的运行时,让企业开发者更容易利用各种语言和框架构建柔性、无状态和有状态的微服务应用,并运行在云端和边缘。Dapr的核心由Go语言写成,开发团队一开始有计划使用.NET Core/C#来写,但是考虑到社区的接受程度,遂最终选定Go作为开发语言。
Dapr 自 2019年秋季发布以来已经有一段时间了,但是在过去的一年中一直在继续开发, 并且最近已经发布第三个候选版本可用,因此Dapr 1.0版本并不遥远,希望该候选版本是最后一个候选版本,并在未来几周内正式发布v1.0,也就是说春节后就可以正式投入生产了 。该开发过程包括开发工具和Dapr CLI,用于设置开发环境并帮助应用程序脚手架,随时为您添加代码。如果您还没有看过Dapr,那么春节正是开始看看它是否可以帮助您更快地构建服务的好时机。
Dapr CLI是一个不错的起点,它可与本地Docker安装一起使用。它适用于Linux,macOS和Windows,并提供主要版本的安装说明。推荐大家从几篇由朱永光 写的文章开始了解:
Dapr微服务应用开发系列0:概述
Dapr微服务应用开发系列1:环境配置
Dapr微服务应用开发系列2:Hello World与SDK初接触
Dapr微服务应用开发系列3:服务调用构件块
云原生的微服务在任何现代应用程序框架中都越来越重要,因此选择正确的开发环境和工具至关重要。随着Dapr接近其1.0版本,它为我们提供了一组构建块和支持工具,可帮助我们以易于部署和可重复的方式实现关键的微服务设计模式。对通用语言的支持和与框架无关的方法确保了花几天时间评估Dapr是非常值得。特别对于.NET开发者来说,Dapr 里面的编程模型是很熟悉的,大家学起来吧。
国内有一个Dapr社区,这个社区里大家都是跨语言的, Dapr SIG 是 云原生社区 主办的特别兴趣小组(SGI)。SIG 目的是为了给在某一个领域志同道合的人共同学习和交流的平台。网址是 https://i.cloudnative.to/dapr/ ,社区也正在组织翻译Dapr的文档,非常欢迎你的加入进来翻译文档。翻译指导链接请到 https://github.com/dapr-cn/docs 。