云计算服务就是让计算、存储、网络、数据、算法、应用等软硬件资源像电一样,随时随地、即插即用。
举个例子,“水”是我们每个人的刚需产品。在平日里需要喝水的话,我们可以选择在家安装自来水过滤器来直接获得干净安全的饮用水,而这一过程并不需要我们自己去经历找水源、打水、净化、铺管道输水这一套饮用水制造过程,因为这已经由专门的厂家和商家完成并提供服务。
同理,在互联网领域,如今如果一家公司想要建立网站,它可以通过云计算平台已经搭建和设置好的网站模板即可轻松创建公司官网,而不需要再像从前那样必须经历购买服务器、网络带宽、注册网站域名、找专门人员进行开发和运维等一系列的复杂过程。
云计算服务拥有成本低廉、服务全面、弹性扩展,部署简便等优点和特性,云计算的本质就是社会分工,社会分工所产生的价值云计算都能产生,比如规模化、精细化所产生的成本降低与效率提高等。
而如今的大数据时代和即将到来的人工智能时代,又成为驱动云计算进一步发展的关键动力,及时处理庞大规模的数据以及更多人工智能落地应用的需求,都要强大的存储和计算能力。
与此同时,物联网技术快速发展,未来将会有越来越多体积“娇小”但性能强大的智能终端作为节点连入互联网,这样数以万计的联网节点共同搭建起分布式云计算平台。而物联网的核心在于物与物、人与物的强关联,在大多情况下这样彼此联系在本地发生。因此,分布式云计算能够更好地顺应、迎合未来IT发展的趋势。
那么重点来了!!
接下来,博纳云编译整合入门级的分布式云计算介绍,按照分布式云计算的定义和概念、出现的原因、工作原理、优势和不足以及应用向大家进行介绍:
什么是分布式云计算?
首先来看一段维基百科的定义:分布式计算,又被称为分散式运算,主要研究分布式系统如何进行计算。分布式系统是一组计算机,透过网络相互连接传递消息与通信后并协调它们的行为而形成的系统,组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。分布式系统的例子来自有所不同的面向服务的架构,大型多人在线游戏,对等网络应用。
让我们来个说人的解释版本↓
简单地说,分布式计算可以定义“在后端协同工作的多个计算机,在终端用户仅显示为一个计算机的组合”。在这组系统中协同工作的各计算机同时工作,但若其中一个或某些计算机发生故障,整个系统依然可以继续工作。
在一个分布式系统中,多台计算机可以承载不同的软件组件或功能,但所有的计算机在承担不同的任务和角色时,要协力合作去完成一个共同目标。分布式系统或组合中的计算机可以物理上紧密相连并通过本地网络连接,也可以地理上遥远并通过广域网连。
分布式系统可以由许多不同类型的配置组成,如主机、个人计算机、工作站、小型计算机等,但最终目标不变,就是将众多“单机”构成的网络组成得像计算机一样工作。
为什么会出现分布式计算?
为什么需要分布式计算?因为“大数据”时代来了,比如在我们熟知的搜索引擎和在线购票网站,每秒可能有数以万计的访问,面对规模如此庞大的数据量,单个计算机将无法胜任这样的数据处理工作,此时就需要用更多终端加入而构成的分布式云计算来应对大数据时代以及即将到来的物联网时代。
知识串讲:垂直扩展和水平扩展
垂直扩展指的是升级原有的服务器或更换为更强大的硬件;水平扩展指的是通过增加更多的服务器来分散负载,从而实现存储能力和计算能力的扩展。
举个例子,在遇到内存不足的问题时,垂直扩展就是要花费一大笔钱为一个大型主机服务器增加存储吞吐量和/或计算能力,而水平扩展则是通过增加云端的虚拟机和服务器来解决。
与水平扩展相比,垂直扩展的弊端体现在,即使通过质量最好和价格最昂贵的硬件进行升级,最终这些硬件也会在新层次遇到的新问题面前显示其性能的不足而被更新迭代。而水平扩展则允许通过添加更多计算机而非不断升级单个计算机来管理和满足不断增长的流量需求或性能需求。
在最初时,水平扩展解决方案的成本比垂直扩展的要更高,但随着目前智能终端和互联网技术的不断发展和成熟,水平扩展的成本降低,效果提高,在越来越多需要处理庞大数据、更高工作负载的应用场景中超越垂直扩展。
分布式计算的工作原理?
当前,常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输(志愿计算)。
我们以一个Web应用程序为例,假设这一程序的工作量是一个月前的两倍,鉴于数据库必须处理之前两倍的请求数,性能随之下降,从而影响了终端用户的使用体验。处理方法可以是升级硬件、增加更多内存和带宽等(即垂直扩展方案),但如工作量不断增加呢?在某种程度上,升级系统在技术实现上和成本开销上变得不切实际。
在这样的情况下,分布式计算就可以发挥自身优势和潜力,以满足日益增长的流量和更高性能的需求。
在此情境下,分布式计算的解决方案即为,创建可与主服务器(上位机)同步的新数据库服务器(下位机),它们仅用于“读取”信息。每当用户尝试访问或读取信息时,新服务器负责处理请求,而主服务器则处理插入和修改请求。主服务器会定时将新变动同步至新服务器。
简而言之,分布式计算允许不同的设备(即节点)进行通信和协调,以实现共同的目标。分布式系统的设计允许单个计算机出现故障,因此其余的计算机继续工作并向用户提供服务。
分布式云计算的优势?
1、更高的可扩展性
分布式系统本身具有可扩展性,即意味着用户可以通过再增加“单机”的数量来提高处理不断增加的工作负载的能力,而无需反复更新“单机”。用户规模并没有上限。一个需求较高的分布式系统可以让每台机器满载运行,但在工作量较低的情况下灵活地让一部分不承担任务的机器离线。
2、允许高容错和更高的冗余利用率
分布式系统在本质上比单台机器具有更高的容错性:假设一个企业在两个数据中心运行多台机器集群,即使一个数据中心突然意外离线,企业的应用程序依旧可以通过另一在线的数据中心运行,即使一个或多个节点停止工作,整体系统仍然保持正常工作状态。
3.更低延时
由于用户可以在不同的地理位置部署节点,分布式系统则会让工作流触达与之相距最近的节点,可以降低延迟、提高效率、保证性能。
4.更高的成本效益
分布式系统由许多小型计算机作为节点组成,当节点在一定程度上高于规模经济时则会比集中式的大型机更具成本效益。从为满足额外容量的扩展方式对比图中可以看到,当所需额外容量达到一个临界点后(即虚实线交界处),水平扩展的成本将会比垂直扩展的成本低。
横轴表示所需额外容量,纵轴表示单位容量价格
虚线表示垂直扩展,实线表示水平扩展
5、效率
分布式系统允许将复杂的问题和数据拆分成更小的部分,并分发给多台计算机来并行处理,这有助于缩短解决或计算这些问题所需的时间,从而提高运行效率。
分布式云计算的不足?
当然,任何事物都有其两面性,在举出分布式计算优势的同时,我们还需要看到其“短板”和不足,并加以重视进行技术的攻克和突破。总的来说,分布式云计算目前存在以下不足:
1、复杂性
与集中式计算系统相比,分布式计算系统在部署、维护和故障排除/调试方面存在更高的执行难度,这种难度体现硬件以及可以处理安全和通信问题的软件。
2、较高的初始投入成本
分发的部署成本高于在某一地点下的单一系统,由于额外的计算和信息交换而增加的处理开销也会增加总体成本。
3、安全问题
在集中计算系统中,数据访问可以被较容易地控制,但是管理分布式系统的安全性并不是一件容易的工作。不仅必须保护网络本身,用户还需要控制跨多个位置复制的数据。
分布式计算通过结合多台机器的能力,有助于提高大型项目的性能。它的可扩展性更高,允许用户根据不断增长的工作量需求添加计算机。尽管分布式计算有其自身的缺点,但它提供了无与伦比的可扩展性、更好的总体性能和更高的可靠性,这使得它成为处理高工作负载和大数据的企业的更好的解决方案。
分布式计算的应用?
分布式计算应用包括(但不仅限于):
1、内容分发网络(Content Delivery Network,简称为CDN)
2、PCDN(P2P CDN)
3、分布式网络爬虫
4、分布式数据存储
5、开放计算项目(Open Compute Project,简称为OCP)
分布式计算可以使用的场景正在不断地正在探索过程中不断增加,目前可以使用的领域包括电信网络、互联网、P2P网络、航空订票系统、分布式数据库、科学计算、分布式渲染等。
CIO之家 www.ciozj.com 公众号:imciow