什么是CNCF云原生

news/2023/5/28 9:07:36

一、CNCF简介

CNCF:全称Cloud Native Computing Foundation(云原生计算基金会),成立于2015年12月11日,是一个开源软件基金会,它致力于云原生(Cloud Native)技术的普及和可持续发展。

成立CNCF这个组织的初衷或者愿景,简单说:

  • 推动云原生计算可持续发展;
  • 帮助云原生技术开发人员快速地构建出色的产品;

CNCF Landscape路线图

CNCF Landscape最重要的产出包括一个路线图和一个全景图。路线图(Trail Map)是CNCF对云原生用户使用开源项目以及云原生技术的推荐过程。在路线图的每个步骤中,用户都可以选择供应商支持的产品或自己动手使用开源项目。

img

整个路线图分成了十个步骤,每个步骤都是用户或平台开发者将云原生技术在实际环境中落地时,需要循序渐进思考和处理的问题:

  1. 容器化。目前最流行的容器化技术是Docker,你可以将任意大小的应用程序和依赖项,甚至在模拟器上运行的一些程序,都进行容器化。随着时间的推移,你还可以对应用程序进行分割,并将未来的功能编写为微服务。
  2. CI/CD(持续集成和持续发布)。创建CI/CD环境,从而使源代码上的任意修改,都能够自动通过容器进行编译、测试,并被部署到预生产甚至生产环境中。
  3. 应用编排(Kubernetes)。Kubernetes是目前市场上应用编排领域被最广泛应用的工具,Helm Charts可以用来帮助应用开发和发布者用于升级Kubernetes上运行的应用。
  4. 监控和分析。在这一步中,用户需要为平台选择监控、日志以及跟踪的相关工具,例如将Prometheus用于监控、Fluentd用于日志、Jaeger用于整个应用调用链的跟踪。
  5. 服务代理、发现和治理。CoreDNS、Envoy和LInkerd可以分别用于服务发现和服务治理,提供服务的健康检查、请求路由、和负载均衡等功能。
  6. 网络。Calico、Flannel以及Weave Net等软件用于提供更灵活的网络功能。
  7. 分布式数据库和存储。分布式数据库可以提供更好的弹性和伸缩性能,但同时需要专业的容器存储予以支持。
  8. 流和消息处理。当应用需要比JSON-REST这个模式更高的性能时,可以考虑使用gRPC或者NATS。gRPC是一个通用的RPC(远程调用)框架(类似各种框架中的RPC调用),NATS是一个发布/订阅和负载均衡的消息队列系统。
  9. 容器镜像库和运行环境。Harbor是目前最受欢迎的容器镜像库,同时,你也可以选择使用不同的容器运行环境用于运行容器程序。
  10. 软件发布。最后可以借助Notary等软件用于软件的安全发布。

CNCF全景图(Landscape)

CNCF Landscape路线图从实践步骤上帮助用户梳理了整个云原生应用的最佳流程。然而整个实践过程中的每个环节,用户都需要了解有哪些具体的软件和产品选择,这就是CNCF Landscape全景图发挥作用的地方了(https://landscape.cncf.io/)。

img

这张全景图试图从云原生的层次结构,以及不同的功能组成上,让用户了解云原生体系的全貌,并帮助用户在不同组件层次去选择恰当的软件和工具进行支持。

二、云原生简介

云原生(cloud native)是一种基于云的基础之上的软件架构思想,以及基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。

  • 云原生从字面意思上来看可以分成云和原生两个部分。
  • 云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS,、PaaS和SaaS。
  • 原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。

如何开发出适合于在云环境里面部署的程序呢?其实主要是需要遵循几个开发原则:

img

1)容器化(docker+k8s)

容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈了,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是docker和k8s。

2)微服务

微服务解决的是我们软件开发中一直追求的低耦合+高内聚,与微服务对应的是我们传统的单体应用。微服务还建议使用RESTful API通信。

3)无服务(Serverless)

无服务器架构并不是说,未来不再需要服务器,而是不再着重关注底层的基础架构,更多的注意力可以放在和业务更相关的一些逻辑实现上。例如一些函数的代码片段,平台自动根据负载按需部署和启动,以及自动伸缩代码逻辑来满足业务处理的需求。

4)DevOps

DevOps(Development和Operations的组合词)即开发、运维一体化。涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。

  • 维基百科对DevOps的定义比较拗口。其实往简化里讲DevOps是提倡开发和IT运维之间的高度协同,从而在完成高频率部署的同时,提高生产环境的可靠性、稳定性、弹性和安全性。
  • 从另外一个维度,广义上来说,DevOps不仅需要打通开发运维之间的部门墙,我们认为DevOps更多的需要从应用的全生命周期考虑,实现全生命周期的工具全链路打通与自动化、跨团队的线上协作能力

5)Service Mesh(服务网格)

Service Mesh是近年兴起的一个话题,在容器微服务的基础上,通过Service Mesh可以让用户更精细、更智能的去管理服务之间的通讯。ServiceMesh社区的旗舰项目Istio,当前的热度正在迅速的飙升。

6)云(Cloud)

云是云原生的基础,没有云也就没有云原生。没有对云正确地理解,也不可能对云原生有正确的打开方式。对于非技术人员来说,至少要理解云的多种不同的服务模型,比方IaaS、PaaS、SaaS以及各种服务模型的应用场景和价值。

【总结】

因此我们也可以简单地把云原生理解为:云原生 = 容器化(docker+k8s) + 微服务(Microservices)+ 无服务(Serverless) + DevOps + Service Mesh(服务网格) + 云(Cloud)

三、总结

  • 我们不难发现,云原生是一个很宽泛的概念,想要开发一个支持云原生的应用并不难,可能就是简单的实现可基于容器部署、使用Kubernetes进行编排与调度,集成CI/CD工具以及Prometheus监控工具等
    个支持云原生的应用并不难,可能就是简单的实现可基于容器部署、使用Kubernetes进行编排与调度,集成CI/CD工具以及Prometheus监控工具等
  • 但是,想要构建一个真正云原生的系统,要求我们考虑到系统的方方面面,我们不仅要掌握简单的开发技能,还要在SDN、SDS、分布式调度甚至计算机基础架构等诸多领域有所了解,要能够根据场景制定出最合适的架构方案。各方面的综合能力的提升才能在云原生时代构建出云原生就绪的应用或系统

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

倒悬的地平线读后感

倒悬的地平线读后感 作者:马克李维 神经科学专业在校大学生霍普平生的梦想,就是根除阿尔茨海默病及所有类似疾病。她的男友——医学天才乔西则致力于神经链接项目的研究,期待有朝一日能够实现记忆的复制与转存,从而重建大脑系统…

《精进》的读后感作文2600字

《精进》的读后感作文2600字: 首先,我想先分享我读这本书的过程,我是一名大一的学生,在我高考完的暑假,有一次一位知乎用户的朋友推荐了这本书。当时我看了这本书的封面,有一句话非常的吸引我“如何成为一个…

《活着》读后感4500字

《活着》读后感4500字: 听说张艺谋在转型拍商业电影前,拍过一部电影《活着》,被誉为是他拍得最好的电影。想看已经有大半年了,却一直没看。年底有空,想培养一下“艺术细胞”去学习下,看了下电影内容简介&am…

年底了,感谢大家2022年的支持,虚竹哥送10本JAVA好书

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主&#x1f3…

Pico 4 爆了,但没完全爆

作者 | 辰纹 来源 | 洞见新研社 谈起元宇宙,Pico是无法忽略的存在。 Pico的高关注度不光光持续走高的出货量,更在于其在字节跳动元宇宙宏图大业中的核心地位。 数据显示,今年Q2,Pico总计卖出超过50万台VR头显产品,仅…

【Vue3.0】Vue3.0简介-指令-过滤器-案例D2.0

【Vue3.0】Vue3.0简介-指令-过滤器-案例 一、Vue3.0简介 1.1、vue3.0与vue2.0对比 vue2.0中绝大多数的API与特性,在vue3.0中同样支持。但是vue3.0中新增了特有的功能,也废弃了某些2.0的旧功能。【新增】 组合式API多根节点组件更好的TypeScript支持 【…

htc vive 安装和使用

本篇简单介绍htc vive的安装和使用。 htc vive安装 第一次使用htc vive你可以在官网 https://www.viveport.com/ 下载viveport按照提示安装htc vive 下载过程中会安装SteamVR, SteamVR是htc vive的运行插件。 当然你如果会安装也可以直接安装Steam,在Steam中安装SteamVR Setup …

如何向Vive Port中上传htc vive应用

一、导出可执行文件 1、File-->Build Settings-->设置信息-->Build 二、上传到Vive Port 1、打开vive port官网,注册并登录https://developer.viveport.com 2、选择标签“开发者”-->成为开发者 3、注册或者登入-->添加新内容 4、填写内容并点击“…

成功解决设置vive cosmos无线套件遇到的三个问题

成功解决设置vive cosmos无线套件遇到的三个问题1 需要安装以下软件:2 在无线的条件下,电源不能边充电边使用3 找不到vive Console4.目前遇到的问题5 官网1 需要安装以下软件: 下载网址: https://www.vive.com/cn/setup/ 2 在无线…

SteamVR+VRTK+Htc Vive入门

5月份为了做学校的校庆VR被迫摸了VR从开始接触到能够简单的做出个项目差不多半个月时间 基本天天下课就钻一号机上冲VR一整天都带这个Vive emmmm现在想来有种看傻逼的感觉(不是 因为VRTK不支持SteamVR2.0所以鄙人并不建议使用,起码等VRTK支持之前都不建议…

“元宇宙”基础知识汇总

元宇宙即将到来,无论您是否准备好。随着技术迅猛发展,我们很容易迷失方向——或者被抛在后面,但没有必要恐慌。本文为大家准备了元宇宙基础知识汇总,由元创元宇宙研究院融合了目前网络对元宇宙的描述和分析的多份重点相关报告&…

想驯服上古神兽吗?VR游戏《山海猎人》已登陆Viveport

这款游戏以东方末日为题材,《山海经》中的奇异鸟兽、山川湖泊幻化其中。 打僵尸类VR游戏玩腻了,找不到具有新意的游戏IP,不妨试一试今天登陆Viveport的一款游戏——《山海猎人》。顾名思义,这款游戏改编自中国志怪古籍《山海经》&#xff0c…

HTC将Viveport推向全球,这是要“反击”Valve的节奏?

全面布局VR内容,HTC宣布自家的VR应用商店Viveport全球上线。 8月5日,Valve把空间定位技术Lighthouse开放第三方授权,在VR圈子内内掀起一波高潮。Lighthouse目前最大受益者HTC当晚就出来解释这是两家共同决定的结果,汪丛青的大概意…

HTC最新推出VIVEPORT™虚拟现实应用商店

HTC Vive团队在9月30日发布重大新闻,宣布 Viveport虚拟现实应用商店在全球范围内正式上线。用户可在应用商店内发现、创造、连接和体验自己喜爱和需要的内容。Viveport应用商店提供丰富的VR体验,涵盖艺术、创意工具、设计、教育、时尚、音乐、体育、旅行…

html5c与vr哪个好,SteamVR对比Viveport:哪款更适合用户?

对一名HTC Vive用户来说,购买数字游戏的网上官方商城有两个。Valve的SteamVR平台和最近开放的Viveport,哪个最适合你?下面是他们所提供内容的仔细分析!什么是SteamVR?SteamVR是Valve内部的VR(虚拟现实)平台&#xff0c…

HTC推出了VR专属应用商店VIVEPORT

HTC Vive为了能够给用户提供除了游戏之外的其他虚拟现实的体验,为此HTC特推出了HTC VR应用商店Viveport,目前该应用商店经已环球上线。 2015年3月,HTC宣告了与Valve分工的虚拟实际头显设施HTC Vive,售价为800美元。自从推出之外&a…

【go语言http2.0client源码分析】

go语言之http2.0client源码分析client.GetNewRequestdo requesthttp2.Transport.RoundTripGetClientConnnewClientConnReadFrameprocessHeaderswrite request上一篇分析了http2.0的实现之后,这里分析一下client的实现。 package mainimport ("crypto/tls""cryp…

turtle.right()turtle.seth()

turtle.left() import turtle as t for i in range(3):t.left(i*120)t.fd(200)turtle.seth() import turtle as t for i in range(3):t.seth(i*120)t.fd(200)

python中的seth函数_Python入门——turtle库的使用

turtle库的使用 库引用&#xff1a; import<库名> <库名>.<函数名>(<函数参数>) form<库名>import<函数名> form<库名>import* <函数名>(<函数参数>) import<库名>as<库别名> <库别名>.<函数名>…

python程序设计基础之turtle库制作简单的小图片

&#xff08;turtle基础&#xff09;一条小蛇 #我做了一条简单的小蟒蛇 from turtle import * setup(650,350,200,200) pu() fd(-250) pd() pensize(25) pencolor(red) seth(-40) for i in range(4):circle(40,80)pencolor(blue)circle(-40,80)pencolor(purple) circle(40,80/…