分布式计算

1、定义

  • ==分布式计算是一种计算方法,和集中式计算是相对的==。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。

  • 本质:如何把一个大型的任务分成若干个小任务,让多个计算机去处理。

    • ==分布式系统:一个分布式系统包括若干通过网络互联的计算机。==这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计算机程序称为分布式计算程序;分布式编程就是编写上述程序的过程。

2、优缺点

(1)优点

  • 高性价比

  • 资源共享

  • 可伸缩性

  • 容错性

(2)缺点

  • 多点故障

  • 安全性低

3、经典的案例

  • WWW

  • SETI@home(Search for Extra Terrestrial Intelligence at Home,寻找外星人)

    • 是一项利用全球联网的计算机共同搜寻地外文明(SETI)的科学实验计划,由美国著名高等学府加州大学伯克利分校创立,中心平台设立在伯克利空间科学实验室(Space Sciences Laboratory, SSL) 。==志愿者可以通过运行一个免费程序下载并分析从射电望远镜传来的数据来加入这个项目。==

  • BOINC(Berkeley Open Infrastructure for NetworkComputing,伯克利开放式网络计算平台)

    • 目前主流的分布式计算平台之一,由加州大学伯克利分校(University of California – Berkeley)计算机系于2003年发展出来的分布式计算系统。

4、分布式计算模式

(1)单机计算(集中式计算)

  • 与分布式相对应的一种计算模式,计算机不与任何网络互连,只使用本计算机系统所能支配的资源。

(2)并行计算

  • 并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。

(3)网络计算

  • 通过网络把各种资源和组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类服务。

(4)对等计算(P2P)

  • pear-to-pear:每个用户既是客户端,又是服务端。

(5)集群计算

  • ==在计算机中,集群是使用多个计算机,来组成一个对用户来说单一的高可用性的系统==。集群计算能够被用来实现==负载均衡==,集群计算的倡导者提出,对一个企业来说,集群在许多情况下,能够达到99.999%的可用性。==集群的一个主要思路就是,对外界来说,集群就像是一个唯一的系统==。

(6)网格计算

  • 研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。

  • 把整个网络整合成一台巨大的超级计算机,实现计算资源、存储资源等的全面共享

(7)云计算

(8)雾计算

  • 在该模式中数据、(数据)处理和应用程序集中在网络边缘的设备中,而不是几乎全部保存在云中,是云计算(Cloud Computing)的延伸概念,由思科(Cisco)提出的。这个因"云"而"雾"的命名源自"雾是更贴近地面的云"这一名句。

  • 雾计算和云计算一样,十分形象。云在天空飘浮,高高在上,遥不可及,刻意抽象;而雾却现实可及,贴近地面,就在你我身边。雾计算并非由性能强大的服务器组成,而是由性能较弱、更为分散的各类功能计算机组成,渗入工厂、汽车、电器、街灯及人们物质生活中的各类用品。

(9)边缘计算

  • 边缘计算指在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供边缘智能服务,满足行业数字化在敏捷连接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求

(10)大数据计算

①MapReduce

  • MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

②流式计算

  • 实时性计算

  • 在传统的数据处理流程中,总是先收集数据,然后将数据放到DB中。当人们需要的时候通过DB对数据做query,得到答案或进行相关的处理。这样看起来虽然非常合理,但是结果却非常的紧凑,尤其是在一些实时搜索应用环境中的某些具体问题,类似于MapReduce方式的离线处理并不能很好地解决问题。这就引出了一种新的数据计算结构—流计算方式。==它可以很好地对大规模流动数据在不断变化的运动过程中实时地进行分析,捕捉到可能有用的信息,并把结果发送到下一计算节点==

③Spark

  • 内存中计算

  • Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是–==Job中间输出结果可以保存在内存中,从而不再需要读写HDFS==,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

5、CAP定理

  • C:一致性。所有的节点访问同一份最新的数据副本

  • A:可用性。对数据更新具备高可用性。

  • P:分区容错性

云计算

0、核心内容:

(1)IaaS

  • IaaS: Infrastructure-as-a-Service(==基础设施即服务==)是第一层。

    • 指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式。在这种服务模型中,普通用户不用自己构建一个数据中心等硬件设施,而是通过租用的方式,利用 Internet从IaaS服务提供商获得计算机基础设施服务,包括服务器、存储和网络等服务。

(2)PaaS

  • PaaS: Platform-as-a-Service(==平台即服务==)第二层就是所谓的PaaS,某些时候也叫做中间件。

    • 把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Service)。

(3)SaaS

  • SaaS: Software-as-a-Service(==软件即服务==)是第三层。

    • SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。

1、定义

云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。

现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。

    •  

2、优点

(1)对于社会

  • 1)降低全社会的IT能耗,减少排放,真正做到“绿色计算”。

  • 2)提高全社会的IT设备使用率,并降低电子产品的数量,从而减少因设备淘汰而产生的电子产品垃圾,对于保护环境大有裨益。

  • 3)信息技术产业进一步合理分工——由资金雄厚、技术过硬、专业人士众多的机构负责建设并管理云端,从而提高了整个社会信息技术处理环境的可靠性。换言之,也就降低了因天灾人祸导致的生命财产损失。

  • 4)形成新的云计算产业。

  • 5)有利于全社会共享数据信息,打破信息孤岛。尤其是涉及公民的身份信息、档案信息、信用信息、健康信息及教育工作信息等的全国性公共云平台,带来的社会效益更是巨大的。

(2)对于云计算消费者

  • 1)降低了信息技术成本:前期投入和日常使用成本得到大幅度降低,同时也降低了因各种IT事故导致的损失。

  • 2)提高了数据的安全性,具体介绍见后续章节。

  • 3)提高了应用系统的可靠性,具体介绍见后续章节。

  • 4)提高了用户体验:当今网络无处不在,云计算消费者可以随时随地采用任何云终端接入云端并使用云中的计算资源,真正实现移动办公。

  • 5)大型昂贵软件平民化:诸如可靠性工程软件、ERP 系统、CRM 系统、商业智能系统等云化之后以 SaaS 模式出租,这些以前只有大型企业使用的软件系统,现在广大中小型企业和个人都能用得起。

  • 6)从复杂的 IT 技术泥潭中摆脱出来,专注于自己的核心业务和市场。

  • 7)能快速响应消费者对计算资源的弹性需求,从而能及时满足企业的业务变化。在传统 IT 系统下,一项新业务对 IT 资源的扩容要求,往往在数月或者一年后才能得到满足,这使得市场人员和管理层往往难以接受,因为市场是瞬息万变的。

  • 8)有利于企业之间或者个人之间共享信息,打破信息孤岛。

  • 9)个人、中小企业和机构也用得起高性能计算。

3、缺点

(1)严重依赖网络

  • 没有网络的地方,或者网络不稳定的地方,消费者可能根本无法使用云服务或用户体验很差。但这并不是云计算固有的缺陷,随着网络普及越来越广、网速越来越快,甚至是城市无线 Wi-Fi 全覆盖、国家无线 Wi-Fi 全覆盖的到来,将使网络不再是问题。

  • 针对这个问题,现在有一些胖云终端产品,它会把一些常见的应用程序驻留在本地,同时缓存数据,当网络良好时,数据自动与云端同步。

(2)数据可能泄密的环节增多

  • 云端、灾备中心、离线备份介质、网络、云终端、账号和密码,这些都有可能成为信息的泄密点。但是云计算使得数据信息遭到非人为因素破坏的概率大大降低了,比如在传统IT系统中,存储设备损坏、机房火灾、地震、雷劈、洪水等都会破坏数据,而在云计算环境则没有这些隐患。总之,云计算消除了一些数据泄密和破坏点,但是又带来了一些新的不安全因素。

(3)风险集中

  • 相对于传统的分散计算,云计算把计算资源集中在一起

  • 云端成了单点故障,如果云端发生事故,则影响面将非常巨大。目前常见的应对措施是数据冗余存储、建立灾备中心、建立双活数据中心等。

(4)用户对数据和技术的掌控灵活度下降

  • 对于 IaaS 云服务,用户无法掌控基础设施层;

  • 对于 PaaS 云服务,用户无法掌控基础设施层和平台软件层;

  • 而对于 SaaS 云服务,用户失去了基础设施层、平台软件层和应用软件层的掌控。

另外,数据存放在云端,如果数据量巨大,那么用户移动数据耗时又耗力,如果网速慢,则势必会严重影响数据的掌控灵活性。不过,对技术掌控降低反过来表示用户可以脱离繁杂的技术陷阱,从而专心关注企业的核心业务和市场,因此这也是优势。

4.发展历程

在上世纪的90年代,计算机网络出现了大爆炸,出现了以思科为代表以一系列公司,随即网络出现泡沫时代。

  • 在2004年,Web2.0会议举行,Web2.0成为当时的热点,这也标志着互联网泡沫破灭,计算机网络发展进入了一个新的阶段。在这一阶段,让更多的用户方便快捷地使用网络服务成为会联网发展亟待解决的问题,与此同时,一些大型公司也开始致力于开发大型计算能力的技术,为用户提供了更加强大的计算处理服务。

  • 在2006年8月9日,Google首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念。这是云计算发展史上第一次正式地提出这一概念,有着巨大的历史意义。

  • 2007年以来,“云计算”成为了计算机领域最令人关注的话题之一,同样也是大型企业、互联网建着力研究的重要方向。因为云计算的提出,互联网技术和IT服务出现了新的模式,引发了一场变革。

  • 在2008年,微软发布其公共云计算平台(Windows Azure Platform),由此拉开了微软的云计大幕。同样,云计算在国内也掀起一场风波,许多大型网络公司纷纷加入云计算的阵列。

  • 2009年1月,阿里软件在江苏南京建立首个“电子商务云计算中心”。同年11月,中国移动云计算平台“大云”计划启动。到现阶段,云计算已经发展到较为成熟的阶段。

  • 2019年8月17日,北京互联网法院发布《互联网技术司法应用白皮书》。发布会上,北京互联网法院互联网技术司法应用中心揭牌成立。

5.计算模式

  • 负载均衡。负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

    负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

  • 并行计算。 并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。

  • 效用计算 。简单的说就是通过互联网资源来实现企业用户的数据处理、存储和应用等问题,企业不必再组建自己的数据中心。

  • 网络存储

    网络存储(Network Storage)是数据存储的一种方式,网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage)、网络附加存储(NAS:Network Attached Storage)和存储区域网(SAN:Storage Area Network)。由于NAS对于普通消费者而言较为熟悉,所以一般网络存储都指NAS。

    网络存储被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌系统软件,可提供跨平台文件共享功能。网络存储通常在一个LAN上占有自己的节点,无需应用服务器的干预,允许用户在网络上存取数据,在这种配置中,网络存储集中管理和处理网络上的所有数据,将负载从应用或企业服务器上卸载下来,有效降低总拥有成本,保护用户投资。

  • 虚拟化

    虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

  • 热备份冗杂

    • 通过所有系统层面上的冗余,即硬件、系统软件、应用程序以及维护和监控界面,热备份冗余可 在享有最佳舒适性的同时,提供最高的故障安全性。

    • 配置、编程和监控完全集成于巴合曼的工具中,这就缩短了应用程序的设计时间和减小了与普通标准过程的偏差。同时还降低了运行过程中维护访问、故障排除和应用程序更新时的风险。

    • 热备份冗余将所有巴合曼模块通常具有的坚固性与高级的冗余技术最佳的性能完美地结合在一起。

6.经典案例

  • 中国电信的“e云”

    是以云计算为构架的个人移动增值服务,e云是安全的在线备份服务。中国电信”e云”是中国电信与EMC共同投资、联合经营、收入分成的模式。由EMC完成设备投资以及技术维护,中国电信提供网络能力和商业运营,运营收益五五分成。

  • 金蝶

    开发国内首个专注于支撑行业“云服务”的“前端桌面平台”——金蝶桌面服务系统,它整合所有服务通道,帮助用户一站式获取金蝶云服务资源,为客户构建“随你所需、随时随地、触手可及”的云标准支持服务模式。包括金蝶K/3Cloud云服务企业管理平台,金蝶ERP云服务解决方案等产品和服务,并以软件租赁,IT设备与运维服务,以及提供数据为盈利方式

  • 谷歌

    围绕其核心互联网搜索业务,收购了一批小型公司,并创建了一系列互联网服务,包括域名,电子邮件,在线日历,聊天,和可收费的GoogleApps(谷歌应用软件套件)等。GoogleApps就是以网络为基础的Office软件。GoogleApps有免费版和收费版两种,收费版每年每用户收费50美元。Google也与Salesforce结成联盟,提供GoogleApps和Salesforce产品的集成技术。收费版GoogleApps及广告收益成为其盈利模式。

  • 金山云

    拥有云主机、海量云存储、负载均衡、云关系型数据库等多项核心业务。金山云以个人云存储——企业快盘个人版业务和企业用户存储业务——快盘商业版和云服务平台为云存储的两大基础业务,金山云存储更看中提供后端持久的服务,在个人云存储付费业务中,金山云以稳定为主,并且实现盈利还需长期投入。而对于企业用户市场的快盘商业版就是“只要有用户就会有收入”的收费服务模式,也是金山云现阶段的运行重点。

  • 瑞星“云安全”系统

    是由千千万万具有“云安全探针”的软件产品在互联网上组成的巨大反病毒软件体系。随着瑞星“云安全”的发展,除瑞星全功能安全软件、卡卡上网安全助手等瑞星产品集成了“云安全探针”的功能外,迅雷、网际快车、巨人、久游等一批重量级厂商也相继加入了瑞星“云安全”计划,这些软件的客户端也同时成为瑞星“云安全”系统中的“云安全探针”。每个“云安全探针”都会把可疑信息上传到“云安全”服务器进行分析,并从“云安全”服务器获得最新的“云安全”成果,防范病毒保护电脑安全。

7.发展问题

(1)数据的安全问题

  • 数据的安全是企业关心的问题之一。数据的安全包括2个方面:一是保证数据不会丢失,二是保证数据不会被泄露和非法访问。如果数据出现丢失又没有备份或者被泄露和非法访问,都会给企业和客户带来无法估量的损失。因此必须制定出有效的方案来保证数据的安全。虽然云计算为存储数据提供了无限的空间,也为数据的处理提供了无限的计算能力,但是用户对于托管自己加密数据的云计算运营公司能否确保数据的安全仍存在着质疑。在使用云计算服务时,用户往往不清楚自己数据存放的位置,这样就会使用户产生对数据安全的担心,所以要有效地解决数据的安全问题,未来的云计算必须考虑全方位的安全解决方案,提供多用户架构的良好设计,还必须要有确实可信的云计算运营公司。

(2)网络的性能问题

  • 提高网络性能也是云计算面临的挑战之一。用户使用云计算服务离不开网络,但是接入网络的带宽较低或不稳定都会使云计算的性能大打折扣,因此要大力发展接入网络技术。此外,在云计算网络中完成信息的高效处理,云计算集群服务器要具备较高的性能,同时为了保证云计算的服务高质量地传给需要的用户,网络中通信设施也必须具备高性能。

(3)互操作问题

  • 在对云计算系统进行管理时,应当考虑云系统之间的互操作问题。当一个云系统需要访问另一个云系统的计算资源时,必须要对云计算的接口制定交互协议,这样才能使得不同的云计算服务提供者相互合作,以便提供更好更强大的服务。

(4)公共标准的开放问题

  • 目前,云计算还没有开放的公共标准,这给用户造成了许多不便。用户很难将使用的某个公司的云计算应用程序迁移到另一家公司的云计算平台上,这样就大大降低了云计算服务的转移弹性。因此,云计算要想更好的发展,就必须制定出一个统一的云计算公共标准。

(5)虚拟化带来的虚拟机的系统安全

  • 虚拟化技术在系统组织,降低系统操作代价,改进硬件资源的效率、利用率以及灵活性方面扮演着主要的角色。然而,虚拟化技术本身不仅面临着传统网络已有的安全威胁,还面临着自身引入的安全问题。如果一个系统感染了病毒,其它系统是否会受到株连,隔离工作能否做好,甚至后台的存储与数据信息是否受影响。如果虚拟机系统崩溃了,是否会对其它虚拟机有影响,这是一个很现的问题。

(6)电子商务的兴起带来的身份认证安全、个人信息安全和交易安全

  • 电子商务成为互联网的一个重要的发展方向,目前,每年全国网络产生的交易已经占到全年所有交易总额的9%,许多贵重的大件物品也有在网络上面交易的趋势。因此电子商务交易安全就成为非常迫切的问题,而在这方面,用户的安全防护却显得非常薄弱,个人交易密码被盗,网站或者银行数据库信息泄漏问题层出不穷,成为新的安全热点。

(7)云计算如何保证自身关键业务数据的安全

  • 企业把自己的业务放到云端数据中心去,如何系统内的用户可以轻松共享,节约了很多事情。看上去挺美,但是安全问题呢,万一数据泄密呢?这是每个CIO心里都打鼓的问题,这个问题既是安全问题,又是信息化的规划问题,而且要熟悉云计算的方方面面,到底是拿哪一层做虚拟,怎么来做。这些问题既对安全厂商展现机遇,又提出挑战。据有关数据表明,当前云计算所储存的相关资料达到了全世界数据资源的20%左右,其能够为被服务方提供有效的抽象资料。自云计算正式被提出之后,其在世界范围内的发展前景一直处于良好的状态,在2011年为1000万人口解决了工作失业问题,间接为国际经济发展提供了1.2万亿美元的资金注入。伴随着云端处理器所存在的世界资源不断增加,计算模式的应用不断完善,在一段时间内云计算都会成为世界各国科技方面所不能忽视的重要开发项目[2]。而云计算自身的安全与透明化为更多的企业以及个人提供了更好的服务类型,满足当前世界上大部分人的服务需求,有利于世界经济的持续稳定发展。

(8)云数据中心部署结构不够合理,资源利用率较低

  • 统计显示,在规模结构方面,中国大规模数据中心比例偏低,大型数据中心发展规模甚至不足国外某一互联网公司总量,目前还没有实现集约化、规模化的建设。

(9)云服务能力亟待提高,配套资源匮乏

  • 国内云计算服务能力与美国等发达国家相比仍然有较大差距,公共云计算服务业的规模相对较小,业务也比较单一,配套环境建设落后。随着Google、Amazon等企业加速在全球和中国周边的布局,云计算服务向境外集中的风险将进一步加大。

(10)信息安全法律法规和监管体系不够健全

  • 在与云计算安全相关的数据及隐私保护、安全管理等方面,中国云计算产业生态有着较大缺失。同时,由于对安全的担心和其他顾虑,云计算服务在中国的使用率也比美国等发达国家要低。

(11)云人才缺口,缺乏成熟商业模式

  • 根据数据显示,中国云计算人才缺口达到百万级,2012年与云计算相关的职位增长超过150%。云产业生态需要IT和CT产业的融合发展,需要复合型人才的培养和建设,因此学科融合和复合型人才的培养尤为重要。

8.完善措施

(1)合理设置访问权限,保障用户信息安全

  • 做好访问权限摄设置工作,强化资源的合理分享及应用;

  • 做好加密工作,强化信息安全防护。 强化安全技术体系的构建,在访问权限的合理设置中,提高信息防护水平

(2)强化数据信息完整性,推进存储技术发展

  • 强化对云系统中数据资源的安全保护,并确保数据的完整性;

  • 加快存储技术发展;

  • 优化计算机网络云技术的发展环境。

(3)法律法规,提高用户安全意识

  • 强化对供应商、用户等行为的规范及管理;

  • 用户端要提高安全防护意识。

9.结语

有什么好的方法及建议可以在评论区大家一起分享,喜欢博主的点波关注

分布式计算的详细笔记-编程知识网