全面解读云计算是什么
云计算是什么?很多人都不太了解,今天小编为了让大家更加了解云计算,所以给大家总结了以下内容,一起往下看吧。
云计算"这个词,相信大家都非常熟悉了。作为IT行业的热门技术,它频繁出现在各大媒体的新闻报道中。BAT这样的互联网企业,也经常把它挂在嘴边。相信很多人都想学习云计算,跟上技术潮流。如果对云计算有一定了解的话,应该会或多或少地听到这些名词--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,虚拟机监视器)。它不是一款具体的软件,而是一类软件的统称。
Hypervisor分为两大类:
第一类,hypervisor直接运行在物理机之上。虚拟机运行在hypervisor之上。第二类,物理机上安装正常的操作系统(例如Linux或Windows),然后在正常操作系统上安装hypervisor,生成和管理虚拟机。像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(基础设施即服务)。这个不难理解吧?
容器 VS 虚拟机
那么,容器、Docker、K8S,又是什么呢?
根据前文所说的虚拟化方式,人们在使用一段时间后发现,它存在一些问题:
不同的用户,有时候只是希望运行各自的一些简单程序,跑一个小进程。为了不相互影响,就要建立虚拟机。如果建虚拟机,显然浪费就会有点大,而且操作也比较复杂,花费时间也会比较长。
而且,有的时候,想要迁移自己的服务程序,就要迁移整个虚拟机。显然,迁移过程也会很复杂。有没有办法更灵活快速一些呢?有,这就引入了"容器(Container)"。
容器也是虚拟化,但是属于"轻量级"的虚拟化。它的目的和虚拟机一样,都是为了创造"隔离环境"。但是,它又和虚拟机有很大的不同--虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。
而大家常听说的Docker,就是创建容器的工具,是应用容器引擎。
,作为业内资深的专业云计算服务提供商、云安全服务提供商,致力于为广大互联网企业用户和传统行业的企业用户提供"云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器"等云主机租用服务以及企业上云的综合解决方案,具有"安全稳定、简单易用、服务可用性高、性价比高"等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。