从零开始理解云计算 Vol.1:什么是云计算

导语

这个系列其实是写给自己的云计算知识学习笔记——作为一个没有专业背景的小白,从零开始理解云计算的过程。王良明的《云计算通俗讲义》是一本入门的好书,本文根据书中的内容进行了思考提炼,尝试从通俗易懂的角度理解云计算的分类。

云计算从字面上可以拆成“云”和“计算”两个部分,要理解它的概念,需要从IT的传统技术讲起,了解什么“软件”、什么是“网络”。

一、什么是软件

软件也叫程序,要理解软件的概念,不妨先看下面这个例子——老李想画一个三角形并计算出面积,他找了小李帮忙,交给他一张纸,上面写着这些步骤:

小李收到了这张纸后,询问了老李三角形三个顶点的坐标,然后在书桌上摊开纸开始工作,他画出三角形并计算面积后把纸交给了老李,任务完成。

如果我们将老李比喻成程序员,小李比喻成计算机的CPU(中央处理器),那么书桌就是内存,三角形三个顶点的坐标是三条输入语句,绘制三角形并计算面积的步骤就是软件,一个步骤就是一条指令(也叫语句),画了三角形并标注了面积的纸就相当于软件的输出,“画一个三角形并计算面积”就如软件要完成的任务(也叫程序要处理的数据)。

通俗地来说,软件就是由程序员写的需要让CPU来完成某项任务的步骤,只不过这些步骤是用计算机语言来描述的(常见的计算机语言有C、C++、Java、PHP、Go等)。

为了能够更加直观地理解软件的运行原理,我们用下面这张图表示一个软件:

一个软件以文件的形式保存在硬盘上,当我们用鼠标双击它时,这个软件就被读到内存,此后CPU按照里面的步骤一步步执行。执行到输入步骤时需要从输入设备上获取信息(键盘和鼠标是最常见的输入设备),然后执行一些计算步骤(CPU、内存和硬盘一起组成计算设备),最后执行输出步骤,把计算的结果通过输出设备输出(显示器和音箱是最常见的输出设备)。对于一些较大的软件,在软件执行的过程中,随时可能要输入,也随时可能会输出,计算步骤也可能安排在任何时候。

计算设备和输入/输出设备的分离是云计算的核心特征。要明白他们是如何分离的,我们需要了解下一个概念 —— 网络。

二、什么是网络

我们平常使用QQ发信息的时候,为什么发的信息能准确无误的发给特定的对象,而不会错发给别人呢?如何把一台计算机发出的信息准确无误地送到另外一台计算机,这就是计算机网络所要解决的问题

写过信的人都知道,如果要把信送到对方手中,我们需要在信封上写上收件人的详细地址,且保证收信地址是唯一的。计算机也是一样,与外界通信的计算机也必须拥有一个唯一的地址。计算机的地址称为IP地址,格式是“xxx.xxx.xxx.xxx”(xxx的范围为0-255)。

如果我在深圳,想把信息发送给北京的朋友,在我点击发送按钮后,消息、我的计算机的IP地址、朋友的计算机的IP地址被打包在一起通过宽带发送给深圳电信,然后电信内部传递,最后到达北京海淀区电信局后由海淀区电信局通过对方的宽带发给对方的计算机。消息的打包和传递都是由计算机网络自动完成的,以电或光的速度传播,非常快。

计算机网络的两个重要指标分别是 带宽 和 时延。

带宽定义为每秒钟能传递的数据量,带宽越大则每秒钟传递的数据量就越大。如果把计算机网络比喻成一条高速公路,带宽就好比是车道数,车道数越多,每秒能通行的车辆越多。

网络路径上转发机构的多少决定了一条信息到达对方计算机所消耗的时间,术语称时延。如果再将计算机网络比喻成一条高速公路,时延就好比是路途经过的所有收费站交钱所耗时间的总和。一个云计算中心的时延半径通常为100毫秒,即一个数据包从云中心出发,50毫秒所能到达的范围(返回也要50毫秒),时延和地理位置上的远近无关,只和网络路径上的转发机构和数目有关,比如在深圳的超算中心50毫秒的时延半径可能包括了美国的洛杉矶,但没有包括广东省的梅州市,因为深圳与梅州之间要经过很多性能低下的转发设备,而到达美国洛杉矶只经过几台高速路由器。实时输入/输出的软件对计算机网络的时延要求高,尤其是实时强交互软件,比如我们日常使用的QQ。

带宽和时延是部署云计算时不可忽视的两大重要因素。了解了软件和网络的概念后,理解云计算的本质就不远了。

三、什么是云计算

我们已经知道软件就是程序员写的需要CPU执行以完成某项任务的步骤,这些步骤包括输入/输出步骤和计算步骤,CPU在执行输入/输出步骤时需要使用输入/输出设备,在执行计算步骤时需要使用计算设备。对于普通的计算机而言,计算设备指的是CPU、内存和硬盘,输入/输出设备指键盘、鼠标、显示器、话筒和音箱

对于传统的个人计算机,计算设备和输入/输出设备通过主板连接在一起,计算设备和输入/输出设备通过主板这个纽带实现协同工作。

然而,主板并不是可以连接计算设备和输入/输出设备的唯一纽带。当一个软件在执行的时候,用到的输入/输出设备和计算设备是被计算机网络连接在一起的,那么这样的软件执行过程就叫云计算

“云计算”中的“云”指的就是计算机网络。位于计算机网络中的设备通常称为云端,位于人们身边的输入/输出设备通常称为终端。就像我们不关心信是经历了哪些机构送出的,只关心信寄出之后对方什么时候能够收到一样;我们并不关心计算机网络具体是由什么组成的,我们只关心申请的宽带带宽是多少,时延大不大。对于我们不关心也不了解的网络组成部分,通常人们喜欢画一朵像云一样的东西来代替,这就是云计算名称的来历。

云计算也可简述为“输入/输出设备和计算机设备分离的软件执行过程”,执行与计算表达的含义相同,因此云计算也可以称为云执行。它是针对软件执行而言的,跟计算机的具体结构无关,也和软件本身关系不大。比如我运行自己计算机上的计算器,就不是云计算;但如果我的朋友从北京登录到我的计算机并运行里面的计算器,这时就是云计算。

由上可知,云计算其实并不是什么高大上不可触及的概念,我们的生活各个方面都充满了云计算的应用:我们在用百度搜索关键词时,搜索软件运行在百度的计算机上,通过在亿万个网页中查找,把搜索结果反馈到用户的计算机屏幕上,同理还有在视频网站上看电影、使用邮箱、网盘等等。

云计算为用户提供了足够的计算资源、海量数据和几乎无限的存储空间,为物联网、大数据、人工智能等新兴产业奠定了基础,为我们的未来打开了无限的想象空间。越来越多的企业开始从传统的IT架构开始向云计算架构转型。

这个系列的下一篇将从传统IT架构开始进行整理,进一步说明云计算的分类和优势。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

Intel发布开源增强学习框架Coach

今天,英特尔发布了一个新的开源增强学习框架Coach。该框架利用多核CPU处理能力,用于训练和评估增强学习Agent。Coach包含一些领先的增强学习算法的多线...

36311
来自专栏吉浦迅科技

NVIDIA CUDA9RC版本:到底改变了什么?

今日,NVIDIA正式宣布可以在官网下载CUDA9.0RC版本,肯定有不少CUDA开发者很想知道CUDA9.0版本到底增加了哪些新的功能。 ? 总的来说,就是这...

3108
来自专栏CSDN技术头条

Apache Spark在大规模分布式自然语言处理的应用

我们TripAdvisor公司拥有大量的用户评价数据,据最近的一次公告,大约有几亿条。我是从事机器学习相关的工作,在机器学习中我们常喜欢做的一件事就是堆砌大量数...

1728
来自专栏木东居士的专栏

DataTalk:是一个宽表好还是多个维表好?

4093
来自专栏人工智能头条

Apache Spark在大规模分布式自然语言处理的应用

1193
来自专栏吉浦迅科技

DAY80:阅读Compute Capability 3.x

When a multiprocessor is given warps to execute, it first distributes them among...

1094
来自专栏腾讯移动品质中心TMQ的专栏

【Android场景化性能测试】UI流畅度篇

承接《Android场景化性能测试-方向与框架篇》,本篇详述UI流畅度的测试方法,重点在于获得流畅度SM数据之后,如何利用好。

6804
来自专栏智能算法

TensorFlow Lite在Kika Keyboard中的应用案例分享

『基于 AI 技术变革沟通,让世界沟通更简单』一直是 Kika keyboard 最重要的使命。从2016年开始,Kika 技术团队一直致力于 AI 技术在移动...

1433
来自专栏数据之美

BI/数据仓库/数据分析 基础入门:一些常见概念解释

Preface:本文将会讲述 BI/DW/DA 领域的一些常见概念,如:事实表、维度表、建模、多维分析、cube 等,但不涉及具体实例分析。 1、维(Dimen...

39910
来自专栏WOLFRAM

多范式数据科学的应用:ThrustSSC超音速汽车工程

本文译自Wolfram技术沟通与战略总监Jon McLoone于2018年9月11日的博客文章:Thrust Supersonic Car Engineerin...

632

扫码关注云+社区