微服务的终极目标,mecha分布式运行时之dapr

dotNET跨平台 dotNET跨平台     2022-12-31     713

关键词:

1. Mecha 是啥?

微服务发展到今天,已经有很多公司多年前已经改造完毕,也有些公司还在路上,微服务的优势,有过了解的朋友应该也都能说出个一二三来,经历过微服务改造的,应该都知道其中的艰辛。

单体服务有着很多优势,结构简单、事务的ACID保证,系统内的无缝调用,一旦改造为微服务,必然是分布式服务构造,服务间的不稳定性,通讯的复杂性都使得整个系统的复杂性提升。

随着大量的三方服务的引入,也带来了网络、绑定、状态、生命周期管理等的各方面膨胀的需求,Red Hat的首席架构师Bilgin Ibryam从自己的经验出发,提出了未来的发展方向——多运行时微服务架构。

他简要的概括了微服务的在四个维度的基本需求。

为了满足这些需求,或者换句话说,应该有个 机甲装备-Macha,穿上它,就能实现微服务。

是的,从蛮荒走向科技,必然会形成的科技天梯。

业务人员在未来的某一天,可以不需要考虑这些基础设施服务,只需要一张清单,Mecha就能满足你。

2.微软开源的世界第一个分布式运行时Dapr

顺时而生的Dapr,是不是那个赢家?

官方介绍:Dapr 是一个可移植的、无服务器的、事件驱动的运行时,它使开发人员可以轻松构建在云和边缘运行的弹性、无状态和有状态的微服务,并包含语言和开发人员框架的多样性。

Dapr 将构建微服务应用程序的最佳实践编码为开放、独立的构建块,使您能够使用您选择的语言和框架构建可移植的应用程序。每个构建块都是独立的,您可以在应用程序中使用其中的一个、部分或全部。

是的,Dapr制定了和各个基础服务通讯的标准,并对我开放Api以实现编码语言的弱依赖。其提供了众多语言的HTTP、GRPC协议的SDK,使得你可以使用薄薄的SDK层,就可以和所有基础设施服务进行通讯。

Dapr部署方式可以是SideCar,或者Node方式,其来自云原生,和Kuberbetes配合极好;在没有K8s的环境也可以运行,部署灵活而不限制。

除了能够和其他基础设施服务进行通信外,其还提供了状态管理、pub/sub消息、Actors、可观测、安全存储等特性。

哦哦哦,令我遗憾的是它竟然是Go语言写的,好吧,又是Go语言从业者的狂欢。

3.dapr特性

  • 事件驱动的发布订阅系统,具有可插入的提供者和至少一次语义

  • 与可插入提供程序的输入和输出绑定

  • 具有可插拔数据存储的状态管理

  • 一致的服务到服务发现和调用

  • 选择加入有状态模型:强/最终一致性,先写/最后写获胜

  • 跨平台虚拟演员

  • 从安全密钥库中检索秘密的秘密管理

  • 速率限制

  • 内置可观察性支持

  • 使用专用的 Operator 和 CRD 在 Kubernetes 上本地运行

  • 通过 HTTP 和 gRPC 支持所有编程语言

  • 来自 Azure、AWS、GCP 的多云、开放组件(绑定、发布-订阅、状态)

  • 在任何地方运行,作为一个进程或容器化

  • 轻量级(58MB 二进制,4MB 物理内存)

  • 作为 sidecar 运行 - 无需特殊 SDK 或库

  • 专用 CLI - 易于调试的开发人员友好体验

  • Java、.NET Core、Go、Javascript、Python、Rust 和 C++ 的客户端

4. 底层服务已经支持

可以到这里查看支持列表。

目前版本1.30,有微服务改造需求的童鞋,可以重点考虑该技术。

???? 5. 小结

例行小结,理性看待!

结的是啥啊,结的是我想你点赞而不可得的寂寞。????????????

????都看到这了,还在乎点个赞吗?

????都点赞了,还在乎一个收藏吗?

????都收藏了,还在乎一个评论吗?

微服务的终极目标,mecha分布式运行时之dapr

1.Mecha是啥?微服务发展到今天,已经有很多公司多年前已经改造完毕,也有些公司还在路上,微服务的优势,有过了解的朋友应该也都能说出个一二三来,经历过微服务改造的,应该都知道其中的艰辛... 查看详情

dapr简介(代码片段)

...服务构件3.展望!dapr简介Dapr(DistributedApplicationRuntime)分布式应用运行时1Dapr是什么?Daprisaportable,event-drivenruntimethatmakesiteasyfordeveloperstobuildresilient,microservicestatelessandstatefulapplicationsthatrunonthecloudandedgeandembracesthediversityoflanguagesanddev... 查看详情

微服务的扫地僧--dapr中文v1.5发布!

...位对云原生和微服务框架感兴趣的童鞋一定不能错过这个分布式应用程序运行时。我们翻译小组也是希望通过对Dapr文档中文的支持,让Dapr在华语的云原生社区更好地推广开来,欢迎各位使用Dapr,参与到Dapr以及云原生开源社区... 查看详情

masaframework-整体设计思路

...通用的,高度可配置的,可重用的组件,提供分布式原语作为现成的能力Mecha 查看详情

为什么dapr是比springcloud和istio更优雅的微服务框架?(代码片段)

...c;非常精炼的解释了dapr是什么:dapr是一个为应用提供分布式能力的运行时。Dapr官网 https://dapr.ioDapr已经在多家大厂支撑生产环境随着各家大厂的IT系统规模扩大,微服务架构已经成为了必需品和标准品,这也催生了Da... 查看详情

分布式应用框架dapr(代码片段)

...ntime.Anevent-driven,portableruntimeforbuildingmicroservicesoncloudandedge.分布式应用运行时、事件驱动、为云和边缘构建微服务提供便携化运行时。我现在也不是很懂。dapr/daprGitHubDaprisaportable,serverless,event-drivenruntimethatmakesiteasyfordeveloperstobuildres... 查看详情

dapr初识

...(DistributedApplicationRuntime)是微软于2019年10月16日首次发布的分布式程序运行时,到现在已经过去2年多,从最初的v0.1.0到现在的v1.0.0-rc2,加入了好多新的功能。支持的中间件越来越多,基本上主流的中间件(本地版和各云提供商的托... 查看详情

blazor+dapr+k8s微服务之开发环境调试

...模式不支持开发调试在上一篇随笔《Blazor+Dapr+K8s微服务之服务调用》中,我们通过为每个微服务运行daprrun….dotnetrun命令,以自宿主的方式在本地开发环境成功运行了服务调用的例子。但是,这种运行方式是不... 查看详情

浅析dapr里的云计算设计模式(代码片段)

Dapr实际上是把分布式系统与微服务架构实践的挑战以及k8s这三个主题的全方位的设计组合,特别是Kubernetes设计模式 一书作者BilginIbryam 提出的Multi-RuntimeMicroservicesArchitecture,中译参见敖小剑的博客: [译]多运行时微服务... 查看详情

单体应用适合采用dapr构建吗?

...行的系统就叫做巨石型应用),但是它却用到了分布式中间件 查看详情

dapr+.net实战服务监测

服务监测分布式服务性能指标,链路追踪,运行状况,日志记录都很重要,我们日常开发中为了实现这些功能需要集成很多功能,替换监控组件时成本也很高。Dapr可观测性模块将服务监测与应用程序分离。它... 查看详情

dapr能否取代springcloud?

...时代需要不同的框架。SpringCloud是一种产品,提供了分布式应用程序所需的所有要素,包括服务发现、消息传递/流处理、分布式跟踪、以易于处理的形式从SpringBoot提供功能,到目前为止,可能没有其他产品比Spring... 查看详情

dapr知多少|分布式应用运行时

IntroDapr官方团队已于最近(2021.2.17)正式发布Daprv1.0,Dapr已正式生产可用,可以部署到自托管环境或Kubernetes集群。对于绝大多数开发者来说,想必对Dapr只是有所耳闻,而具体是什么(What),可... 查看详情

手把手教你学dapr-9.可观测性(代码片段)

...Metrics(指标)、Logs(日志)和Health(运行状况)监控应用程序。分布式跟踪Dapr使用Zipkin协议进行分布式跟踪和Metrics收集。由于Zipkin协议的普遍性,许多后端都是开箱即用的,例如Stackdriver、Zipkin、NewRelic等。结合OpenTelemetryCollecto... 查看详情

daprv1.9.0版本已发布

...保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统难题,由此显著提高生产力并缩短开发时长。Dapr 是用于构建云原生应用程序的开发人员框架,可以更轻松帮助开发人员在Kubernetes上构建运行 查看详情

dapr集成flomesh实现跨集群服务调用(代码片段)

...地以独立运行时的方式从应用程序分离出来。这其中就有分布式应用运行时和服务网格两种运行时,今天这篇文章就为大家介绍Dapr与Flomesh服务网格的集成进行跨集群的服务调用来实现“真正的”多集群互联互通。多集群Kuber... 查看详情

blazor+dapr+k8s微服务之服务调用

 1.1  Dapr环境配置1.1.1       在开发机安装DockerDesktop并启用Kubernetes安装过程略,安装好后效果如下:(左下角两个绿色指示Docker和K8s正在运行) 1.1.2       在开发机安装DaprCli安装命令:powershell-Command... 查看详情

dapr牵手.net学习笔记:开篇

dapr,一个为分布式应用程序的运行时,为开发者在对接分布式组件时,提供了便利。使用dapr带来的好处可扩展性,因为它是通过sidecar的理概念来集成其他运行时的。同时dapr还提供了多种语言的SDK。关于dapr更多... 查看详情