云原生的英文名是cloud native,native 就是土著的意思,也就是土著对当地的环境是非常适应的,在云的环境和传统的数据中心是非常不同的,云原生就是要用的云的技术来构建应用, 利用云的技术来降低种端服务的风险和提高可用性,.NET Core和kubernetes 同年诞生发展, 2018年kubernetes 已经奠定了在容器编排领域的王者地位,2019年之后越来越多的企业选择基于云原生的技术或管理方法,把业务生于云或迁移到云平台,从而享受云的高效和持续的服务能力。

随着2021年kubernetes 的进一步普及, 微服务构建也转向了以Sidecar 模式,这种Sidecar 模式正在以更加迅猛的势头将中间件领域的能力下沉至 Kubernetes 这个新一代的应用基础设施当中,除了已经如火如荼的 Istio 对流量治理领域的颠覆,微软在CNCF 社区开源了 Open Service Mesh ,在Service Mesh这个领域处于战国时期,各种框架百花齐放。而与此同时, OAM 在微软的姊妹项目 Dapr 则直接拉齐了 Kubernetes 与中间件在“服务发现与绑定”侧的距离。所有这一切背后的用户动机是非常清晰的:云原生时代的中间件,既要语言无关,也要平台无关。

在所有问题上,对于任何给定的项目而言,正确的方法都可能介于两个极端之间(要么微服务架构,要么单体架构),微服务的构建在企业软件设计中正在取得平衡,不会再走向极端,而是接受了微服务的真正内涵,既与语言无关,又与平台无关,选择适合自己团队背景的技术构建云原生应用,对于dotnet 技术背景的团队在构建云原生应用,.NET 6为你提供了很好的技术底座。

  • 体积更小:对于微服务分布式架构而言,更小的体积意味着更少的下载带宽,更快的分发下载速度,.NET 6的镜像体积都很小,alpine的镜像更小,带上应用程序通常80M。

  • 启动速度更快:对于传统单体应用,启动速度与运行效率相比不是一个关键的指标。原因是,这些应用重启和发布频率相对较低。然而对于需要快速迭代、水平扩展的微服务应用而言,更快的的启动速度就意味着更高的交付效率,和更加快速的回滚。尤其当你需要发布一个有数百个副本的应用时,缓慢的启动速度就是时间杀手。对于Serverless 应用而言,端到端的冷启动速度则更为关键,即使底层容器技术可以实现百毫秒资源就绪,如果应用无法在 500ms 内完成启动,用户就会感知到访问延迟。

  • 占用资源更少:运行时更低的资源占用,意味着更高的部署密度和更低的计算成本。.NET 6的 CLR启动速度非常快,降低启动时资源消耗,可以减少资源争抢,更好保障其他应用 SLA。

  • 支持水平扩展:.NET 6默认更好的支持Docker资源限制,官方团队也在努力让.NET 6成为真正的容器运行时,使其在低内存环境中具有容器感知功能并高效运行。随着内存成本的下降和虚拟化的流行,大内存配比已经成为趋势。所以我们一般是采用水平扩展的方式,同时部署多个应用副本,在一个计算节点中可能运行一个应用的多个副本来提升资源利用率。

上面说了.NET 6 在云原生方面所完成的蜕变,很多人可能会以Java生态丰富来说明Java的种种优势,.NET 6相对于Java 17在云原生时代有太多的优势,.NET团队早在2014年完成转型,在云原生时代完成了蜕变,和Java相比已经是不同的世界,.NET更多的向Go、Rust等轻量级平台靠齐。随着 Dapr 在2021年2月份发布了1.0版本,它为我们提供了一组构建块和支持工具,可帮助我们以易于部署和可重复的方式实现关键的微服务设计模式,有了Dapr的支持,再来谈Java 生态丰富就有点可笑。

Dapr 当前有7大模块,每个模块都是为云原生应用开发的特定问题准备的,其中核心模块是Actor。

Actor 是一种并发编程的模型,Actor 表示的是一个最基本的计算单元,封装了可以执行的行为和私有状态。actor 之间相互隔离,它们并不互相共享内存,也就是说,一个 actor 能维持一个私有的状态,并且这个状态不可能被另一个actor所改变。在 actor 模型里每个 actor 都有地址(信箱),所以它们才能够相互发送消息。每个 actor 只能顺序地处理消息。单个actor不考虑并发。

Dapr 中 actor 是虚拟的,它们并不一定要常驻内存。它们不需要显式创建或销毁。dapr actor runtime 在第一次接收到该 actor ID 的请求时自动激活 actor。如果该 actor 在一段时间内未被使用,那么 runtime 将回收内存对象。如果以后需要重新启动,它还将还原 actor 的一切原有数据。

Actor placement service 为系统提供了 actor 分发和管理,placement 会跟踪 actor 类型和所有实例的分区,并将这些分区信息同步到每个 dapr 实例中,并跟踪他们的创建和销毁。

Dapr的Virtual Actor 源自dotnet的老牌开源项目Orleans:https://github.com/dotnet/orleans。Orleans 更像是Spring Cloud构建微服务的体系,局限在.NET社区里,如果你喜欢使用Orleans 构建微服务,最近正好出版了一本Orleans的中文书《Orleans:构建高性能分布式Actor服务》 ,Dapr Actor 把 Orleans 带到所有的社区,如果你是用java,可以使用spring boot + dapr actor 写业务,这里可以给你一个案例,就是深圳的 行云创新他们就是用的这个组合,具体可以参考b站视频《直播回顾:Dapr——云原生开发新思路》。

.NET 生态系统的蜕变之 .NET 6云原生相关推荐

  1. 直击KubeCon 2018 |云原生正在改变你的衣食住行

    云计算从不被看好到成长为势不可挡的技术潮流,仅仅用了十年的时间.如今"云原生"又被企业以及开发者奉为圭臬,并被认为是云计算的未来. 阿里云容器技术负责人易立认为云计算有三个阶段:云 ...

  2. 【重识云原生】第一章——不谋全局不足以谋一域

    云原生体系知识地图大纲: ​ 锲子 云原生概念这几年非常火爆,本人因有幸参与公司云原生转型项目调研,开始接触这一庞大技术体系,再通过与同业.各大头部云厂商超过150场的密集研讨交流,方得初窥全貌.同时 ...

  3. 云原生在京东丨揭秘五大云原生项目在京东的落地实践

    如今,云原生被企业和开发者奉为一种标准,并被认为是云计算的未来. 严格来说,云原生并不是一个产品的名称,而是一套技术体系和一套方法论,它包括 DevOps.持续交付.微服务.容器.敏捷基础设施等内容. ...

  4. Go语言云原生与微服务(一)云原生架构

    Hello,我是普通Gopher,00后男孩,极致的共享主义者,想要成为一个终身学习者.专注于做最通俗易懂的计算机基础知识类公众号.每天推送Golang技术干货,内容起于K8S而不止于K8S,涉及Do ...

  5. 这大概是今年介绍云原生最清晰明了的文章!

    2019 年 6 月 24 日至 26 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCo ...

  6. 进击的.NET 在云原生时代的蜕变

    你一定看过这篇文章 <进击的 Java ,云原生时代的蜕变>,  本篇文章的灵感来自于这篇文章.北京时间9.24 就将正式发布.NET Core 3.0, 所以写下这篇文章让大家全面认识. ...

  7. linux history 看更多历史记录_每周开源点评:定义云原生、拓展生态系统,以及更多的行业趋势 | Linux 中国...

    导读:每周关注开源社区和行业趋势. 本文字数:1527,阅读时长大约:2分钟https://linux.cn/article-12473-1.html作者:Tim Hildred译者:Xingyu.W ...

  8. 进击的 Java ,云原生时代的蜕变

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 易立 来源 | 公众号「阿里巴巴云原生」 导读:云原生时代的来临,与Java 开发 ...

  9. 阿里技术专家:进击的 Java ,云原生时代的蜕变

    作者| 易立 阿里云资深技术专家 导读:云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的.然而,本文的作者却认为云原生时代,Java 依然可以胜任&qu ...

最新文章

  1. 干货 | 22道机器学习常见面试题目
  2. java性能权威指南中文_Java性能权威指南读书笔记--之一
  3. mysql的题_MySQL练习题
  4. 推荐几个机器学习算法及应用领域相关的中国大牛:
  5. java applet socket_Java swing applet中使用的套接字
  6. Java企业面试算法新得体会之3二叉树问题24问
  7. 800名员工被隔离,韩国半导体巨头紧急回应:工厂运营不受影响
  8. 15.Object Manager
  9. Mybatis中javaType和jdbcType对应和CRUD例子
  10. java 包之 BeanUtils包的使用
  11. 4.Nginx优化,谁用谁说好
  12. 记一次对微信引流网站的简单渗透测试
  13. 团队协助 开源项目_几款研发团队协作工具对比
  14. quarkus实战之四:远程热部署
  15. Not in GZIP format异常
  16. 宿州计算机学院录取分,宿州学院录取分数线2021是多少分(附历年录取分数线)
  17. Win10如何重置ClearType设置,使其恢复系统默认值?
  18. 需求调研报告模板_2020年预焙阳极行业市场深度调研及投资前景预测分析报告-电解铝需求仍保持增长态势...
  19. 排序系列一: 选择排序法
  20. FPGA初探(五)之两位数码管显示

热门文章

  1. Python 日期格式相关
  2. html5/css3响应式布局介绍
  3. XML与web开发-01- 在页面显示和 XML DOM 解析
  4. adb不识别设备(手机)的若干情形及解决方法
  5. k64 datasheet学习笔记12---System Integration Module (SIM)
  6. C#构造函数、操作符重载以及自定义类型转换
  7. ActiveMQ无法启动
  8. 《DOS命令全集(中英文对照)》CHM版.CHM
  9. 开源播放器 Banshee 发布 1.0 beta 2
  10. android 局域网邻居,局域网内无邻居 它们去哪儿了?