“云计算”这个词,相信大家都非常熟悉了。
作为IT行业的热门技术,它频繁出现在各大媒体的新闻报道中。BAT这样的互联网企业,也经常把它挂在嘴边。
相信很多人都想学习云计算,跟上技术潮流。如果对云计算有一定了解的话,应该会或多或少地听到这些名词——OpenStack、Hypervisor、KVM、Docker、K8S...
01、什么是云计算
在介绍那些古怪名词之前,我先简单介绍一下云计算。
以前电脑被发明的时候,还没有网络,每个电脑(PC),就是一个单机。
这台单机,包括CPU、内存、硬盘、显卡等硬件。用户在单机上,安装操作系统和应用软件,完成自己的工作。
后来,有了网络(Network),单机与单机之间,可以交换信息,协同工作。
再后来,单机性能越来越强,就有了服务器(Server)。人们发现,可以把一些服务器集中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源。
再再后来,小型网络变成了大型网络,就有了互联网(Internet)。小型机房变成了大型机房,就有了IDC(Internet Data Center,互联网数据中心)。
当越来越多的计算机资源和应用服务(Application,例如看网页,下电影)被集中起来,就变成了——“云计算(Cloud Computing)”。无数的大型机房,就成了“云端”。
云计算
SaaS: Software-as-a-Service(软件即服务)
PaaS: Platform-as-a-Service(平台即服务)
IaaS: Infrastructure-as-a-Service(基础设施即服务)
再补一张图,可能更直观:
目前主流的云计算服务提供商,例如亚马逊AWS、阿里云、华为云,说白了,都是为大家提供以上三个层次的云资源。你想要什么,它们就提供什么。
继续,继续。
02、什么是虚拟化
如果要对物理资源进行管理,第一步,就是“虚拟化”。
虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。
从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。
像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。
VMware大家应该很熟悉,就是VMware Workstation。学习Linux的话,很多人都是在windows系统下安装WMware,然后创建Linux虚拟机。
但是,真正厉害的,是 KVM(kernel-based virtual machine,基于Linux内核的虚拟机)。它是目前最热门最受追捧的虚拟化方案。
KVM这样的Hypervisor软件,实际上是提供了一种虚拟化能力,模拟CPU的运行,更为底层。但是它的用户交互并不良好,不方便使用。
于是,为了更好地管理虚拟机,就需要OpenStack这样的云管理平台。
关于OpenStack,我之前曾经介绍过(链接)。它有点像个商店,负责管理商品(计算资源、存储资源、网络资源等),卖给用户,但它本身不制造商品(不具备虚拟化能力),它的商品,来自于KVM。当然,如果不用KVM,也可以用Xen等其它hypervisor。
OpenStack的管理界面,比命令行好多了吧?
请记住,上面所说的几个概念,包括VM、KVM、OpenStack等,都主要属于IaaS(基础设施即服务)。这个不难理解吧?
03、容器VS虚拟机
而大家常听说的Docker,就是创建容器的工具,是应用容器引擎。
Docker的中文意思,就是码头工人。而它的LOGO,就是一只鲸鱼背着很多货柜箱。
相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。
除了Docker对容器进行创建之外,我们还需要一个工具,对容器进行编排。
这个工具,就是K8S。
K8S,就是Kubernetes,中文意思是舵手或导航员。Kubernetes这个单词很长,所以大家把中间8个字母缩写成8,就成了K8S。
全部0条评论
快来发表一下你的评论吧 !