Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心
第1章 云原生架构
1.1 云计算的历史
1.1.3 容器的横空出世和容器编排大战
上一次我们 提到了PaaS,PaaS的开源产品Docker对云计算领域产生了深远的影响,从虚拟机到容器,整个云计算市场发生了一次重大变革。
容器化本质上是虚拟化的改进版本,这种技术允许多个应用程序驻留在同一个服务器中。
两者之间的主要区别在于虚拟化在硬件级别分离应用程序,而容器化则在操作系统级别分离硬件程序。这意味着虚拟化使用一种称为 Hypervisor的硬件,将应用程序从物理上分离出来,并为每个应用程序提供自己的操作系统,而容器化则将它们与软件分离开来,并允许它们共享服务器的操作系统。
这消除了虚拟机低效利用资源的问题,降低了存储成本并提高了可扩展性和可移植性。基于容器方法的一个缺点是安全性,因为应用程序在服务器内没有被物理隔离。【确实】
Docker 自2013年发布开始,就带动着容器技术的热度。其实在 Docker之前,已经有LXC (Linux Container),但是LXC更多侧重于容器运行环境的资源隔离和限制(类似于一个进程沙箱),而没有涉及容器镜像打包技术,这使得LXC 并没有得到普及,LXC是Docker最初使用的具体内核功能实现。
Docker 在 LXC的基础上更进一步,规范并建设了一套镜像打包和运行机制,将应用程序和其所依赖的文件打包到同一个镜像文件中,从而使其在转移到任何运行 Docker的机器中时都可以运行,并能保证在任何机器中该应用程序执行的环境都是一样的。
Docker所提出的“Build, Ship and Run”【构建、传输、运行】的概念迅速得到了认可,Docker 也逐渐成为容器技术的领导者,甚至让很多人误认为容器就是Docker.
随着Kubernetes的成熟,以及它和 Docker的融合,基于容器技术的容器编排市场,则经历了Mesos、Swarm、Kubernetes三家的一场史诗大战,Kubernetes最终赢得了容器编排的胜利,云计算进入Kubernetes时代。
PaaS技术的主流路线逐渐过渡到Kubernetes +Docker,并于2018年左右开始占据统治地位,
2015年7月,Google 联合Linux 基金会成立了CNCF组织
,紧接着就把Kubernetes 1.0版本的源代码捐献给CNCF。Kubernetes成为CNCF管理的首个开源项目。
CNCF 力推 Cloud Native,完全基于开源软件技术栈,Cloud Native的重要理念是:以微服务的方式部署应用,每个应用都打包为自己的容器并动态编排这些容器以优化资源利用。
2018年3月,Kubernetes 从 CNCF 毕业,成为CNCF 第一个毕业项目。在容器编排大战期间,以Kubernetes为核心的CNCF Cloud Native生态系统也得以迅猛发展,云原生成为云计算市场的技术新热点。
1.1.4 云计算演进总结
云计算背后的理念由来已久,虽然目前流行的云计算形式直到20世纪90年代末才开始兴起,但是在20世纪60年代,当大型机开始流行起来时,共享计算的概念就开始出现。
大型计算机被发明为一个可以从“dumb”终端访问的集中式集线器。这些终端依靠主机进行存储和计算。尽管大型机计算和云计算之间存在明显的差异(特别是大型计算机不能通过互联网访问并托管在一个物理位置),但是大型机是第一种将信息和应用程序存储在中央集线器中的计算方法,并且可以远程访问。
这为未来的云基础架构提供了早期模型。
在这个时期出现的另一个重大突破是虚拟化技术的发展。最初创建虚拟化技术是为了允许单个计算机同时运行多个应用程序,但后来发展允许多个用户共享一个服务器,每个服务器都有自己的操作系统。
虽然这些早期的突破很重要,但直到20世纪90年代互联网的普及,现代云才出现。
自从Salesforce和亚马逊在2000年初创建IaaS、PaaS和 SaaS以来,已经有大量的云计算公司出现在各种行业中。在SaaS方面,许多主要软件供应商已经转向云交付方式,包括Oracle、SAP和 Microsoft。在 IaaS和 PaaS方面,有许多竞争对手试图蚕食亚马逊巨大的市场份额(但收效甚微)。最突出的竞争对手是Microsoft Azure和 Google Cloud.。
Docker和 Kubernetes的出现是云计算的里程碑。
在这过去的二十年间,云计算几乎重新定义了整个行业的格局,越来越多的企业开始降低对IT 基础设施的直接资本投入,不再倾向于维护自建的数据中心,而是开始通过上云的方式来获取更强大的计算和存储能力,并实现按时按需付费。这不仅仅降低IT支出,同时也降低了整个行业的技术壁垒,使得更多的公司尤其是初创公司可以更快地实践业务想法并迅速推送到市场
标签:CNCF,容器,Kubernetes,应用程序,计算,Go,架构师,Docker,亲授 From: https://www.cnblogs.com/add1188/p/17807582.html