从.net开发做到云原生运维(六)——分布式应用运行时Dapr
1. 前言
上一篇文章我们讲了K8s的一些概念,K8s真的是带来了很多新玩法,就像我们今天这篇文章的主角Dapr一样,Dapr也能在K8s里以云原生的方式运行。当然它也可以和容器一起运行,或者是CLI运行,我们这篇文章只讨论容器和K8s运行方式。
2. Dapr介绍
Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。

通过概览图我们能看到,Dapr在服务和基础设置K8s之间又做了一部分的抽象。而我们的服务开发就在这个抽象之上进行。
在Asp.net core进行服务调用的时候我们如果采用GRPC,就要有一个服务端,客户端还要注入客户端配置,比如配置服务端的ip地址什么的,但是如果采用Dapr的话,只要服务端引入Dapr的SDK做简单的服务封装,那么客户端就可以只通过服务端的应用名称就能做到数据的交互。

3. Dapr K8s边车注入原理
K8s中的Dapr采用Sidecar(边车挂载的形式),当一个工作负载部署到K8s中,通过部署文件里的注解就会进行校验,如果符合条件就会动态修改部署文件,然后加入一个Dapr的容器和服务一起运行。
这些操作需要大家了解K8s的一个名词叫动态准入控制,读完这个介绍大家就应该明白我刚才说的是什么意思了。
如果大家在集群安装了Dapr,通过以下指令获取对应的资源
kubectl get MutatingWebhookConfiguration
编辑指令编辑查看
kubectl edit MutatingWebhookConfiguration dapr-sidecar-injector

4. Dapr具体的应用示例
.net core的微服务开发这篇文章里的一个例子也有dapr的内容,但是只是一个demo,我们可以参考下微软社区的一个dapr实践的例子。

这是一个社区维护的商城简单的dapr使用的架构图
整体算是很完善的demo了,适合asp.net core参考dapr的开发使用。
推荐文档
从.net开发做到云原生运维(六)——分布式应用运行时Dapr的更多相关文章
- 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时
Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2万,超 ...
- 云开发 :云原生(Cloud Native)
云开发 :云原生(Cloud Native) 云原生 所谓云原生,它不是一个产品,而是一套技术体系和一套方法论,用于构建和运行充分利用云计算模型优势的应用.云计算将提供无限制的按需计算能力和根据使用情 ...
- 新IT运维时代 | Docker运维之最佳实践-下篇
上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...
- 线上 S1 故障是什么, 线上 S1 故障, 运维故障分级, 运维, 故障分级, P1 级别故障, 故障, P1 , S1
线上 S1 故障是什么 线上 S1 故障, 运维故障分级, 运维, 故障分级, P1 级别故障, 故障, P1 , S1 故障复盘 https://time.geekbang.org/column/a ...
- 从.net开发做到云原生运维(零)——序
1. 为什么要写这个系列的文章 大家看到标题的时候肯定会感觉到困惑,这个标题里的两件事物好像并不是很搭.说到.net开发大家一般都会想到asp.net做网站,或者是wpf和winform这类桌面开发, ...
- 从.net开发做到云原生运维(八)——DevOps实践
1. DevOps的一些介绍 DevOps(Development和Operations的组合词)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的 ...
- 新IT运维时代 | Docker运维之最佳实践-上篇
容器技术的发展可以分为两个阶段,第一个阶段聚焦在IaaS层,仅仅把容器当做更轻量级虚拟机来使用,解决了应用运行时进程级资源隔离的问题:随着Docker的出现,容器虚拟化才有了统一的平台,由此容器技术发 ...
- 详解Linux运维工具:运维流程管理、运维发布变更、运维监控告警
概述 应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作.服务监控.应用状态统计.日常服务状态巡检.突发故障处理.服务日常变更调整.集群管理.服务性能评估优化.数据库管理优化.随着应用 ...
- Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...
- 运维、linux运维是什么?
从不知道运维是什么 到后来接触了linux运维 后来玩遍了运维常用的各种开源软件发现原来运维是这么回事 又到了后来,运维真的是我理解的这些吗?会软件,会配置,会部署.会调优,会处理故障...但是总觉得 ...
随机推荐
- == 和 equals 的区别是什么
== : 它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象.(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址) equals() : 它的作用也是判断两个 ...
- IDEA环境编译Spring源码
一.下载源码 1.官网下载 官网地址 如下图 2.github git下载 github地址 如下图 3.gitee git下载(国内推荐使用) gitee地址 如图 查看对应的gradle版本 在下 ...
- 第二届算法、图像处理与机器视觉国际学术会议(AIPMV2024)
第二届算法.图像处理与机器视觉国际学术会议(AIPMV2024) 2024 2nd International Conference on Algorithm, Image Processing an ...
- gson转换对象对字段别名处理@SerializedName注解demo
/** * */ package json; import java.util.Date; import java.util.Objects; import com.autoyol.platformf ...
- FreeRTOS简单内核实现3 任务管理
0.思考与回答 0.1.思考一 对于 Cotex-M4 内核的 MCU 在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈? 会自动入栈的寄存器如下 R0 - R3:通用寄存器 R12:通用寄 ...
- fastadmin的导出到excel功能
正常的excel导出没什么问题,最近一直头疼的是怎么导出数据中包含图片,并且图片还是数组?????by user 悦悦 https://www.cnblogs.com/nuanai 1.导出的exce ...
- Linux下挂载NTFS格式的U盘
NTFS是Windows下的格式,在Linux下是识别不了的,要想在Linux上挂载NTFS格式的U盘需要安装软件以提供支持.软件名为ntfs-3g. 1.下载安装包 https://tuxera.c ...
- CLR via C# 笔记 -- 可空值类型(19)
1. 值类型的变量永远不会为null,所有需要使用System.Nullable<T> 2. 操作数是null,结构是null:==.!=操作数都为null,则返回true:<.&g ...
- 01-前端开发Vscode插件配置
01 自动保存配置 02 空格渲染方式 配置好以后,可以看到代码的空格有几个,以点的方式呈现,1个点表示1个空格 03 图标插件 VSCode Great Icons 04 缩进 推荐使用2 05 v ...
- 记录用C#写折半查找算法实现
折半查找算法 前言 最近要考试了,重新回顾一下之前学的算法,今天是折半查找,它的平均比较次数是Log2 n 思想 给定一个有序数组A[0..n-1],和查找值K,返回K在A中的下标. 折半查找需要指定 ...