首页 > 其他分享 >【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生

【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生

时间:2024-04-19 11:58:08浏览次数:20  
标签:原生 CNCF 一篇 容器 文章 K8s

【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生

云原生,相信这个名词大家并不陌生;云原生在近期可谓是爆火,伴随云计算的滚滚浪潮,云原生(CloudNative)的概念应运而生,云原生很火,火得一塌糊涂。可是现在很多人还是不知道什么是云原生,所以今天我们就来聊一聊近期很火的这个名词:云原生吧 。

大家平时经常提到云原生,却鲜少有人告诉你到底什么是云原生,若是找资料来看,读完大多会感觉云绕雾罩,一知半解,总之虚得很;甚至会让你一度怀疑自己的智商,不过我对于读不懂的文章,一律归因于写文章的人太蠢,当然这不一定是事实,但这样的思考方式能让我避免陷入自我怀疑的负面情绪。

其实,云原生之所以解释不清楚,是因为云原生没有确切的定义,云原生一直在发展变化之中,解释权不归某个人或组织所有。作为云计算领域的一个新兴概念,云原生现在频繁出现在我们的视野中。很多互联网大咖把它奉为至宝,走到哪说到哪,所以我们就先来看一下云原生的起源吧。

云原生的起源

云原生的概念最早开始于2010年,在当时 Paul Fremantle 的一篇博客中被提及,他主要将其描述为一种和云一样的系统行为的应用的编写,比如分布式的、松散的、自服务的、持续部署与测试的。当时提出云原生是为了能构建一种符合云计算特性的标准来指导云计算应用的编写。

后来到2013年 Matt Stine在推特上迅速推广云原生概念,并在2015年《迁移到云原生架构》一书中定义了符合云原生架构的特征:12因素、微服务、自服务、基于API协作、扛脆弱性。而由于这本书的推广畅销,这也成了很多人对云原生的早期印象,同时这时云原生也被12要素变成了一个抽象的概念。

那么接下来我们就来介绍一下CNCF。

CNCF,全称为Cloud Native Computing Foundation,中文译为“云原生计算基金会”。

这个基金会成立于2015年12月11日,属于Linux基金会旗下。

CNCF致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。

所以说,CNCF是云原生领域影响力最大最有话语权的组织。

 

说起CNCF的故事,还要从Cgroups(control groups,控制组群)开始说起。

十六年前,也就是2004年,谷歌开始使用容器技术。到了2006年,谷歌发布了Cgroups,最初叫Process Container(进程容器)。

Process Container的目的非常直白,它希望能够像虚拟化技术那样,给进程提供操作系统级别的资源限制、优先级控制、资源审计能力和进程控制能力。

带着这样的设计思路,Process Container发布后第二年就进入了Linux内核主干。

因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,就更名为Control Groups,也就是Cgroups。

2013年,Docker项目正式发布,2014年,K8s项目也正式发布。

K8s项目的初衷,就是提供一种方式去帮助大家方便、快速、优雅地管理容器。(K8s是云原生的基石,后面会细讲。)

在Google和Redhat发布了K8s之后,这个项目的发展速度非常之快。

2015年,由Google、Redhat以及微软等大型云计算厂商以及一些开源公司共同牵头成立了CNCF云原生基金会。

CNCF成立之初,就有22个创始会员,而且K8s也成为了CNCF托管的第一个开源项目。

 CNCF基金最初对云原生定义是也是深窄的,当时把云原生定位为容器化封装+自动化管理+面向微服务:

 
  1.   The CNCF defines “cloud-native” a little more narrowly,
  2.   to mean using open source software stack to be containerized,
  3.   where each part of the app is packaged in its own container,
  4.   dynamically orchestrated so each part is actively scheduled
  5.   and managed to optimize resource utilization,
  6.   and microservices-oriented to increase the overall agility
  7.   and maintainability of applications.
 
 

这主要因为CNCF基金会在当时的核心拳头软件就是 k8s,因此在概念定义上主要是围绕着容器编排建立起来的生态。其实这也是为什么我们可以看到 CNCF 定义云原生的时候有时感觉就是再说容器生态。

2017年,Matt Stine 在接受 InfoQ 采访时,对云 Cloud Native Architecture 的定义做了小幅调整,具体有以下六个特质:

 
  1.   模块化(Modularity)
  2.   可观测性(Observability)
  3.   可部署性(Deployability)
  4.   可测试性(Testability)
  5.   可处理性(Disposability)
  6.   可替代性(Replaceability)
 
 

【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生【云原生】什么是云原生?如何学习云原生?一篇文章带你了解云原生

标签:原生,CNCF,一篇,容器,文章,K8s
From: https://www.cnblogs.com/exd1189/p/18145506

相关文章

  • 云原生技术学习路线图 初阶+中阶+高阶
    一.运维技术栈1.1运维高薪的技术点后端开发涉及到的基础设施技术:docker,k8s,servicemesh,yaml式的声明APICI/CD:jenkins,argo,Tekton,gitlab自动化工具:ansible,shell,ELK微服务:服务网格高薪技术点,重点研究这4个。当然云原生的技术栈内容很多,不可能面面俱到,那就捡重点的进行......
  • 【云原生】Spring Cloud微服务学习路线汇总
    SpringCloud是什么?简单来说SpringCloud是一系列框架的组成集合。主要利用的我们现在主流应用的SpringBoot框架开发便利性、巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以利用SpringBoot的开发风格做到......
  • 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装
    1、先从K8s不是什么讲起首先,K8s并不是一个传统意义上的PaaS平台即服务的工具,它充分给使用者提供了很多很多选择的空间。不限制支持的应用程序类型,K8s并不插手应用程序框架,也不限制支持的语言(如Java,Python,Ruby等),只要应用符合12因素即可。也就是说,只需要应用可以在......
  • 写一个监控采集公众号文章的插件
    原文链接:https://mp.weixin.qq.com/s/f8zbM6wMld3koqjaFbCuxw前言微信关注了很多技术类的公众号,但是一直都没看,所以想先把文章下载下来,放着以后可能一定会看。之前写的Python微信机器人系列文章里提到了如何hook微信的实时消息,实时消息里也包含了公众号文章的推送,可以获取到......
  • C#的窗体假关闭操作例子 - 开源研究系列文章
          晚上编码的时候,想到了以前编写的窗体关闭的事情,就是带托盘图标的应用,有一个主显示操作窗体,但是主窗体点击关闭按钮的时候,实际上是窗体隐藏而非真正关闭,这个在其它的一些应用程序里有这个效果。于是就想到了这个例子,记录下来,如果其他读者也有这个问题,那直接复用此例子......
  • 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来
    背景介绍hi大家好,我是三合,作为一个非著名懒人,每天上完班回到家,瘫在沙发上一动都不想动,去开个灯我都嫌累,此时,智能家居拯救了我,只需要在手机点点点,开关灯,空调,窗帘就都搞定了,一开始我用的是开源的homeassistan,俗称HA,搭配上hass-xiaomi-miot以及hap-python这几个插件,就可以将米家的......
  • 云原生之在kubernetes集群下部署mysql应用
    一、Mysql介绍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。MySQL是一种开源的关系型数据库管理系统,可将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,从而加快了访问速度并提高了灵活性。MySQL使用了标准的SQL语言形式。支持大型的数据库,可以处理......
  • 【Python微信机器人】写一个监控采集公众号文章的插件
    原文链接:https://mp.weixin.qq.com/s/f8zbM6wMld3koqjaFbCuxw前言弄了个视频号下载后,同一个问题每天都会被问,回答的有点烦了。想了想根本原因还是缺少一个交流平台,微信群的话,刚进群的看不到之前的聊天记录。想整个知识星球,发现只能弄个收费的,免费的需要激活码才能创建。而有......
  • C#判断窗体是否被遮挡 - 开源研究系列文章
    https://www.cnblogs.com/lzhdim/p/18122548  上次发布了托盘窗体的显示与隐藏的博文:,但是在测试窗体最大化的时候发现窗体没有隐藏,调试了下知道是窗体是否被遮挡这个函数的判断有问题。于是就研究了该代码,然后联系了该操作类的作者,也是博客园的园友,然后在他的帮助下将操作类进......
  • OpenTelemetry入门看这一篇就够了
    分布式跟踪可以帮助查看整个请求过程中服务之间的交互,并可以让我们深入了解系统中请求的整个生命周期。它帮助我们发现应用程序中的错误、瓶颈和性能问题。OpenTelemetry可以用于从应用程序收集数据。它是一组工具、API和SDK集合,我们可以使用它们来检测、生成、收集和导出遥测......