“云计算”这个词,相信大家都非常熟悉。
作为信息科技发展的主流趋势,它频繁地出现在我们的眼前。伴随它一起出现的,还有这些概念名词——OpenStack、Hypervisor、KVM、Docker、K8S...
这些名词概念,全部都属于云计算技术领域的范畴。
对于初学者来说,理解这些概念的具体含义并不是一件容易的事情。
所以,今天这篇文章,将给大家做一个通俗易懂的介绍,解释这些云计算概念以及它们之间的关系,希望对大家入门有所帮助。
什么是云计算
在介绍那些古怪名词之前,我先介绍一下云计算。
以前电脑被发明的时候,还没有网络,每个电脑(PC),就是一个单机。
这台单机,包括CPU、内存、硬盘、显卡等硬件。用户在单机上,安装操作系统和应用软件,完成自己的工作。
后来,有了网络(Network),单机与单机之间,可以交换信息,协同工作。
再后来,单机性能越来越强,就有了服务器(Server)。人们发现,可以把一些服务器集中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源。
再再后来,小型网络变成了大型网络,就有了互联网(Internet)。小型机房变成了大型机房,就有了IDC(Internet Data Center,互联网数据中心)。
当越来越多的计算机资源和应用服务(Application,例如看网页,下电影)被集中起来,就变成了——“云计算(Cloud Computing)”。无数的大型机房,就成了“云端”。
云计算
是不是觉得太简单?别急,开始深入。
云计算的道理是简单的,说白了,就是把计算机资源集中起来,放在网络上。但是,云计算的实现方式,就非常复杂了。
举个例子,如果你只是在公司小机房摆了一个服务器,开个FTP下载服务,然后用于几个同事之间的电影分享,当然是很简单的。
如果是“双11”的淘宝购物节,全球几十亿用户访问阿里巴巴的淘宝网站,单日几十PB(1PB=1024TB=1024×1024GB)的访问量,每秒几百GB的流量……这个,就不是几根网线几台服务器能解决的了。
这时,需要设计一个超大容量、超高并发(同时访问)、超快速度、超强安全的云计算系统,才能满足业务平稳运行的要求。
这才是云计算的复杂之处。
刚才说了,我们把计算机资源放在云端。这个计算机资源,实际上分为好几种层次:
第一层次
是最底层的硬件资源,主要包括CPU(计算资源),硬盘(存储资源),还有网卡(网络资源)等。
第二层次
要高级一些,我不打算直接使用CPU、硬盘、网卡,我希望你把操作系统(例如Windows、Linux)装好,把数据库软件装好,我再来使用。
第三层次
更高级一些,你不但要装好操作系统这些基本的,还要把具体的应用软件装好,例如FTP服务端软件、在线视频服务端软件等,我可以直接使用服务。
这三种层次,就是大家经常听到的IaaS、Paas、SaaS。
SaaS: Software-as-a-Service(软件即服务)
PaaS: Platform-as-a-Service(平台即服务)
IaaS: Infrastructure-as-a-Service(基础设施即服务)
再补一张图,可能更直观:
目前主流的云计算服务提供商,例如亚马逊AWS、阿里云、华为云、天翼云、腾讯云,说白了,都是为大家提供以上三个层次的云资源。你想要什么,它们就提供什么。你想要多少,它们就提供多少。
继续,继续。
这么多样化多层次的云计算服务,阿里、华为们又是怎么提供的呢?
难道说,是人工安排?——
如果你要八核CPU、16GB内存、500GB硬盘的服务器,阿里临时安排工程师帮你组装?如果你要装CentOS 7.2(一种类Linux操作系统),MySQL 5.5.60(一种数据库系统),阿里也临时让工程师帮你安装配置?
这显然是不可能的,耗不起人力,也等不起时间。
于是,就有了各种软件和平台,负责对资源进行快速调用和集中管理。
什么是虚拟化
如果要对物理资源进行管理,第一步,就是“虚拟化”。
虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。
从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。
物理机,通常称为“宿主机(Host)”。虚拟机,则称为“客户机(Guest)”。
谁来完成物理资源虚拟化的工作呢?
就是大名鼎鼎的 Hypervisor 。
Hypervisor,汉译过来是“超级监督者”,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)。它不是一款具体的软件,而是一类软件的统称。