概述

我们快速看一遍官方文档:https://docs.dapr.io/concepts/service-mesh/#how-dapr-and-service-meshes-compare ,看看 Dapr 的开发团队是如何看待 Dapr 和 Service Mesh 在产品概念上的差异的,从1.5版本之后Dapr 功能的添加正在朝着标准化/增强重试/超时/断路器的实现的方向发展。因此,与 Service Mesh 产品的差异似乎在缩小。

  • Dapr 是一种旨在“促进微服务本身的开发”的产品,而不是 Service Mesh。
    • 但是,Dapr 有一些类似于服务网格的特性,例如分布式跟踪。
  • 由于上述原因,有些用例无法单独由 Dapr 实现。具体来说,如果你想要A/B测试等的Traffic Splitting功能,你需要配合Service Mesh产品使用。
当我们在Azure 的 AKS 上构建微服务的解决方案时,我们经常会看到关键字 Dapr 和 Open Service Mesh(Open Service Mesh是微软开源的Service Mesh产品) 。两者都采用了边车模式, 并且两者似乎正试图接近技术上相似的领域。 那么Dapr 和 Open Service Mesh 的产品理念有何不同?
Dapr 不是Service Mesh 产品

查看Dapr的官方文档中的 FAQ:Dapr 与 Istio、Linkerd 或 OSM 等服务网格相比如何,明确指出网络领域的问题,例如服务网格产品解决的问题,不是主要目标。 Dapr 的目标是为 “开发人员”构建微服务时创建构建块

Dapr 不是服务网格。服务网格专注于细粒度的网络控制, 而 Dapr 则专注于帮助开发人员构建分布式应用程序。Dapr 和服务网格都使用 sidecar 模式并与应用程序一起运行。它们确实有一些重叠的功能,但也提供了独特的好处。有关更多信息,请阅读 Dapr 和服务网格概念页面:https://docs.dapr.io/concepts/service-mesh/

Dapr 的“分布式构建块”概念与服务网格处理的问题领域有什么特别不同? 接下来我就详细说说。

Dapr 文档 : Dapr 和服务网格如何比较

理解“ Service Mesh 关注基础设施领域/网络,而 Dapr 强调开发人员体验” 这一点很重要。

  • Service Mesh 感兴趣的主要是基础设施工程,尤其是网络层的通信管理/操作。
  • Dapr 目标是在解决更多的软件工程问题。因此,Dapr 的 API 也被设计成可以直接从 应用代码中操作,而无需 系统管理员干预。

虽然 Dapr 和服务网格确实提供了一些重叠的功能,但 Dapr 不是服务网格,服务网格被定义为网络服务网格。与专注于网络问题的服务网格不同,Dapr 专注于提供构建块,使开发人员更容易将应用程序构建为微服务。Dapr 以开发人员为中心,而服务网格则以基础设施为中心。
在大多数情况下,开发人员不需要知道他们正在构建的应用程序将部署在包含服务网格的环境中,因为服务网格会拦截网络流量。服务网格主要由系统操作员管理和部署,而 Dapr 构建块 API 旨在供开发人员在其代码中明确使用。

Dapr 文档:  Dapr 和 服务网格如何比较

Dapr 和Open Service Mesh 具体功能差异

综上所述,我们可以将这两个产品的特性整理如下。

  • Open Service Mesh是一个有Service Mesh 形态的产品。因此,主要兴趣是从基础设施的角度来运营网络。
  • Dapr 旨在使微服务对开发人员来说尽可能简单,并且只涵盖从软件开发角度实现它所需的功能。

Dapr 和 Open Service Mesh 功能之间的具体区别官方文档中查看。您可以看到流量路由和流量拆分功能超出了 Dapr 的范围,它属于Open Servvice Mesh的范围。

如何正确使用Dapr 和 服务网格

接下来出现的问题是 “我应该以什么标准正确使用 Dapr 和 Open Service Mesh ?”,具体看这个文档内容: FAQ:何时选择使用 Dapr、服务网格或者两者兼存

  • 如果您想使用 Dapr 提供的构建块开发微服务,我们建议仅使用 Dapr。Dapr 也支持分布式跟踪。
  • 对于“我要加密微服务之间的通信”的用例, Dapr 只可以处理所有微服务都有 Dapr sidecar 的情况。但是,如果您想加密没有 Dapr sidecar 的微服务或其他组件,您还需要使用 Service Mesh 产品。
  • 此外,如果你想为 A/B 测试等进行流量拆分,你需要与 Service Mesh 产品集成。
    • 例如,如果您希望使用 Dapr 的一个或多个构建块,例如状态管理或发布/订阅,并且您正在考虑仅将服务网格用于网络安全或者可观察性,您可能会发现 Dapr 非常适合并不需要服务网格。
    • 通常,您会使用带有 Dapr 的服务网格,即必须为所有应用程序加密网络上的流量。例如,您可能在应用程序中仅使用 Dapr 的一部分,而在您的应用程序中未使用 Dapr 的其他服务和进程也需要对其流量进行加密。在这种情况下,服务网格是更好的选择,很可能您应该在服务网格上使用 mTLS 和分布式跟踪,并在 Dapr 上禁用它。
    • 如果您需要 A/B 测试场景的流量拆分,您将从使用服务网格中受益,因为 Dapr 不提供这些功能。
      常见问题解答:何时选择使用 Dapr、服务网格或两者兼存
总结

我希望上面这些内容对你有帮助,这些内容都来自官方文档中关于Dapr 和服务网格的内容。 Dapr 的真正价值在于抽象了基础设施层,使源代码和基础设施之间的关系松耦合/可插拔,使得当前的微服务的开发初期和后期开发,在面对基础设施的的可变方面更有弹性。

Dapr 不是服务网格,只是我长的和他很像的更多相关文章

  1. 初识 Istio - 服务网格管理工具

    What is a service mesh(服务网格)? 微服务在国内流行已经多年了,大多数公司选择了基于容器化技术( Docker )以及容器编排管理平台 ( Kubernetes )落地微服务 ...

  2. 通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格

    多运行时是一个非常新的概念.在 2020 年,Bilgin Ibryam 提出了 Multi-Runtime(多运行时)的理念,对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华.那到 ...

  3. 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署

    之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...

  4. Service Mesh服务网格:是什么和为什么

    Service Mesh服务网格:是什么和为什么 - 好雨云帮 CSDN 博客 - CSDN博客 https://blog.csdn.net/zyqduron/article/details/8043 ...

  5. Service Mesh服务网格新生代--Istio(转)

    万字解读:Service Mesh服务网格新生代--Istio  官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...

  6. 【译文连载】 理解Istio服务网格(第七章 安全)

    全书目录 第一章 概述 第二章 安装 第三章 流控 第四章 服务弹性 第五章 混沌测试 第六章 可观测性 本文目录 第7章 安全 7.1 身份认证 7.1.1 Kubernetes上的Istio的身份 ...

  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务

    我个人认为Actor应该是Dapr里比较重头的部分也是Dapr一直在讲的所谓"stateful applications"真正具体的一个实现(个人认为),上一章讲到有状态服务可能很 ...

  8. 精彩分享 | 欢乐游戏 Istio 云原生服务网格三年实践思考

    作者 吴连火,腾讯游戏专家开发工程师,负责欢乐游戏大规模分布式服务器架构.有十余年微服务架构经验,擅长分布式系统领域,有丰富的高性能高可用实践经验,目前正带领团队完成云原生技术栈的全面转型. 导语 欢 ...

  9. 揭开服务网格~Istio Service Mesh神秘的面纱

    目录 一.写在前面 二.微服务与K8S 三.服务网格与K8S 四.常见的产品 五.Istio架构 六.Istio的核心资源介绍 6.1.VirtualService 6.2.Destination R ...

随机推荐

  1. 转:C++经典排序算法总结

    转载至:https://www.cnblogs.com/fnlingnzb-learner/p/9374732.html 一.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比 ...

  2. InfoQ Trends Report

    InfoQ Trends Report InfoQ Trends Report Culture & Methods Trends Report - March 2021 DevOps and ...

  3. devicePixelRatio 那些事儿

    devicePixelRatio 那些事儿 设备像素比 window.devicePixelRatio 是设备上物理像素和设备独立像素的比例,即公式表示为:window.devicePixelRati ...

  4. WPF控件大全(表格)-学习总结

    Label标签 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label控件的值记住:不是Text 而是 Content属性. TextB ...

  5. 【uniapp 开发】uni-app 中如何打开外部应用

    我们在开发 App 应用中,经常会遇到打开第三方程序的场景,比如打开手机淘宝.通过第三方浏览器打开一个 url 等等. App不像网页可以使用http超链接互相跳转,但手机os设计了scheme机制, ...

  6. window10解决需要管理员删除文件的权限问题

    1.快捷键:"win+R",输入:gpedit.msc  回车 2.依次点击:计算机配置-windows配置-安全设置-本地策略-安全选项 3.将两个管理员批准模式和管理员状态三者 ...

  7. jboss学习1之EJB和JBOSS的宏观理解

    一.中间件(Middleware)         先来看一张图:         中间件,也就是图中的Middleware,他的作用是什么呢?        简单来说,中间件就是操作系统和应用程序之 ...

  8. 支付宝小程序中“<”号写法

    今天遇到一个小问题,记录一下 "<"号在h5页面都是可以直接显示的,但是在运行支付宝小程序时报错,找了一个解决办法 <text> {{char_lt}} 18.5 ...

  9. HDMS(Headend Device Management System)软件下载

    进入官网http://www.pbi-china.com/CHS/index.aspx点击右下角的下载通道.

  10. git概述

    学习资料来源-人家写得比我好 #视频教程: https://www.bilibili.com/video/BV1vy4y1s7k6?spm_id_from=pageDriver #文档教程 https ...