云原生概要介绍-云原生发展史及概念

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
EMR Serverless StarRocks,5000CU*H 48000GB*H
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生概要介绍-云原生发展史及概念

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:云原生概要介绍-云原生发展史及概念】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19001


云原生概要介绍-云原生发展史及概念

 

内容介绍:

一、云原生发展简史

二、不断更新的云原生定义

三、云原生是新的思想理念

四、云原生的作用及价值

五、云原生对软件开发模式及开发者的影响

 

一、云原生发展简史

“云原生”现阶段是一个很热门的和关键的词,但云原生不是一个新的概念,它是随着云计算的普及深入及容器技术快速成熟,逐步发展而产生的。说起云原生,我们要追溯到2004~2007年阶段,Google 在大规模使用容器技术(cgroups),

一般认为,cgroups 是容器技术的基础。到了2008年,cgroups 合并进了 Linux 主核内,标志着容器技术的逐步发展和成熟。

2013年,Docker 项目的发布使得沙盒技术变得更加简单,并且用户能够更好的、更完整的构建打包自己的应用,使得开发者更轻松地获取一个应用最小的运行单元,并且能够提供有效的资源隔离。通过Docker 技术能够快速的去部署运行一个程序,使得底层的运营环境不再受限制。Docker 技术得到了快速的发展。

2014年时,Kubernetes 项目发布,它的意义在于将 Google 内部的设计思想借助开源的社区实现了重生并且提出了容器的设计模式。这个新的思想理念获得业界的一致认可。

2015年和2016年,容器技术本身得到了快速的发展,而容器编排也成为大家关注的一个技术。容器编排形成了一个三国争霸的时代。那时,包括 Dockerswm、阿帕奇、Mesh 展开了非常激烈的角逐。他们竞争的原因是大家都认为在未来,容器编排技术对于云原生是有很大价值的,大家都希望能够在容器编排技术上占据一个重要的位置。Dockerswm、阿帕奇在各自的生态和技术方面有比较明显的特点,Dockerswm 兼容了 Docker,Dockerswm 比较倾向于建设生态。阿帕奇做相应的数据中心的调度,在技术上有比较强的优势。相比之下,Google 的 Kubernetes 兼具二者的优势,并且有独特的功能。这些功能会在后面的章节详细的讲解。

2017年,Kubernetes 在容器编排的三国争霸的局面中得以胜出,成为了容器编排的标准。这里面有一个标志性的事件,就是 Docker 公司宣布在其核心产品中内置了 Kubernetes 服务,并且下架了自己的 Dockerswm 项目,对 Dockerswm  项目停止了维护。

2018年,云原生的理念逐步形成了萌芽,这是因为以 Kubernetes 技术为核心的云服务成为了云厂商的既定标准,大家都形成了一个以云为核心的软件研发思想。这种思想形成之后就逐步推动了云原生更为迅速的发展。

2019年,阿里巴巴宣布全面上云,并成为云原生领域开源贡献最全面的科技公司。我们可以看到以云为核心的软件思想已经成为开发者的默认选项,Kubernetes 技术、Docker 技术已经成为技术人员的必修课,大量的工作岗位应运而生。

我们看到从2019年开始到现在,云原生的一个全新发展的时代,我们相信云原生的未来很大的发展空间,能供提供更多的技术岗位。

 

image.png

 

二、不断更新的云原生定义

很多人都会问“到底什么是云原生?”

云原生也是随着云计算技术不断的发展而产生新的解释和定义的。最早的对于云原生的定义,我们认为是2011年提出的十二因子的应用定义,该定义可以适用于任何编程语言,通常被认为是最早的云原生应用的技术特征。十二因子的定义是符合容器技术和容器编排技术这些与云原生相关的技术理念。

十二因子的定义突出了几点,比如,基准代码,强调一份基准代码可以进行多份部署,再比如依赖,它强调显示生命依赖关系,要在环境中存储相关的配置,另外它还强调要把后方服务当作附加资源。要严格的分离系统的构建和运行,要以一个或多个无状态的进程进行应用。同时后台管理任务要做成一次性进程来运行,除此以外,十二银子还对端口的绑定、开发与生态环境等价,以及系统的易处理性做了明确的定义,这些定义的规范,对于我们应用上云都是有很大的帮助,给企业上云以明确的指导。

2015年,Pivotal 提出了 “Cloud Native” 的概念,他认为,云原生是一种可以充分利用云计算优势的构建和运行应用的方式。在他对云原生的定义中明确四个核心概念,分别是 DevOps、持续交付、微服务和容器。还有云原生计算基金会提供的定义,最新的版本是这么描述的,云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些都是业界在不同的时期给出的云原生的定义。云原生的定义也是通过技术的快速发展在不断的刷新。

 

image.png

 

三、云原生是新的思想理念

了解了不同的定义,我们可以把云原生简单的了解为云原生是一种新的技术架构模式及软件开发的思想理念。

云原生是基于云计算理念的深化,是面向云应用设计的一种新的架构设计理念。它能够充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升企业的交付效率,降低企业的运维复杂度。云原生也是继承了云计算三层的理念,通过技术的不断演进,结合容器的开发思路,逐渐延伸过来了。

云原生技术可以让系统通过更加松耦合的方式来进行应用的构建,并且能够构建在敏捷的基础设施之上。通过公有云、私有云以及容器基础的底层来提供资源的隔离和快速的迁移,以适应技术架构的敏捷变化。而上层的话,通过这种松耦合的服务架构可以实现应用的快速发布,并且保障在各应用的迭代发布时,应用之间不受到影响。这使得开发变得更加的简单和快捷,能够适应快速发展的业务变化。

在云原生的概念体系里,DevOps 提供了一种创新管理的理念,能够帮助企业去做持续交付、持续部署以及敏捷开发的一些管理。我们看到,云原生不仅是一种技术架构,更是一种软件开发的思想理念。

它主要包含了三大部分:

一、敏捷的基础设施;

二、松耦合的应用架构;

三,创新的敏捷开管理理念

 

image.png

 

四、云原生的作用及价值

通过不同的视角来了解一下云原生对产业的作用和价值。作为技术人员,大家可能更加关注的技术的事情,那么我们先从技术的视角入手,看一看云原生能带来那些新的价值。

首先,云原生提供了一个机制的弹性伸缩能力,能够达到毫秒级的弹性响应。这种弹性能力的是现实是以容器技术为基础的云原生架构,通过快速的弹性响应来实现企业系统的扩容和缩容,方便及时应对企业的业务发展变化。其次,云原生具备服务自治和故障治愈能力,基于云原生技术构建平台借助高度自动化的调度机制可以实现应用故障的自动摘除与重构。这样的平台具备很强的故障治愈能力。

再次,云原生平台具备大规模的可复制能力,通过容器技术和容器编排技术可以实现跨区域、跨平台甚至跨服务商的大规模应用的部署和复制,可以快速地实践应用的部署上限、下限等等。以上这些都是技术方面云原生所带来的新的价值。

我们再从应用的视角来看一下云原生带来了哪些方面的价值。

首先,容器技术的出现解决了这种异构资源的标准化的问题。容器技术还有效果=的解决了异构环境的部署一致性的问题,促进了资源的标准化和服务化,并且为自动化奠定了相应的基础。

其次,它改变了研发的生产方式,打破了组织间的壁垒,实现了研发与运维的跨域协同,从而提升了研发的效率,解放了生产力。再次,云原生技术的应用提升了业务运用的开发迭代的速度。让开发人员赋能业务创新。云原生技术实现了应用的敏捷开发,并且大幅提升了交付的响应速度,降低了业务的试错成本,高效响应了用户的需求,增强了用户的体验,从而,加速了业务创新。上面这些都是从应用的视角来看,云原生带来了新的应用价值。

最后,再来看一下产业视角,云原生最大程度地发挥了云的优势,它可以让不论是中小型企业还是大新企业都无需关注底层的技术和基础设施,而让自己更加聚焦在企业自身的业务发展上,去灵活敏捷的构建企业自身的应用,去充分享受云原生架构所带来的红利。云原生已经成为驱动业务增长的重要引擎。它帮助着越来越多的企业快速创新,通过不断的迭代和优化助力企业快速实现自身的数字化转型。综上所述,这就是云原生从不同方面给我们带来的积极的作用和新的价值。

 

image.png

 

五、云原生对软件开发模式及开发者的影响

我们再来看一下,对于我们工作中的软件开发模式及软件开发人员云原生会带来什么样的影响。随着云原生技术的不断发展和演进,我们认为软件平台的开发门槛越来越低,借助于阿里云云原生平台提供的云原生技术,开发者可以无需自行搭建、运维服务器以及底层的中间件。大家可以通过使用云原生平台,快速的进行代码的开发。

程序员只需要关注自己所使用的开发语言即可,无论你使用的是 Java、Golang、PHP,借助云原生平台都可以实现应用在不同环境的快速迁移。这样,开发人员就可以更好的去关心自己的业务逻辑,而不用在各种不同的环境、各种不停的中间件的泥潭中摸爬滚打。这样,极大地降低了开发人员的开发复杂度和运维的工作量。云产商来完成底层基础设施和基础平台的建设,并以此为广大的中小企业提供稳定可靠的云原生技术服务。而这些中小企业直接可以在这样的云原生平台上完成自己的应用开发与部属。而根据资源实际情况来支付相关的费用。基于这样的合作模式,可能会分为两种程序员,一种是在上层开发业务的程序员,还有一种是在底层云原生平台的程序员。这就是云原生与未来软件开发模式的影响。

 

image.png

 

云原生是适合大企业还是更加适合中小企业?

大企业认为云原生是不是更加适合中小企业,因为他们无需去购买主机服务器、无需自行去搭建运行环境便可以快速构建应用。

小企业会认为,云原生是不是更加适合大企业,因为云原生的底层技术是复杂的,如果我想了解底层的技术需要很大的成本投入。其实,我们认为云原生无论是大型企业还是中小型企业,乃至于独立的软件开发团队,都会有不同的价值帮助和支持。

首先,我们知道大型企业的研发部门会有不同的角色,如集成、开发、测试、实施等子部门。对于大型企业而言,通过云原生可以帮助企业去打破部门间的壁垒,构建统一的技术框架,降低企业的重复投资,提升开发效能,实现数据融通。对于小规模的企业以及初创团队而言,可以通过云原生的方式某个行业领域,因为他们不需要去构建底层的基础平台,他们可以通过购买云产商提供的云服务就可以拥有原来大企业才会有的计算资源。

小企业由于人员和财力等资源比较紧张,通过过云原生技术自动化,可以提升产品开发交付效率,把有限的成本和有限的精力放在业务创新上,底层的平台交由专业的云产商来帮他提供这种自动化的服务,这样就使得中小企业在业务创新上更具备竞争力。我们认为无论是大型企业还是中小型企业借助云原生可以找到该项技术对自身的价值和帮助。

 

image.png

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
4月前
|
存储 SQL Cloud Native
深入了解云原生数据库CockroachDB的概念与实践
作为一种全球领先的分布式SQL数据库,CockroachDB以其高可用性、强一致性和灵活性等特点备受关注。本文将深入探讨CockroachDB的概念、设计思想以及实践应用,并结合实例演示其在云原生环境下的优越表现。
|
4月前
|
Cloud Native 关系型数据库 大数据
CockroachDB:云原生数据库的新概念与实践
本文将介绍CockroachDB,一种先进的云原生数据库,它具备分布式、强一致性和高可用性等特点。我们将探讨CockroachDB的基本原理、架构设计以及在实际应用中的种种优势和挑战。
|
3月前
|
运维 Kubernetes Cloud Native
云原生概念总结
云原生概念总结
33 0
|
4月前
|
存储 监控 API
【云原生系列】云计算概念与架构设计介绍
**云计算**是基于互联网的计算模式,通过共享计算资源(如服务器、存储、应用程序)提供高效、可扩展、可靠、安全和经济的服务。其架构通常包括**物理层**(服务器、存储、网络设备等基础设施)、**虚拟化层**(虚拟机、容器、虚拟网络等)、**平台层**(开发、运行时、数据库服务等)和**应用层**(企业应用、Web应用、移动应用)。云计算服务有IaaS、PaaS和SaaS,广泛应用于企业IT、开发测试、大数据处理、AI和远程办公等领域。为了确保性能和可靠性,云平台采用负载均衡、自动伸缩、备份恢复、安全措施和监控故障排除等方法。
100 1
|
4月前
|
存储 监控 API
【云原生系列】云计算概念与架构设计介绍
云计算是一种基于互联网的计算模式,在这个模式下,各种计算资源(例如计算机、存储设备、网络设备、应用程序等)可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算资源共享。
87 5
|
4月前
|
存储 人工智能 Cloud Native
【云原生|云计算系列】云计算基础概念
【云原生|云计算系列】云计算基础概念
200 0
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】kubernetes学习之资源(对象)控制器概述---概念和实战(五)
【云原生】kubernetes学习之资源(对象)控制器概述---概念和实战(五)
38 0
|
12月前
|
运维 Cloud Native 云计算
云原生概要介绍-云原生时代已经到来
云原生概要介绍-云原生时代已经到来
129 1
|
12月前
|
敏捷开发 存储 运维
阿里云云原生 DevOps - DevOps 基础概念
阿里云云原生 DevOps - DevOps 基础概念
226 0
阿里云云原生 DevOps - DevOps 基础概念
|
11月前
|
存储 Kubernetes 调度
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
213 0
下一篇
DDNS