大家在工作中或许或多或少都接触过Docker,那你知道Docker以及容器化背后的原理到底是什么吗?
容器化技术满天下,那为什么只有Docker被大家所熟知呢?
后Docker时代,到底谁才是云原生时代的王者?
我们相信本系列文章能帮您解答这些疑惑。
成为PaaS前浪的Cloud Foundry
被“嫌弃”的物理服务器
在云时代以前,开发者如需构建一个线上的站点,必须自己维护物理服务器。但是随着业务发展,大体量服务器逐渐增多,随之而来的是硬件、场地和维护成本的不断提高。对于面向C端的站点来说,网络热点事件具有随机性,流量的变化并不可控,难免会遭遇站内流量暴涨的情况。此时如果没有备用服务器,突发的大流量很可能会冲垮整个站点。但在没有突发事件的时候,备用服务器的采购和维护成本又让人不可忽略。
(运维的传统艺能:上线拜祖,图片来自网络)
哪里有问题,哪里就有商机。有人想到,如果买一批服务器放在外网,安排专人管理,然后按照用户的需要租赁出去,不正好解决了这个问题吗?
于是,一场云计算的好戏,正式上演。
虚拟机还是“超重”了
云计算时代的大幕拉开,大厂先后登台,让我们先简单做一下回顾。
- 2006年,亚马逊成立aws,从云端存储业务开始。
- 2008年,云计算初创。
- 2009年,阿里云成立。目前最新的数据表明,2020年度IaaS市场份额调查,阿里云位居全球第三,亚太第一;前两名分别是亚马逊和微软,市场份额达9.5%,超过谷歌的6.1%,亚马逊40.8%,微软17%。国内市场份额40% ,第二是华为云,占18%。
- 2010年,OpenStack由NASA发布。OpenStack是一个IaaS架构,可以用其架构来搭建自己的私有云,让任何人都可以自行创建和提供云计算服务。对比而言,AWS和aliyun都是自研架构,OpenStack是开源的。所以公司如果需要,完全可以接入OpenStack搭建自己的私有云。(当然前提需要有OpenStack核心开发能力)。
- 2010-2013年之间,云计算的全球份额被aws和OpenStack瓜分。
这时的云计算技术,本质都是虚拟化技术,将硬件资源作为基础设施提供给用户,简称IaaS。简单理解,IaaS就是将一个很大的服务器,通过虚拟化技术拆分成多个小的虚拟服务器,提供服务,类似于在本机装了虚拟机。
(云计算主力玩家的进场时间,图片来自网络)
但是,IaaS时代的虚拟机还是太过于笨重了。每一台虚拟机都需要消耗CPU、内存等计算资源才能支撑应用的运行。即便应用再小,系统的开销都是固定的成本。如何为IaaS减肥,让虚拟机系统的开销降到最低?
2013年开始,云计算正式进入了PaaS时代。PaaS时代,云计算所销售的单元,从虚拟机变成了应用运行平台。于是,云厂商提供的服务更多,资源利用率也更高了。
什么是PaaS?我们用一个通俗的例子来解释。如果我们现在是一个烧饼店老板,采用IaaS模式意味着我们需要用别人厨房、锅炉、煤气,自己和面做馅料,做烧饼。如果是PaaS,我们烧饼的面粉、馅料和调料都是别人提供好了,我们只需要把饼烤熟。
云厂商该如何构建一套好用的PaaS服务呢?借力开源项目,成为各厂商的共识。
Cloud Foundry开启PaaS开源时代
PaaS的核心是平台。最早出现在开发者视野中的PaaS开源项目中,vmware创立的Cloud Foundry是知名度最高的。与IaaS提供云上虚拟机的服务方式不同,基于Cloud Foundry的云计算能够提供应用托管的功能。开发者只需要通过一条简单的命令比如:cf push “我的应用”,就可以将项目打成一个压缩包,上传到Cloud Foundry服务器。而Cloud foundry会开启自己的调度器,在一群云主机中找到满足用户需求的主机(系统版本、性能、个数),然后通过容器化技术,在主机上创建一个容器,在容器中下载压缩包,解压并运行,最终成为一个对外提供服务的应用。
此外,Cloud Foundry平台对这些应用项目提供分发,灾备,监控,重启等等服务(这也是我们提供给用户的核心服务)。这种托管服务解放了开发者的生产力,让他们不用再关心应用的运维状况,而是专心开发自己的应用。而这就是PaaS的“初心”,平台即服务。
(Cloud Foundry提供的服务)
这里就会有同学问了,容器是什么?