当我们去熟悉一个概念的时候,为了更好的认识学习,倾向于全方面的了解,但是因为云计算尚处在一个快速发展的领域,还没有迎来顶峰,所以我们了解云计算就从概念、重要技术、主要公司以及当下情况就可以大致的了解这个领域,当别人谈起人工智能的时候,也不至于一脸懵逼。
首先我们需要先了解概念,某科是这么解释的,透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大效能的网络服务。
听起来很复杂,讲概念的话,我们换一种简单点的,云计算的本质是一种服务提供模型,通过这种模型可以随时随地、按需的通过网络访问共享资源池的资源,这个资源池的资源内容包括计算资源、网络资源、存储资源等,这些资源能够动态的分配和调整,在不同的用户之间;灵活切换划分。凡是符合这些特征的IT服务都可以称为云计算服务。
如果这个概念还很复杂,没事,你可以直接形象化的理解为云计算就是生活中的水电厂,之前每家每户都需要自己买发动机自己打水井,现在有一个公司供水供电还便宜,这个公司就是云计算厂家。
讲完概念,接下来讲三个架构:IaaS、PaaS、SaaS,先看看科学解释。
IaaS(Infrastructure-as-a- Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。例如:硬件服务器租用。
PaaS(Platform-as-a-Service): 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软件服务. 比如Google的GAE.
SaaS(Software-as-a-Service): 软件即服务, 是面向软件消费者的, 用户无需安装, 通过标准的Internet工具(比如浏览器), 即可使用云计算平台提供的软件, 比如Salesforce的CRM管理系统, Google的Gmail.
也可以再补充讲讲Baas,
BaaS(Backend as a Service)BaaS 是一种新型的云服务,旨在为移动和 Web 应用提供后端云服务,包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。
这个时候就要讲讲关键技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。
(1)编程模型
MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。
(2) 海量数据分布存储技术
云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。主服务器存储文件系统所以的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。
客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
(3) 海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。
BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。
Google的很多项目使用BT来存储数据,包括网页查询,Google earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功的提供了灵活高效的服务。
(4)虚拟化技术
通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
(5)云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。
云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
讲完技术,就要讲讲热门公司。
先讲国外,第一个肯定就是亚马逊Amazon的AWS,当前云计算市场领头雁,占据全球市场的百分之三十多的份额,第二个是微软的Azure,然后是IBM和谷歌。
国内的话,阿里云独占鳌头,同时值得肯定的是国内云计算市场算是阿里云开的头,才有了今天百花齐放的状态,后面的话就是腾讯云,还有百度云、ucloud、金山云等。
讲完公司,最后就要提一下云计算带来的好处与坏处。
好处有降低成本、扩展性强、高可靠性、可以远程访问、模块化等。谈到坏处的时候,就提一下隐私、安全以及稳定性基本就可以了。
讲云计算就从概念、技术、公司、以及优劣势基本就可以给人讲清楚云计算的概念了。