Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到正式发布 V1.0 版本的不到一年的时间内,github star 数达到了 1.2万(现在已经超过1.7万星),超过同期的 kubernetes、istio、knative 等,发展势头迅猛,业界关注度非常高。
Dapr 这个词是是 「Distributed Application runtime」的首字母缩写,非常精炼的解释了 dapr 是什么:dapr 是一个为应用提供分布式能力的运行时。
Dapr官网 https://dapr.io
Dapr已经在多家大厂支撑生产环境
随着各家大厂的IT系统规模扩大,微服务架构已经成为了必需品和标准品,这也催生了 Dapr 这类非侵入式的(或者叫边车模式SideCar)的微服务开发框架的使用。根据Dapr官方仓库中的记录,已经有非常多的大厂在 生产环境 中使用Dapr来支撑自己的微服务开发。这里面不乏大家熟悉的腾讯,阿里,丁丁等国内大厂。
参考:
Dapr比较SpringCloud或者Istio的优势在哪里?
这个可能是大多数人的第一个问题,简单总结几点供大家参考
-
全栈多语言支持:这一点上Dapr和Istio是等同的,因为都采用了边车模式,与应用进程之间没有有侵入性,相比SpringCloud这种只能支持Java语言(当然现在有很多其他语言提供SpringCloud的SDK)的侵入性框架,具备先天的跨语言优势。微服务化给开发人员带来的一个重要价值就是可以随意的选择不同开发语言框架进行组装,对于企业来说也可以避免被某一种技术框架绑定,甚至在招聘程序员的时候也可以有多的选择。因此当微服务的理念开始在业界流行以后,采用者的团队中必然出现多语言并存的状况。当你面对一个Java/.Net/Python/Node/JavaScript/Golang多语言并存并且相互依赖的应用环境的时候,就会发现SpringCloud无法这种需求,变成了微服务支撑框架的瓶颈。
-
多云/非云环境支持:这一点上Dapr和SpringCloud是等同的。SpringCloud作为云原生时代之前出现的框架,它本身的根基就在非云或者虚拟机环境上,因此SpringCloud本身就具备跨云/非云环境支撑,因为它本身和云环境并无绑定关系。你当然可以在容器/k8s中运行SpringCloud,但这仅仅是给SpringCloud应用换了一种打包部署方式而已。Istio 在这一点上有天然的弱势,因为Istio从一开始就