“云计算”这个词,相信大家都非常熟悉了。作为IT行业的热门技术,它频繁出现在各大媒体的新闻报道中。BAT这样的互联网企业,也经常把它挂在嘴边。相信很多人都想学习云计算,跟上技术潮流。如果对云计算有一定了解的话,应该会或多或少地听到这些名词——OpenStack、Hypervisor、KVM、Docker、K8S…云计算到底是什么?看完千锋的这一篇文章就够了。
首先以上这些名词,全部都属于云计算的范畴。对于自学的初学者来说,想要理解这些名词的具体含义,还有它们之间的关系,并不是一件容易的事情。虽然互联网上有很多的资料,但是杂乱无章、晦涩难懂,对新人很不友好,容易让人晕头转向,甚至打退堂鼓。所以作为云计算的入门第一课,将给大家做一个通俗易懂的宏观介绍,重点解释最主要的几个名词,和它们之间的关系,希望对大家入门有所帮助。
在介绍那些古怪名词之前,我先简单介绍一下云计算。以前电脑被发明的时候,还没有网络,每个电脑(PC),就是一个单机。这台单机,包括CPU、内存、硬盘、显卡等硬件。用户在单机上,安装操作系统和应用软件,完成自己的工作。后来,有了网络(Network),单机与单机之间,可以交换信息,协同工作。再后来,单机性能越来越强,就有了服务器(Server)。人们发现,可以把一些服务器集中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源。
再再后来,小型网络变成了大型网络,就有了互联网(Internet)。小型机房变成了大型机房,就有了IDC(Internet Data Center,互联网数据中心)。当越来越多的计算机资源和应用服务(Application,例如看网页,下电影)被集中起来,就变成了——“云计算(Cloud Computing)”。无数的大型机房,就成了“云端”。
云计算的道理是简单的,说白了,就是把计算机资源集中起来,放在网络上。但是,云计算的实现方式,就复杂了。这个计算机资源,实际上,分为好几种层次:
第一层次,是最底层的硬件资源,主要包括CPU(计算资源),硬盘(存储资源),还有网卡(网络资源)等。
第二层次,要高级一些,我不打算直接使用CPU、硬盘、网卡,我希望你把操作系统(例如Windows、Linux)装好,把数据库软件装好,我再来使用。
第三层次,更高级一些,你不但要装好操作系统这些基本的,还要把具体的应用软件装好,例如FTP服务端软件、在线视频服务端软件等,我可以直接使用服务。
这三种层次,就是大家经常听到的IaaS、Paas、SaaS。
SaaS: Software-as-a-Service(软件即服务)
PaaS: Platform-as-a-Service(平台即服务)
IaaS: Infrastructure-as-a-Service(基础设施即服务)
这么多样化多层次的云计算服务,阿里、华为们又是怎么提供的呢?于是,就有了各种软件和平台,负责对资源进行调用和管理。
如果要对物理资源进行管理,第一步,就是“虚拟化”。虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。
最后给大家说一说常听说的Docker,就是创建容器的工具,是应用容器引擎。Docker的中文意思,就是码头工人。而它的LOGO,就是一只鲸鱼背着很多货柜箱。相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。
好啦,以上就是今天的内容。再说下去,估计很多人又要晕了。云计算涉及到大量的需求。同一个需求,会有很多不同的技术来实现。同一个技术,往往又有多个不同的厂家互相竞争。所以,概念和名词就会特别多,发展变化也会很快。不管怎么说,梳理清楚最关键的名词概念,是学好云计算的第一步。最后给大家一张详细的云计算学习图作为结束,希望大家都能系统的学习到云计算的教程。
原文地址:https://blog.51cto.com/14679712/2470939