深度学习
1.谷歌的架构变革
从2003年到2004年,谷歌(Google)陆续发表了关于GFS、MapReduce和BigTable的3篇 论文,基本上公开了谷歌内部用于处理搜索海量数据的平台架构。GFS是大规模的分布式文件系统,MapReduce是一个并行处理框架下的编程模 式,BigTable是建立在GFS基础上一个按键值方式组织的非关系型数据库。由于当时的技术、产品和平台无法满足谷歌快速增长的业务发展,谷歌根据搜 索业务的特点,大胆创新,打破了传统分布式文件系统的条条框框,开发了一个支持大规模扩展性的容错分布式文件系统,并在其基础上构建了并行计算平台和分布 式数据库,使得谷歌的搜索平台能处理前所未有并不断爆炸性增长的海量数据。
特别是MapReduce的并行处理编程框架,通过软件对数据进行自动的切分,并把任务分配到不同节点上,实现自动调 度、均衡工作负载,同时自动监控,自动修复错误,管理节点间通信。传统的并行处理应用,需要开发者掌握MPI编程等技能,一般只是限于高性能计算领域。而 MapReduce框架简化了并行处理系统的编程,大大降低了开发者开发并行处理系统的门槛。可以说,MapReduce框架,使得先天缺少并行计算能力 的冯·诺依曼架构的电脑,通过集群的并行处理,仍然能够在互联网时代焕发青春。
谷歌的3篇论文奠定了互联网大规模分布式系统的架构基础,掀开了大数据时代的帷幕。谷歌的贡献主要是基于其自身的业务 需求,在对比传统分布式架构优劣势的基础上,提出了一套全新的分布式存储、分布式并行计算和分布式数据库的架构。但其特点还是在集中化模式管理下的可扩展 分布式系统。
2.亚马逊的架构变革
谷歌是首先提出云计算概念的公司,而另一个首创云计算业务模式的亚马逊也不甘落后,于2007年发表了Dynamo分 布式数据库论文。与谷歌相同的是,亚马逊也是根据自身的业务特点来做创新,都将系统出错作为常态处理;而与谷歌不同的是,亚马逊采用了一个无中心、完全分 布式的架构。
亚马逊的Dynamo论文公开了分布式键值数据库Dynamo的设计和实施细节。Dynamo的设计主要是针对大规模 电商的应用场景,例如购物车,需要提供“Always on”(总是在线),任何时候用户都能修改,也就是高可用的客户体验。其设计目标是把可用性提到第一位,在某些场合牺牲一致性。Dynamo论文很明确的 提出“Eventual Consistency”(最终一致性)的概念。其设计理念参考Peer-to-Peer架构,整个分布式系统采用无中心架构。Dynamo综合了一些著 名的技术来实现可伸缩性和可用性:数据划分(Data partitioned)和使用一致性哈希的复制(replicated),并通过对象版本(object versioning)提供一致性。在更新时,副本之间的一致性是由仲裁(quorum)中心化的副本同步协议来维持的。Dynamo中共涉及3个重要的 参数,其中N代表数据的副本数,W代表一次写操作的最小必须写成功节点数;R代表一次读操作的最小读成功节点数。要求W+R>N,读数据时,只要有 除了Coordinator之外的R-1个节点返回了数据,就算是读成功(此时可能返回多个版本的数据)。同理,写数据时,只要有除 Coordinator之外的W-1个节点写入成功,就算数据写入成功。Dynamo采用了基于gossip协议分布式故障检测及成员 (membership)协议。Dynamo只需要很少的人工管理,存储节点可以添加和删除,而不需要任何手动划分或重新分配 (redistribution)。Dynamo很早就成为Amazon电子商务平台的核心服务的底层存储技术,它能够有效地扩展到极端高峰负载,在繁忙 的假日购物季节也没有任何的停机时间。
Dynamo和BigTable都属于非关系型数据库,也就是常说的NoSQL数据库。但两者设计理念有很大的不同。 Dynamo是完全无中心的设计,其假设是在内部信任网络部署,没有安全的措施。而BigTable是集中式管理,利用权限控制来提供安全措施。 Dynamo的数据模型是键值模型,而BigTable是多维排序图。Dynamo采用一致性哈希来实现分布式元数据管理,而BigTable采用集中式 的元数据管理。两者的适应场景也各不相同。Dynamo主要针对电商购物车应用,对可用性要求高,一致性要求不高,在CAP上强调对A(可用性)和P(分 区容错性)的要求,是一个典型的AP数据库。而BigTable对一致性和可扩展性的要求比较高,比较适合处理结构化的数据,是一个典型的CP数据库。
3.云计算架构的特点
云计算双雄谷歌和亚马逊开启了云计算、大数据时代。但云计算、大数据的概念却很快沦为厂商炒作的概念,使得很多客户感到困惑。
美国的标准和技术组织(NIST)给了一个比较客观、经得起时间检验的定义,可以澄清很多误解。NIST给出的定义 是:“云计算是一个提供泛在、方便、按需,并通过网络访问一个共享的可配置的计算资源池(包括网络、服务器、存储、应用和服务)的模式,该模式下资源能够 迅速地被创建或释放,而不需太多的管理开销或服务提供商的人工干预。”
NIST还进一步总结出一个“三四五”要点来进一步阐释云计算概念:“三”是指云计算的3种服务模式(基础设施即服务 IaaS、平台即服务PaaS、软件即服务SaaS);“四”是指云计算的4种部署模式(私有云、公有云、混合云、社区云);五”是指云计算的5个特点 (按需自服务、宽带访问、资源池、快速弹性扩展、计量服务)。
前面我们在架构的特点中提到,架构不单单是技术的简单组合,其中很重要的是要权衡效率和成本,也就是说,在架构中的诸 多考虑因素中,一个很重要的考虑因素是经济的因素。缺少合理经济模型的架构,是很难成为主流架构的,从冯·诺依曼架构和哈佛架构的对比可以看出这一点,从 云计算的架构特征来看也是一样。
NIST的云计算定义还是太正式,太文绉绉地不好理解。用大白话来解释,云计算其实就是用容错、并行调度软件来把大规 模的廉价的标准工业服务器组成资源池,把资源池的IT能力(具体包括计算能力、网络能力、存储能力、应用能力)转化成服务,以弹性按需的方式提供出去。这 里面有几个值得关注的地方:
1)云计算是在分布式架构的基础上融入集约化管理的能力,具有集中化的架构特点。云计算时代,大部分的业务逻辑、数据处理都集中在运行于大型数据中心的云上,移动端主要是做展现。互联网时代的浏览器/服务端(BS)架构也逐渐向客户端/云端(CC)架构转型。
2)云计算架构是成本和效率的权衡。通过使用廉价的标准工业服务器,而不是昂贵的品牌设备来降低硬件成本,同时利用软件的容错来弥补廉价硬件质量的问题,并采用并行、虚拟化技术来提升资源的使用效率。
云计算是一种方便的提供计算、网络、资源以及在此之上构建的IT能力的一种服务模式。在该模式下会形成一个云计算所特 有的架构特点。这些架构特点就是面向服务(Service Oriented Architecture)、资源池化(Resource Pooling)、软件定义(Software Defined)、标准化廉价硬件(Commodity Hardware)、计量服务(Measured Service)、水平扩展及弹性(Scale-out&Elastic)。其中软件定义和标准化廉价硬件对传统IT的冲击最大。软件定义网络、 软件定义存储、软件定义安全的一个重要特点就是将控制层面与数据层面分离,将控制软件与硬件解耦,这样可以大幅度提高系统的开放性、扩展性和灵活性,也使 得管理更为方便。另外一个从经济层面考虑的因素就是能大幅度降低成本,让传统IT网络、存储和安全厂商失去专用硬件的保护壁垒。而以标准化廉价硬件为目标 的OCP(Open Compute Platform)以及天蝎计划则把话语权从传统厂商方面转到最终用户方面。不难想象,Cisco、EMC等以生产品牌产品为主业的传统厂商将会面临来自 “白牌机”厂商的巨大挑战。
4.大数据产生的根源
BigData这个概念是在麦肯锡咨询公司在其2011年5月发表的报告《Big data:The next frontier for innovation,competition,and productivity》中首次提出。在其报告中给出的大数据定义是:大数据指的是大小超出常规的数据库工具获取、存储、管理和分析能力的数据集。
大数据概念一经提出,迅速占领媒体的封面,出现了各行业言必称大数据的局面。很多传统的BI、数据仓库方案也被重新包装,以大数据面目出现,甚至很多与大数据无关的项目,也被包装成大数据。大数据一时间成了一个包装标签。
国际数据公司(IDC)从大数据的4个特征来定义它,即海量的数据规模(Volume)、快速的数据流转和动态的数据 体系(Velocity)、多样的数据类型(Variety)、巨大的数据价值(Value)。亚马逊的大数据科学家John Rauser则给出了一个简单的定义:大数据是任何超过一台计算机处理能力的数据量。
其实大数据的定义可能不是很重要,毕竟不同的角度观察可以有不同的定义。但有一个现象确实是不争的事实,数据量的指数 型爆炸性增长给人类带来了前所未有的挑战。这个挑战表现在计算能力上,表现在支持计算的能力的能源消耗上。因为,计算后面需要有能源的支持。理论上来说, 数据的增长永远会在越来越短的时间里倍增,但能源却没有办法跟随。最后结果只能是产生的数据被废弃。根据思科的预测,全球数据中心每年的IP流量会在 2019年达到10.4ZB,平均每月863EB,几乎3倍于2014年的(2014年是3.4ZB,平均每月287EB)。这种增长速度将直接推动IT 架构的创新和变革。
那为什么大数据的挑战会突然在21世纪初期出现呢?其实,冰冻三尺,非一日之寒,大数据现象是持续几十年的人类社会信 息化、数字化的结果。回顾二三十年前,大部分的通信信号都是模拟信号。但数字化革命后,大部分的信号都从模拟信号转化成数字信号。IT的发展更加速了数字 化的进程。早期的电脑只是把业务和管理信息化、数字化;互联网和移动互联网使得人与人的交流数字化;到了物联网时代,物与物的交互所产生的数据量会变得比 前者更大。
大数据的出现,要求更大的计算处理能力,从而推动了IT架构的发展。Google的3篇论文实际上就是在这种背景下产生。
目前大部分人看到的是大数据带来的机遇,希望通过大数据分析,能更准确地掌握客户需求,能够更好地把握市场变化的脉 搏,能更快地通过大数据的辅助决策来响应业务的变化。如果说,大数据的处理能力需要云计算来支撑,那么,大数据的分析,就要与行业知识相结合,建立相应的 行业大数据分析模型。而与行业进行深度结合,也催生了互联网+时代的到来。
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=989
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区