请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

CNCF官方大使张磊:什么是云原生?

  [复制链接]
查看3263 | 回复19 | 2019-12-3 18:08:30 | 显示全部楼层 |阅读模式
作者|张磊 阿里云容器平台高级技能专家,CNCF 官方大使
编者说:
从 2015 年 Google 牵头建立 CNCF 以来,云原生技能开始进入公众的视线并取得快速的发展,到 2018 年包罗 Google、AWS、Azure、Alibaba Cloud 等大型云盘算供应商都到场了云原生基金会CNCF,云原生技能也从原来的应用容器化发展出包罗容器、Service Mesh、微服务、不可变根本办法、Serverless、FaaS 等浩繁技能方向,CFCF 旗下也席卷了越来多的开源项目。
Kubernetes 作为 CNCF 的第一个项目从诞生之初就就令人瞩目,Kubernetes 由 Google 工程师基于 Google 内部多年集群管理体系 Borg 的计划经验,联合云盘算期间的根本办法特点重新计划而得,旨在资助企业办理大规模 IT 根本办法的应用容器编排困难。Google 在 2014 年 6 月开源Kubernetes 以后,在 Redhat、Microsoft、Alibaba 等厂商和浩繁开源爱好者共同的努力下,发展为现在容器编排范畴的究竟尺度,极大的推动了云原生范畴的发展。
在体系先容什么是云原生,云原生对开辟者来说意味着什么,我们先从云原生技能发展简史开始讲起。
云原生技能发展简史



  • 2004年— 2007年,Google 已在内部大规模地使用像 Cgroups如许的容器技能;
  • 2008年,Google将 Cgroups归并进入了Linux内核主干;
  • 2013年,Docker项目正式发布。
  • 2014年,Kubernetes项目也正式发布。如许的缘故因由也非常轻易理解,由于有了容器和Docker之后,就须要有一种方式去资助各人方便、快速、优雅地管理这些容器,这就是Kubernetes项目标初志。在Google和Redhat发布了Kubernetes之后,这个项目标发展速度非常之快。
  • 2015年,由Google、Redhat以及微软等大型云盘算厂商以及一些开源公司共同牵头建立了CNCF云原生基金会。CNCF 建立之初,就有22个创始会员,而且Kubernetes也成为了CNCF托管的第一个开源项目。在这之后,CNCF的发展速度非常迅猛;
  • 2017年,CNCF 到达170个成员和14个基金项目;
  • 2018年,CNCF建立三周年有了195个成员,19个基金会项目和11个孵化项目,云云之快的发展速度在整个云盘算范畴都好坏常有数的。
云原生技能生态现状

因此,现在我们所讨论的云原生技能生态是一个巨大的技能聚集。CNCF有一张云原生全景图(https://github.com/cncf/landscape),在这个全景图里已经有200多个项目和产物了,这些项目和产物也都是和CNCF的观点所契合的。

以是,如果以这张全景图作为配景,加以思索就会发现,我们本日所讨论的云原生实在重要谈论了以下几点:

  • 云原生基金会—— CNCF;
CNCF (云原生基金会)是现在云盘算范畴最乐成的
开源基金会之一,是 Kubernetes,containerd,etcd
,Envoy 等着名开源项目标托管基金会

  • 云原生技能社区
CNCF 现在托管的 20 + 正式项目共同构成了当代云
盘算生态的基石。此中 Kubernetes 项目是全天下第
四活泼的开源项目

  • 云原生技能财产
除了前面两点之外,现在环球各大公有云厂商都已经支持了Kubernetes。别的,另有100多家技能创业公司也在连续地举行投入,总体市场于2021年逼近 1000 亿美元。现在阿里巴巴也在全面上云,而且上云就要上云原生,这也是各大技能公司拥抱云原生的一个例子。
我们正处于期间的关键节点


2019年正是云原生期间的关键节点,为什么这么说?我们这里就为各人简单梳理一下。
从2013年Docker项目发布开始提及,Docker项目标发布使得全操作体系语义的沙盒技能唾手可得,使得用户可以或许更好地、更完备地打包本身的应用,使得开辟者可以安若泰山的得到了一个应用的最小可运行单位,而不须要依赖任何 PaaS 本领。这对经典PaaS财产实在是一个“降维打击”。
2014年的时间,Kubernetes项目发布,其意义在于Google将内部的Borg/Omega体系思想借助开源社区实现了“重生”,而且提出了“容器计划模式”的思想。而Google之以是选择间接开源Kubernetes而不是直接开源Borg项目,实在背后的缘故因由也比力轻易理解:Borg/Omega如许的体系太复杂了,是没办法提供给Google之外的人使用,但是Borg/Omega如许的计划思想却可以借助Kubernetes让各人打仗到,这也是开源Kubernetes的紧张配景。
如许到了2015年到2016年,就到了容器编排“三国争霸”的期间,其时Docker、Swarm、Mesos、Kubernetes都在容器编排范畴睁开角逐,他们竞争的缘故因由实在也比力轻易理解, 那就是Docker大概容器本身的代价固然大,但是如果想要让其产生商业代价大概说对云的代价,那么就肯定须要在编排上面占据一个有利的位置。
Swarm和Mesos的特点,那就是各自只在生态和技能方面比力强,此中,Swarm更方向于生态,而Mesos技能更强一些。相比之下, Kubernetes则兼具了两者上风,终极在 2017年“三国争霸”的局面中得以胜出,成为了其时直到现在的容器编排尺度。这一过程的代表性事故就是Docker公司公布在核心产物中内置了Kubernetes服务,而且Swarm项目渐渐制止维护。
到了2018年的时间,云原生技能理念开始渐渐抽芽,这是由于此时Kubernetes以及容器都成为了云厂商的既定尺度,以“云”为核心的软件研发思想渐渐形成。
而到了2019年,环境好像又将发生一些变化。

什么是“云原生”?云原生该怎么落地?

云原生的界说


很多人都会问“到底什么是云原生?”
实际上,云原生是一条最佳路径大概最佳实践。更详细的说,云原生为用户指定了一条低心智负担的、灵敏的、可以或许以可扩展、可复制的方式最大化地使用云的本领、发挥云的代价的最佳路径。
因此,云原生实在是一套引导举行软件架构计划的思想。按照如许的思想而计划出来的软件:起首,天然就“生在云上,长在云上”;其次,可以或许最大化地发挥云的本领,使得我们开辟的软件和“云”可以或许天然地集成在一起,发挥出“云”的最大代价。
以是,云原生的最大代价和愿景,就是以为将来的软件,会从诞生起就生长在云上,而且遵照一种新的软件开辟、发布和运维模式,从而使得软件可以或许最大化地发挥云的本领。说到了这里,各人可以思索一下为什么容器技能具有革命性?
实在,容器技能和集装箱技能的革命性非常雷同,即:容器技能使得应用具有了一种“自包罗”的界说方式。以是,如许的应用才气以灵敏的、以可扩展可复制的方式发布在云上,发挥出云的本领。这也就是容器技能对云发挥出的革命性影响地点,以是说,容器技能正是云原生技能的核心底盘。
云原生的技能范畴


云原生的技能范畴包罗了以下几个方面:

  • 第一部门是云应用界说与开辟流程。这包罗应用界说与镜像制作、设置CI/CD、消息和Streaming以及数据库等。
  • 第二部门是云应用的编排与管理流程。这也是Kubernetes比力关注的一部门,包罗了应用编排与调度、服务发现管理、长途调用、API网关以及Service Mesh。
  • 第三部门是监控与可观测性。这部门所夸大的是云上应用怎样举行监控、日记网络、Tracing以及在云上怎样实现粉碎性测试,也就是混沌工程的概念。
  • 第四部门就是云原生的底层技能,好比容器运行时、云原生存储技能、云原生网络技能等。
  • 第五部门是云原生工具集,在前面的这些核心技能点之上,另有很多配套的生态大概周边的工具须要使用,好比流程主动化与设置管理、容器镜像堆栈、云原生安全技能以及云端密码管理等。
  • 末了则是Serverless。Serverless是一种PaaS的特别形态,它界说了一种更为“极度抽象”的应用编写方式,包罗了FaaS和 BaaS如许的概念。而无论是FaaS还是BaaS,其最为典型的特点就是按实际使用计费(Pay as you go),因此Serverless计费也是紧张的知识和概念。
云原生思想的两个理论


在相识完云原生的技能范畴之后你就会发现,其所包罗的技能内容还是很多的,但是这些内容的技能本质却是雷同的。云原生技能的本质是两个理论根本。

  • 第一个理论根本是:不可变根本办法。这一点现在是通过容器镜像来实现的,其寄义就是应用的根本办法应该是不可变的,是一个自包罗、自形貌可以完全在差别环境中迁徙的东西;
  • 第二个理论根本就是:云应用编排理论。当前的实现方式就是Google所提出来的“容器计划模式”,这也是 Kubernetes部门文章中所需重要陈诉的内容。
根本办法向云演进的过程


起首为各人先容一下“不可变根本办法”的概念。实在,应用所依赖的根本办法也在经历一个向云演进的过程,举例而言,对于传统的应用根本办法而言,实在往往是可变的。
各人大概经常会干如许一件事变,好比须要发布大概更新一个软件,那么流程大致是如许的,先通过SSH连到服务器,然后手动升级大概降级软件包,逐个调解服务器上的设置文件,而且将新代码直接都摆设到现有服务器上。因此,这套根本办法会不停地被调解和修改。
但是在云上,对“云”友好的应用根本办法是不可变的。
这种场景下的上述更新过程会这么做:一旦应用摆设完成之后,那么这套应用根本办法就不会再修改了。如果须要更新,那么须要现更改公共镜像来构建新服务直接更换旧服务。而我们之以是可以或许实现直接更换,就是由于容器提供了自包罗的环境(包罗应用运行所需的全部依赖)。以是对于应用而言,完全不须要关心容器发生了什么变化,只须要把容器镜像本身修改掉就可以了。因此,对于云友好的根本办法是随时可以更换和更换的,这就是由于容用具有灵敏和一致性的本领,也就是云期间的应用根本办法。
以是,总结而言,云期间的根本办法就像是可以替换的“畜生”,可以随时更换;而传统的根本办法则是独一无二的“宠物”,须要仔细庇护,这就表现出了云期间不可变根本办法的长处。
根本办法向云演进的意义


以是,像如许的根本办法向“不可变”演进的过程,为我们提供了两个非常紧张的长处。


    • 根本办法的一致性和可靠性。同样一个镜像,无论是在美国打开,在中国打开,还是在印度打开都是一样的。而且此中的OS环境对于应用而言都是一致的。而对于应用而言,它就不须要关心容器跑在那里,这就是根本办法一致性非常紧张的一个特征。


    • 如许的镜像本身就是自包罗的,其包罗了应用运行所须要的全部依赖,因此也可以漂移到云上的任何一个位置。

别的,云原生的根本办法还提供了简单、可猜测的摆设和运维本领。由于现在有了镜像,应用还是自形貌的,通过镜像运行起来的整个容器实在可以像Kubernetes的Operator技能一样将其做成自运维的,以是整个应用本身都是自包罗的举动,使得其可以或许迁徙到云上任何一个位置。这也使得整个流程的主动化变得非常轻易。
应用本身也可以更好地扩容,从1个实例变成100个实例,进而变成1万个实例,这个过程对于容器化后的应用没有任何特别的。末了,我们这时也可以或许通过不可变的根本办法来地快速附近的管控体系和支持组件。由于,这些组件本身也是容器化的,是符合不可变根本办法如许一套理论的组件。
以上就是不可变根本办法为用户带来的最大的长处。
2019年——云原生技能遍及元年

为什么说2019年很大概是一个关键节点呢?我们以为2019年是云原生技能的遍及元年。
起首各人可以看到,在2019年,阿里巴巴公布要全面上云,而且“上云就要上云原生”。我们还可以看到,以“云”为核心的软件研发思想,正渐渐成为全部开辟者的默认选项。像Kubernetes等云原生技能正在成为技能职员的必修课,大量的工作岗位正在涌现出来。
这种配景下,“会Kubernetes”已经远远不敷了,“懂Kubernetes”、“会云原生架构”的紧张性正日益凸显出来。 从2019年开始,云原生技能将会大规模遍及,这也是为什么各人都要在这个时间点上学习和投资云原生技能的紧张缘故因由。

阿里云和 CNCF 团结发布了《云原生技能公开课》,盼望通过 29 节课程设置让开辟者对云原生有全局的认知。
阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技能范畴、聚焦云原生盛行技能趋势、云原生大规模的落地实践,做最懂云原生开辟者的技能公众号。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则