什么是云计算?
云计算最初的目标是对资源的管理,这里的资源主要是指:
- 计算资源
- 网络资源
- 存储资源
所以,要回答什么是云计算?其实就是回答云计算是通过什么方式管理了些什么?
首先说管理了什么,上面已经说了,主要有三个:
1.计算资源
小到一台电脑的CPU,内存,大到IDC机房里服务器的CPU,内存,这些都可以理解为计算资源。
2.网络资源
你的电脑要想连接无线网是需要一个叫网卡的东西;家里要想有网络,是需要到移动、联通、电信开通10M或者100M的宽带,然后会有师傅到你家把宽带连接到你的路由器上,再然后,家里的手机、电脑就可以通过路由器上网了。网卡、运营商开通的宽带、路由器这些都属于网络资源。
3.存储资源
买电脑时候,你会问这电脑硬盘是300G还是500G,买手机的时候你也会问,这个手机是16G还是32G,这些都是存储资源。
说完管理什么,我们再来说是怎么管理的?
试想,CUP、内存、硬盘、宽带这些并不统一的硬件设备怎么才能很好的管理呢?
回答这个问题前,我们要先谈一个痛点,也是因为这个痛点,云计算才得以被广泛认可。什么痛点呢?
假如,我现在想用一台很小的电脑,只要一核CPU、1G内存、10G的硬盘,5M的带宽,而且只想用一个月,请问有地方能满足我的需求吗?
打开京东看了一下,一台499元的笔记本电脑都是4核,4G的内存,家里随便拉条宽带,都要50M、100M的,而且商家不会同意只用一个月。
所以,从过往的资源来看,很难满足以上需求,但云计算却可以做到,它实现了两个目标:
- 1.时间灵活性
想什么时候用就什么时候,不想用还可以退。
- 2.空间灵活性
计算资源可以很大,也可以很小。
这两点合起来就是云计算中常说的弹性。
弹性是物理设备没办法做到的,你比如说服务器,如果我是做IDC机房的,我最开始的时候用户不是很多,需要的内存、带宽也不是很大。
但突然有一天,我的客户变多了,为了应付需求,我就需要去采购更多的机器,要知道采购机器是需要时间的,等我把机器采购回来以后,如果大部分客户都等不及买了别家的服务器,我就会白花钱。
还有就是空间上问题,比如上面谈的很小配置的服务器,一般的机房里是没有这种配置的。
说到这里,有人就会问,那云计算是怎么做到的呢?
答案是虚拟化。
什么是虚拟化呢?简单来说,就是从物理的 CPU、内存、硬盘中虚拟出一小块来给客户,同时也可以虚拟出一小块来给其他客户。
虚拟化的技术使得不同客户的电脑看起来是隔离的。也就是我看着好像这块盘就是我的,你看着这块盘就是你的,但实际情况可能我的这个 10G 和你的这个 10G 是落在同样一个很大很大的存储上。
而且如果事先物理设备都准备好,虚拟化软件虚拟出一个电脑是非常快的,基本上几分钟就能解决。
但实际上,虚拟化只是云计算的初级阶段,这个阶段我们虚拟一个空间是需要指定到某台机器上,这种情况发展到后期,随着用户需要的增加,手动指定到某台机器上就变的非常困难。
于是后来就发明了一种调度的算法,这种算法就是将几千台机器都放在一个池子里面,无论用户需要多少 CPU、内存、硬盘的虚拟电脑,调度算法会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。
这个过程也叫云化,到了这个阶段,我们才可以称为云计算。
总结
通过以上描述,我们可以给云计算做一个简单的总结,云计算就是把计算、网络、存储资源,通过虚拟化到云化的架构过程,实现对计算资源的弹性管理。
说完云计算,我们知道云计算最大的特点就是把大量的计算资源整合到一起,然后让用户可以弹性使用,这个特点正好和下面要说的CDN类似。
什么是CDN?
我们先说一个场景,大部分人都有过用手机看电影的经验吧?有时候你会发现网络很好,但打开的某个网站的视频时,还是会特别卡。
再比如说,有时候我们在网上浏览网站,你会发现有些网站打开的时候,反应很慢,而且图片都是一点点展现出来。
以上两个场景中的问题就是CDN要解决的问题。
Content Delivery Network,缩写CDN,中文名字为内容分发网络。
-
CDN作用:使内容传输的更快、更稳定。
-
技术原理:避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节。
这里要说一下影响数据传输速度的瓶颈与环节,简单来说,数据从服务器(源站)传出的第一个环节就是服务器连接互联网的带宽(第一公里);
第二个是A点到B点的网络拥堵状况(骨干网络);
第三个,由于中国的网络运营商是由多家来经营,所以数据传输的过程中还会受到运营商与运营商之间的数据交换的影响;
第四个,就是用户电脑连接互联网的带宽,就是指我们家里的带宽大小(最后一公里)。
- 特点:新型的网络构建方式,让用户能够就近抓取资源。
云计算是将计算、存储、网络资源进行整合,而CDN是直接利用这些资源,通过网络把这些资源连接起来,每一个连接点就是一个节点,这些节点会分布在我们周围,当我们需要某些资源的时候,其实不需要去源头获取,只需要在就近的节点获取就可以。
- 安全:IP隐藏
内容通过节点分发后,源服务器的IP会被隐藏,这样源服务器受到攻击的概率就会大幅下降。而且,当某个节点故障时,系统会调用临近的健康节点进行服务,避免对用户内容分发造成影响。
- CDN核心:负载均衡。
这个核心的意思是,CDN能够根据网络的实际情况,对网站访问量突然增加,导致网络卡顿、拥堵的情况进行合理的分流,让用户在网络访问高峰期也可以顺畅的获取网络资源。
- CDN的计费方式
上面我们谈了云计算,得到的一个关键词是弹性,即用户可以根据自己需求去随时调用计算资源,从费用角度来讲,即用户可根据自己的实际需求,随时做出调整,以此来降低使用成本。
CDN的计费方式有两种一种是按流量计费,一种是按带宽计费,这里主要说下按流量计费。
流量计费顾名思义,就是你用多少就付多少钱,拿家里的宽带来比较,家里开通100M的宽带,无论你用不用,都要付那个带宽的钱,而按流量计费就像我们的手机流量,它是按真实使用量来付费的。
CDN的弹性主要体现在用户对网络节点资源的使用,用户不需要自己拥有节点,只需要在CDN厂商那里开个户,然后将域名和服务器地址给到厂商,厂商配置好以后,用户就可以按量的方式使用这些网络资源,让自己的内容避开网络拥堵,快速送达至客户那里。
总结
CDN就是把节点资源整合,然后通过负载均衡,将网站内容通过节点分发给节点周围的用户,避开了原本可能造成拥堵的环节。对于内容提供者来讲,不必建立节点,就可以通过按量计费的方式,弹性使用CDN背后的网络资源。
下面我们再来简单说下CDN的发展历史,这个有助于你对CDN有一个更全面的认识。
CDN的起源
随着互联网技术的发展,人们从最开始的拨号上网,发展到带宽上网。这个技术的普及,让更多的人开始使用互联网,这就给骨干网络和服务器带来了巨大压力,网络拥堵、服务器频繁崩溃、网站响应超时等问题一直得不到很好的解决。
1995年,麻省理工学院教授、互联网的发明者之一,Tim Berners-Lee博士认为,网络拥塞严重,将会成为互联网发展的最大障碍。
于是,他提出一个学术难题,希望有人能发明一种全新的、从根本上解决问题的方法,来实现互联网内容的无拥塞分发。
当时Tim Berners-Lee博士的隔壁,是Tom Leighton教授的办公室。他是一位麻省理工学院应用数学教授。
他被Berners-Lee的挑战激起了兴趣,于是他请研究生Danny C. Lewin和其他几位顶级研究人员一起破解这个技术难题。
最终,他们开发了利用数学运算法则来处理内容的动态路由算法技术,有效地解决了这个难题。这个技术,就是CDN。
CDN的工作流程
了解了CDN,以及它的起源,最后再来说下CDN的工作流程:
具体步骤:
1.当用户点击APP上的内容,APP会根据URL地址去本地DNS(域名解析系统)寻求IP地址解析。
2.本地DNS系统会将域名的解析权交给CDN专用DNS服务器。
3.CDN专用DNS服务器,将CDN的全局负载均衡设备IP地址返回用户。
4.用户向CDN的负载均衡设备发起内容URL访问请求。
5.CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器(节点)。
6.负载均衡设备告诉用户这台缓存服务器(节点)的IP地址,让用户向所选择的缓存服务器(节点)发起请求。
7.用户向缓存服务器(节点)发起请求,缓存服务器(节点)响应用户请求,将用户所需内容传送到用户终端。
8.如果这台缓存服务器(节点)上并没有用户想要的内容,那么这台缓存服务器就要向网站的源服务器请求内容。
9.源服务器返回内容给缓存服务器(节点),缓存服务器(节点)发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器(节点)上。
以上就是CDN的基本工作流程。
总结
本篇主要介绍了云计算与CDN,云计算是对物理资源的充分利用,通过云化实现了用户对计算资源的弹性使用,一方面使计算资源得到了充分利用,另一方也大大降低了用户的使用成本。
我们从CDN的历史发展就能看出,这项技术解决了互联网数据日益增加,而基础设施跟不上发展需要的技术难题,它通过将数据下沉到更接近用户的节点上来进行内容分发,一方面减轻了源站的压力,另一方面避开了网络拥堵,让用户能够快速获取内容,同时也降低内容创造者的分发成本。
总的来说,技术的进步就是将原本难于逾越的高门槛、高成本打破,让更多的企业能够参与到互联网的发展中来,同时也让更多人能够享受互联网带来的便利。
网友评论