虎年云原生落地技术趋势

今天是立春,虎年第一天。去年我写过一篇 牛年 dotnet云原生技术趋势[1],今天再来写一篇虎年云原生落地技术趋势,去年局限在.NET 平台上的云原生落地,我今年在去年探索云原生落地的基础上从多语言云原生技术落地的趋势来谈谈。

在 2020 年的时候,云原生理念就被提到得越来越多,但是真正呈现出爆发形态、真正被所有的云厂商、用户广泛使用的是在 2021 年。国内三大云厂商都在2020年发布了云原生2.0 路线图,而且这些头部厂商的云原生落地到达了一个里程碑式的关键节点,代表性事件就是各大互联网公司基本完成了云原生化,所有业务百分之百上云。云原生的核心技术如容器、微服务、服务网格等的可用性和成熟度都已经可以支撑起头部互联网的体量。每个行业的云原生进度不一样,头部互联网公司跑得比较靠前,基本都做到了全面云原生化。未来几年,其他行业会逐步追随互联网的脚步全面走向云原生化。

86baefb101f1f66a0486b615a1534ab4.png

随着直播、5G、IoT 等领域的兴起,让业务对于云的形态需求更高,大家希望云能够更贴近数据的产生点,因此相应的边缘云、本地云、混合云的形态越来越多。现在,整个云计算有一个很重要的趋势,就是呈现一云多形态的模式,用户在各个地方都能用到云计算的能力。但这也对云的基础设施提出了比较大的挑战。用户以前就是用一朵云,管理复杂度是可以接受,但多朵云形态后,挑战难度就比较大了。

云原生技术天然能够比较好地解决云变成多形态后的统一界面管理问题,包括混合云带来的复杂度挑战。下面两张图是我在2021年实践云原生的一个路线图总结:

e7db266e49ce57595a92d2cc58e5fd05.png

66c6bcdde876c257bff0df814f365de3.png

CNCF 里面有非常多的开源项目,里面的项目已经超过一千了。这些开源项目围绕着云计算在展开竞争,CNCF孵化项目成熟度模型分为三个级别,分别对应到鸿沟理论划分的三个目标客群:

  • 沙箱级(Sandbox):对应创新者群体

  • 孵化级(Incubating):对应早期使用者群体

  • 毕业级(Graduated):对应早期多数群体

outside_default.png

项目从孵化级向毕业级过渡最为关键,需要跨越鸿沟(The Chasm)。在此跨越过程中,孵化项目需要向有影响力的公司和组织证明自己提供的能力能够改进生产流程、提升效率、降低成本,并且足够稳定可靠以保证在生产环境使用。截至2022年2月3日,从CNCF成功毕业的项目有16个,进入孵化级别的是27个项目,具体参看CNCF的毕业和孵化项目[2]。

在2022年云原生在各行各业开始进入全面落地阶段,CNCF在推进云原生发展过程中已经形成了几大比较关键的标准:

02cfb70d13c0e8d9cdb07dc799fd4242.png

最早出现的是容器,解决了应用打包标准化和应用发布标准化的问题。在此之前,虚拟机等方式的标准化程度是不够的,Docker 终结了这一问题。随着 Docker 的不断演进和推广,在应用编排、资源调度等又出现了新的问题,当时的 Docker  Swarm、Mesos 和 Kubernetes 互相竞争,最后 Kubernetes 胜出,并带来了新的资源编排方面的事实标准。现在 Kubernetes 已经成为一个事实标准。而应用层之前也是百家争鸣的情况,每个企业都在做自己的云原生应用,现在有越来越多的开源标准出现,如OAM(Open  Application  Model) 和SMI(Service Mesh Interface)等,大家都在尝试定义应用层的标准, OAM 和 SMI 尚未形成事实标准,他们有成为事实标准的潜力,2022年就是非常关键的一年,在云原生项目落地的过程中以OAM 标准的代表项目Dapr 目前在多运行时框架领域是一个非常耀眼的项目,落地的案例也非常多了。云原生的多语言是必然趋势。国内后端开发最火的语言是Java,已经有很多公司(腾讯、字节)在用 Go 作为主要开发语言,PHP 的使用也非常广泛。每种语言的特点不太一样,很多企业会根据业务需要选择一种合适的语言。这时可能会出现多种语言,业务部门觉得用 Java/C#比较好,偏前端的想要 PHP 或者 Node.js,多语言在企业内部越来越普遍。开发人员想用什么语言就用什么语言,但是运维人员就会面临很大的挑战,如多语言环境下的服务治理怎么能统一做等。Java 之前在阿里基本处于统治地位,但现在阿里内部也多语言了。阿里收购了非常多的企业,如饿了么、飞猪、高德等,但不可能让所有并购进来的公司都改变编程语言,这是很难的。由于公司并购,阿里内的编程语言已经变得多元化了。企业足够大的话,就一定是多语言的。如果是初创公司或者体量还不够大,语言统一确实能带来便捷。所以阿里和微软主导了开源项目Dapr,详细内容可以参看 Dapr 在阿里云原生的实践[3], 高德 Serverless 平台建设及实践[4]。

云原生实践在支持多语言这个技术方案上还有Service Mesh,Service Mesh出现的时间上比Dapr 更长久, 目前也处于混战阶段,Istio 并不在CNCF 社区里,微软联合众多厂商在CNCF里提出了SMI(Service Mesh Interface), 主要的Service Mesh框架都实现了SMI,微软主导的Open Service Mesh 遵循SMI 规范,最近也发布了1.0 版本,我昨天体验后写了一篇体验文章 体验 正式发布 的OSM v1.0.0 版本[5],Open Service Mesh 相对于Istio 来说,确实很轻量。SMI 处理了所有你期望的标准服务 Mesh 功能,包括使用 mTLS 确保服务之间的通信安全,管理访问控制策略,服务监控等,Dapr 和 OSM 是非常好的一个实践多运行时架构的组合。

80b09a7404bd91a33686e7d4118e58ae.png

国内有很多企业已经在虚拟机、物理机环境使用Spring Cloud,这些企业转向云原生时,如果还是简单把spring cloud 部署到kubernetes 环境,spring cloud的很多基础架构能力是和kubernetes相重叠的,想充分享受kubernetes 带来的自动化方面的能力,最好的选择是卸下Spring Cloud,通过Dapr提供的分布式能力让解决方案在各种环境中自由适配,而且Spring Boot 版本可自主升级,不再与Spring Cloud 存在兼容性问题。

b0a58947414b185ca1261ef97441b3c0.png

我看到有些企业是为了技术而去做云原生,这样最后不一定有好的结果,更多时候还是先从业务价值角度出发考虑要做什么事情,再选择相应的技术。一方面,企业有业务驱动,便会有足够多的资源投入。另一方面,企业在做技术选型和落地的时候会有足够多的实践。从领域来讲,我给大家的建议就是先把基础打好,之后再完善一些生产必备的技能。容器技术是所有的基石,在这之后是一些比较关键的像可观测性、CICD、微服务等企业内部落地真正需要的一些关键技术。

  • [1]牛年dotnet云原生技术趋势:https://www.cnblogs.com/shanyou/p/14398499.html

  • [2]CNCF的毕业和孵化项目:https://www.cncf.io/projects/

  • [3]Dapr 在阿里云原生的实践:https://developer.aliyun.com/article/785943 

  • [4]高德 Serverless 平台建设及实践:https://xie.infoq.cn/article/686a83fccba14504517ec6fe5 

  • [5]体验 正式发布 的OSM v1.0.0 版本 : https://www.cnblogs.com/shanyou/p/15861828.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WdatePicker 设置日期第一个比第二个的日期小

WdatePicker 设置日期第一个比第二个的日期小 可以设置&#xff0c;日期只显示某一天的&#xff0c;比如只显示周一&#xff0c;和周日 <input id"Text1" class"Wdate" onFocus"WdatePicker({disabledDays:[0,2,3,4,5,6],maxDate:#F{$dp.$D(\Text2…

07-狄克斯特拉算法

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第7章 狄克斯特拉算法 上一章的广度优先搜索&#xff0c;找出的是段数最少的路径&#xff1b; 本章狄克斯特拉算法&#xff0c;找出的是最快的路径。 7.1 使用狄克斯特拉算法 步骤&#xff1a; 第…

聊聊mysql执行过程

在项目开发当中 &#xff0c;很多时候&#xff0c;我们的数据库应用优化都是从表层到里层的一个过程。比如一个查询写下来 &#xff0c;我们的优化方向大多时候都是先看方法执行的时间长短&#xff0c;然后再决定是否去优化它&#xff0c;下意识的第一步操作都是看是否命中索引…

01. Node js Hello world

2019独角兽企业重金招聘Python工程师标准>>> 01. Node js Hello world 环境安装 官网http://nodejs.org/ Node.js is a platform built on Chromes JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, no…

异常检测之浅谈入侵检测

打开微信扫一扫&#xff0c;关注微信公众号【数据与算法联盟】 转载请注明出处&#xff1a;http://blog.csdn.net/gamer_gyt 博主微博&#xff1a;http://weibo.com/234654758 Github&#xff1a;https://github.com/thinkgamer前言 由于业务关系&#xff0c;最近一段时间一直在…

企业知识库在跨地域团队协作中的价值

随着全球化进程的不断加速&#xff0c;越来越多的企业开始面临跨地域协作的挑战。在这种背景下&#xff0c;企业知识库作为一种重要的知识管理工具&#xff0c;对于提高团队协作效率、促进知识共享与创新具有不可替代的价值。接下来就说一下知识库在跨地域团队协作中的重要性及…

Asp-Net-Core开发笔记:接口返回json对象出现套娃递归问题

前言看了下推送记录&#xff0c;一个月前&#xff0c;OK&#xff0c;我又变成月更了o(╯□╰)o&#xff0c;这绝对不行&#xff01;[○&#xff65;&#xff40;Д&#xff65; ○]所以今天来更新了其实不是我懒得更新或者是太忙&#xff0c;其实是最近在写一篇很长的博客&…

spring之二——使用maven创建一个java project

2019独角兽企业重金招聘Python工程师标准>>> maven的安装及Eclipse maven插件安装这里不再说了&#xff0c;安装可以看这篇博客&#xff1a; http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html 需要注意的是&#xff0c;maven在w…

自从装了windows神器,再也不用羡慕mac了

1. 命令行神器 1.1 GOW Gow&#xff08;Gnu On Windows&#xff09;是Cygwin的轻量级替代品。 它使用一个方便的NSIS安装程序&#xff0c;安装超过100个非常有用的开源UNIX应用程序&#xff0c;编译为本机win32二进制文件。 它被设计为尽可能小&#xff0c;大约18 MB&#xff…

第1章 绪论

《数据结构》学习笔记 第1章 绪论 1.1 数据结构的研究内容 计算机计算数值时&#xff0c;一般经过一下步骤&#xff1a; 1.从具体问题抽象出数学模型&#xff08;实质是分析问题&#xff09;。 2.设计一个解次数学模型的算法。 3.编写程序&#xff0c;进行测试、调试&#xf…

C#中泛型约束的具体用法

前言上一篇博文简单介绍了泛型的约束&#xff0c;说是通过where<>来实现具体委托占位符的约束。那么约束又有什么类型和次序呢。这篇文章咱们一起看看。目前共5种类型的约束。类名&#xff1a;只有这个类型的类或从它继承的类才能用作类型实参class&#xff1a;任何引用类…

系统架构:Web应用架构的新趋势 前后端分离的想法

最近研究servlet&#xff0c;看书时候书里讲到了c/s架构到b/s架构的演变&#xff0c;讲servlet的书都很老了&#xff0c;现在的b/s架构已经不是几年前的b/s架构&#xff0c;其实b/s架构就是web应用开发&#xff0c;对于这样的架构我们现在应该考虑的是前端和后端的分离&#xf…

Asp-Net-Core学习笔记:身份认证入门

前言过年前我又来更新了~我就说了最近不是在偷懒吧&#xff0c;其实这段时间还是有积累一些东西的&#xff0c;不过还没去整理……所以只能发以前没写完的一些笔记出来就当做是温习一下啦PS&#xff1a;之前说的红包封面我还没搞&#xff0c;得抓紧时间了最近在准备搞一个我之前…

第1章 大数据挖掘及应用概论

《大数据挖掘及应用》学习笔记。 第1章 大数据挖掘及应用概论 数据挖掘是数据分析的提升。 1.1 大数据智能分析处理的普及和应用 1.1.1 云计算(cloud computing) 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可配…

浮点型数据的输出格式

2019独角兽企业重金招聘Python工程师标准>>> float的占位符为f%,默认输出六位小数&#xff0c;如果要限制位数的输出&#xff0c;可以用%.2f这样的格式&#xff0c;double同上。 如果是浮点型转换成整型不会进行四舍五入&#xff0c;浮点型的输出如果截取了位数进行…

linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)

一、介绍基于TCP协议通过socket实现网络编程常用API 1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解 地址分别是: 1)、http://blog.csdn.net/u011068702/article/details/56479927 2)、http://blog.csdn.net/u01106870…

VS2010下Boost1.55.0配置

为什么80%的码农都做不了架构师&#xff1f;>>> 打开程序菜单&#xff0c;选择Visual Studio Tools里面的 Visual Studio 命令提示。转到解压后的Boost所在目录&#xff0c;输入Bootstrap&#xff0c;执行完毕会生成b2.exe。输入&#xff08;目录下的bjam.exe和b2.…

Linux信号实践(3) --信号内核表示

信号在内核中的表示执行信号的处理动作称为信号递达&#xff08;Delivery&#xff09;&#xff0c;信号从产生到递达之间的状态&#xff0c;称为信号未决&#xff08;Pending&#xff09;。进程可以选择阻塞&#xff08;Block&#xff09;某个信号。被阻塞的信号产生时将保持在…

第2章 数据认知与预处理

《大数据挖掘及应用》学习笔记。 第2章 数据认知与预处理 2.1 数据分析的定义和流程 数据分析(data analysis)是指用适当的统计分析方法对收集来的大量数据进行分析和解释&#xff0c;提取出有用的信息形成结论&#xff0c;从而对数据加以详细研究和概括总结的过程。 2.1.1 如…

9 C++ Boost 多线程,线程同步

线程的创建 boost_thread,boost_system 多线程的创建 线程的参数传递 线程的创建方式 线程的join 加入join,回收线程线程中断 线程中断2, 线程组 boost 线程的死锁 boost 线程递归锁 线程互斥锁,线程同步 unique_lock 锁,离开作用域自动释放 unique_lock 锁 示例 2,可以显式的释…