云计算,大数据和人工智能三者之间的关系
展开全部
云计算、大数据、人工智能这三者的发展不能分开来讲,三者是有着紧密联系的,互相联系,互相依托的,脱离了谁都不能更好的发展,让我们具体来看一下!
一、大数据
大数据指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
数据每天都在产生,各行各业都有,数据量也是相当之大,但如何整合数据,清洗数据,然后实现数据价值,这才是当今大数据行业的研究重点。大数据最后要实现的是数据超融合,应用到应用场景,大数据的价值才会体现出来。
人工智能就是大数据应用的体现。
二、云计算
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
对云计算的定义有多种说法。对于到底什么是云计算,至少可以找到100种解释。现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
说白了,云计算计算的是什么?云存储存储的是什么?还是大数据!所以离开大数据谈云计算,离开云计算谈大数据,这都是不科学的。
三、人工智能
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种复杂工作的理解是不同的。
人工智能其实就是大数据、云计算的应用场景。
现在已经比较火热的VR,沉浸式体验,就是依赖与大数据与云计算,让用户能够由更加真切的体验,并且VR技术是可以使用到各行各业的。
人工智能不同于传统的机器人,传统机器人只是代替人类做一些已经输入好的指令工作,而人工智能则包含了机器学习,从被动到主动,从模式化实行指令,到自主判断根据情况实行不同的指令,这就是区别。
大数据的概念在前几年已经炒得火热,但是也就是近两年才开始慢慢落地,依赖于云计算的发展,以及人们对人工智能的预期。
一、大数据
大数据指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
数据每天都在产生,各行各业都有,数据量也是相当之大,但如何整合数据,清洗数据,然后实现数据价值,这才是当今大数据行业的研究重点。大数据最后要实现的是数据超融合,应用到应用场景,大数据的价值才会体现出来。
人工智能就是大数据应用的体现。
二、云计算
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
对云计算的定义有多种说法。对于到底什么是云计算,至少可以找到100种解释。现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
说白了,云计算计算的是什么?云存储存储的是什么?还是大数据!所以离开大数据谈云计算,离开云计算谈大数据,这都是不科学的。
三、人工智能
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种复杂工作的理解是不同的。
人工智能其实就是大数据、云计算的应用场景。
现在已经比较火热的VR,沉浸式体验,就是依赖与大数据与云计算,让用户能够由更加真切的体验,并且VR技术是可以使用到各行各业的。
人工智能不同于传统的机器人,传统机器人只是代替人类做一些已经输入好的指令工作,而人工智能则包含了机器学习,从被动到主动,从模式化实行指令,到自主判断根据情况实行不同的指令,这就是区别。
大数据的概念在前几年已经炒得火热,但是也就是近两年才开始慢慢落地,依赖于云计算的发展,以及人们对人工智能的预期。
展开全部
三者之间的关系具体如下:
云计算相当于人的大脑,是物联网的神经中枢。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。大数据相当于人的大脑从小学到大学记忆和存储的海量知识,这些知识只有通过消化,吸收、再造才能创造出更大的价值。人工智能打个比喻为一个人吸收了人类大量的知识,不断的深度学习、进化成为一方高人。人工智能离不开大数据,更是基于云计算平台完成深度学习进化。总结来讲就是通过物联网产生、收集海量的数据存储于云平台,再通过大数据分析,甚至更高形式的人工智能为人类的生产活动,生活所需提供更好的服务。
想了解更多有关云计算、大数据和人工智能的详情,推荐咨询达内教育。达内教育已从事19年IT技术培训,累计培养100万学员,并且独创TTS8.0教学系统,1v1督学,跟踪式学习,有疑问随时沟通;自主研发的26大课程体系更是紧跟企业需求,企业级项目,课程穿插大厂真实项目讲解,助力学员更好的提高。感兴趣的话点击此处,免费学习一下
云计算相当于人的大脑,是物联网的神经中枢。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。大数据相当于人的大脑从小学到大学记忆和存储的海量知识,这些知识只有通过消化,吸收、再造才能创造出更大的价值。人工智能打个比喻为一个人吸收了人类大量的知识,不断的深度学习、进化成为一方高人。人工智能离不开大数据,更是基于云计算平台完成深度学习进化。总结来讲就是通过物联网产生、收集海量的数据存储于云平台,再通过大数据分析,甚至更高形式的人工智能为人类的生产活动,生活所需提供更好的服务。
想了解更多有关云计算、大数据和人工智能的详情,推荐咨询达内教育。达内教育已从事19年IT技术培训,累计培养100万学员,并且独创TTS8.0教学系统,1v1督学,跟踪式学习,有疑问随时沟通;自主研发的26大课程体系更是紧跟企业需求,企业级项目,课程穿插大厂真实项目讲解,助力学员更好的提高。感兴趣的话点击此处,免费学习一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么是大数据云计算物联网大白话这些与人工智能的关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
了解大数据与人工智能的区别与联系,首先我们从认知和理解大数据和人工智能的概念开始。
1、大数据
大数据是物联网、Web系统和信息系统发展的综合结果,其中物联网的影响最大,所以大数据也可以说是物联网发展的必然结果。大数据相关的技术紧紧围绕数据展开,包括数据的采集、整理、传输、存储、安全、分析、呈现和应用等等。目前,大数据的价值主要体现在分析和应用上,比如大数据场景分析等。
2、人工智能
人工智能是典型的交叉学科,研究的内容集中在机器学习、自然语言处理、计算机视觉、机器人学、自动推理和知识表示等六大方向,目前机器学习的应用范围还是比较广泛的,比如自动驾驶、智慧医疗等领域都有广泛的应用。人工智能的核心在于“思考”和“决策”,如何进行合理的思考和合理的行动是目前人工智能研究的主流方向。
3、大数据与人工智能
大数据和人工智能虽然关注点并不相同,但是却有密切的联系,一方面人工智能需要大量的数据作为“思考”和“决策”的基础,另一方面大数据也需要人工智能技术进行数据价值化操作,比如机器学习就是数据分析的常用方式。在大数据价值的两个主要体现当中,数据应用的主要渠道之一就是智能体(人工智能产品),为智能体提供的数据量越大,智能体运行的效果就会越好,因为智能体通常需要大量的数据进行“训练”和“验证”,从而保障运行的可靠性和稳定性。
目前大数据相关技术已经趋于成熟,相关的理论体系已经逐步完善,而人工智能尚处在行业发展的初期,理论体系依然有巨大的发展空间。从学习的角度来说,如果从大数据开始学习是个不错的选择,从大数据过渡到人工智能也会相对比较容易。总的来说,两个技术之间并不存在孰优孰劣的问题,发展空间都非常大。
1、大数据
大数据是物联网、Web系统和信息系统发展的综合结果,其中物联网的影响最大,所以大数据也可以说是物联网发展的必然结果。大数据相关的技术紧紧围绕数据展开,包括数据的采集、整理、传输、存储、安全、分析、呈现和应用等等。目前,大数据的价值主要体现在分析和应用上,比如大数据场景分析等。
2、人工智能
人工智能是典型的交叉学科,研究的内容集中在机器学习、自然语言处理、计算机视觉、机器人学、自动推理和知识表示等六大方向,目前机器学习的应用范围还是比较广泛的,比如自动驾驶、智慧医疗等领域都有广泛的应用。人工智能的核心在于“思考”和“决策”,如何进行合理的思考和合理的行动是目前人工智能研究的主流方向。
3、大数据与人工智能
大数据和人工智能虽然关注点并不相同,但是却有密切的联系,一方面人工智能需要大量的数据作为“思考”和“决策”的基础,另一方面大数据也需要人工智能技术进行数据价值化操作,比如机器学习就是数据分析的常用方式。在大数据价值的两个主要体现当中,数据应用的主要渠道之一就是智能体(人工智能产品),为智能体提供的数据量越大,智能体运行的效果就会越好,因为智能体通常需要大量的数据进行“训练”和“验证”,从而保障运行的可靠性和稳定性。
目前大数据相关技术已经趋于成熟,相关的理论体系已经逐步完善,而人工智能尚处在行业发展的初期,理论体系依然有巨大的发展空间。从学习的角度来说,如果从大数据开始学习是个不错的选择,从大数据过渡到人工智能也会相对比较容易。总的来说,两个技术之间并不存在孰优孰劣的问题,发展空间都非常大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-06-07 · 以道承诺未就业全额退款
关注
展开全部
云计算最初的目标是对资源的管理,管理的主要是计算资源,网络资源,存储资源三个方面。想象你有一大堆的服务器,交换机,存储设备,放在你的机房里面,你最想做的事情就是把这些东西统一的管理起来,最好能达到当别人向你请求分配资源的时候(例如1核1G内存,10G硬盘,1M带宽的机器),能够达到想什么时候要就能什么时候要,想要多少就有多少的状态。
这就是所谓的弹性,俗话说就是灵活性。灵活性分两个方面,想什么时候要就什么时候要,这叫做时间灵活性,想要多少就要多少,这叫做空间灵活性。
物理机显然是做不到这一点的。虽然物理设备是越来越牛了:
服务器用的是物理机,例如戴尔,惠普,IBM,联想等物理服务器,随着硬件设备的进步,物理服务器越来越强大了,64核128G内存都算是普通配置。
网络用的是硬件交换机和路由器,例如思科的,华为的,从1GE到10GE,现在有40GE和100GE,带宽越来越牛。
存储方面有的用普通的磁盘,也有了更快的SSD盘。容量从M,到G,连笔记本电脑都能配置到T,更何况磁盘阵列。
但是物理设备有着大大的缺点:
1、人工运维:如果你在一台服务器上安装软件,把系统安装坏了,怎么办?只有重装。当你想配置一下交换机的参数,需要串口连上去进行配置。当你想增加一块磁盘,总要买一块插进服务器。这些都需要人工来,而且很大可能要求机房。你们公司在北五环,机房在南六环,这酸爽。
2、浪费资源:其实你只想部署一个小小的网站,却要用128G的内存。混着部署吧,就有隔离性的问题。
3、隔离性差:你把好多的应用部署在同一台物理机上,他们之间抢内存,抢cpu,一个写满了硬盘,另一个就没法用了,一个弄挂了内核,另一个也同时挂了,如果部署两个相同的应用,端口还会冲突,动不动就会出错。
所以人们想到的第一个办法叫做虚拟化。所谓虚拟化,就是把实的变成虚的。
物理机变为虚拟机:cpu是虚拟的,内存是虚拟的。
物理交换机变为虚拟交换机:网卡是虚拟的,交换机是虚拟的,带宽也是虚拟的。
物理存储变成虚拟存储:多块硬盘虚拟成一个存储池,从中虚拟出多块小硬盘。
虚拟化很好的解决了上面的三个问题:
人工运维:虚拟机的创建和删除都可以远程操作,虚拟机被玩坏了,删了再建一个分钟级别的。虚拟网络的配置也可以远程操作,创建网卡,分配带宽都是调用接口就能搞定的。
浪费资源:虚拟化了以后,资源可以分配的很小很小,比如1个cpu,1G内存,1M带宽,1G硬盘,都可以被虚拟出来。
隔离性差:每个虚拟机有独立的cpu, 内存,硬盘,网卡,不同虚拟机的应用互不干扰。
在虚拟化阶段,领跑者是VMware,可以实现基本的计算,网络,存储的虚拟化。
当然这个世界有闭源,就有开源,有Windows就有Linux,有iOS就有Andord,有VMware,就有Xen和KVM。在开源虚拟化方面,Citrix的Xen做的不错,后来Redhat在KVM发力不少。
对于网络虚拟化,有Open vSwitch,可以通过命令创建网桥,网卡,设置VLAN,设置带宽。
对于存储虚拟化,对于本地盘,有LVM,可以将多个硬盘变成一大块盘,然后在里面切出一小块给用户。
但是虚拟化也有缺点,通过虚拟化软件创建虚拟机,需要人工指定放在哪台机器上,硬盘放在哪个存储设备上,网络的VLAN ID,带宽具体的配置,都需要人工指定。所以单单使用虚拟化的运维工程师往往有一个Excel表格,有多少台机器,每台机器部署了哪些虚拟机。所以,一般虚拟化的集群数目都不是特别的大。
为了解决虚拟化阶段的问题,人们想到的一个方式为池化,也就是说虚拟化已经将资源分的很细了,但是对于如此细粒度的资源靠Excel去管理,成本太高,能不能打成一个大的池,当需要资源的时候,帮助用户自动的选择,而非用户指定。所以这个阶段的关键点:调度器Scheduler。
于是VMware有了自己的vCloud。
于是基于Xen和KVM的私有云平台CloudStack,后来Citrix将其收购后开源。
当这些私有云平台在用户的数据中心里面卖的其贵无比,赚的盆满钵满的时候。有其他的公司开始了另外的选择,这就是AWS和Google,开始了公有云领域的探索。
AWS最初就是基于Xen技术进行虚拟化的,并且最终形成了公有云平台。也许AWS最初只是不想让自己的电商领域的利润全部交给私有云厂商吧,于是自己的云平台首先支撑起了自己的业务,在这个过程中,AWS自己严肃的使用了自己的云计算平台,使得公有云平台不是对于资源的配置更加友好,而是对于应用的部署更加友好,最终大放异彩。
公有云的第一名AWS活的很爽,第二名Rackspace就不太爽了,没错,互联网行业嘛,基本上就是一家独大。第二名如何逆袭呢?开源是很好的办法,让整个行业大家一起为这个云平台出力,兄弟们,大家一起上。于是Rackspace与美国航空航天局(NASA)合作创始了开源云平台OpenStack。OpenStack现在发展的和AWS有点像了,所以从OpenStack的模块组成,可以看到云计算池化的方法。
OpenStack包含哪些组件呢?
计算池化模块Nova:OpenStack的计算虚拟化主要使用KVM,然而到底在那个物理机上开虚拟机呢,这要靠nova-scheduler。
网络池化模块Neutron:OpenStack的网络虚拟化主要使用Openvswitch,然而对于每一个Openvswitch的虚拟网络,虚拟网卡,VLAN,带宽的配置,不需要登录到集群上配置,Neutron可以通过SDN的方式进行配置。
存储池化模块Cinder:OpenStack的存储虚拟化,如果使用本地盘,则基于LVM,使用哪个LVM上分配的盘,也是用过scheduler来的。后来就有了将多台机器的硬盘打成一个池的方式Ceph,则调度的过程,则在Ceph层完成。
有了OpenStack,所有的私有云厂商都疯了,原来VMware在私有云市场实在赚的太多了,眼巴巴的看着,没有对应的平台可以和他抗衡。现在有了现成的框架,再加上自己的硬件设备,你可以想象到的所有的IT厂商的巨头,全部加入到社区里面来,将OpenStack开发为自己的产品,连同硬件设备一起,杀入私有云市场。
网易当然也没有错过这次风口,上线了自己的OpenStack集群,网易云基础服务(网易蜂巢)基于OpenStack自主研发了IaaS服务,在计算虚拟化方面,通过裁剪KVM镜像,优化虚拟机启动流程等改进,实现了虚拟机的秒级别启动。在网络虚拟化方面,通过SDN和Openvswitch技术,实现了虚拟机之间的高性能互访。在存储虚拟化方面,通过优化Ceph存储,实现高性能云盘。
但是网易并没有杀进私有云市场,而是使用OpenStack支撑起了自己的应用,仅仅是资源层面弹性是不够的,还需要开发出对应用部署友好的组件。
随着公有云和基于OpenStack的私有云越来越成熟,构造一个成千上万个物理节点的云平台以及不是问题,而且很多云厂商都会采取多个数据中心部署多套云平台,总的规模数量就更加大了,在这个规模下,对于客户感知来说,基本上可以实现想什么时候要什么时候要,想要多少要多少。
云计算解决了基础资源层的弹性伸缩,却没有解决应用随基础资源层弹性伸缩而带来的批量、快速部署问题。比如在双十一期间,10个节点要变成100个节点,如果使用物理设备,再买90台机器肯定来不及,仅仅有IaaS实现资源的弹性是不够的,再创建90台虚拟机,也是空的,还是需要运维人员一台一台地部署。于是有了PaaS层,PaaS主要用于管理应用层。我总结为两部分:一部分是你自己的应用应当自动部署,比如Puppet、Chef、Ansible、 Cloud Foundry,CloudFormation等,可以通过脚本帮你部署;另一部分是你觉得复杂的通用应用不用部署,比如数据库、缓存等可以在云平台上一点即得。
要么就是自动部署,要么就是不用部署,总的来说就是应用层你也少操心,就是PaaS的作用。当然最好还是都不用去部署,一键可得,所以公有云平台将通用的服务都做成了PaaS平台。另一些你自己开发的应用,除了你自己其他人不会知道,所以你可以用工具变成自动部署。
当然这种部署方式也有一个问题,就是无论Puppet、 Chef、Ansible把安装脚本抽象的再好,说到底也是基于脚本的,然而应用所在的环境千差万别。文件路径的差别,文件权限的差别,依赖包的差别,应用环境的差别,Tomcat、 PHP、 Apache等软件版本的差别,JDK、Python等版本的差别,是否安装了一些系统软件,是否占用了哪些端口,都可能造成脚本执行的不成功。所以看起来是一旦脚本写好,就能够快速复制了,但是环境稍有改变,就需要把脚本进行新一轮的修改、测试、联调。例如在数据中心写好的脚本移到AWS上就不一定直接能用,在AWS上联调好了,迁移到Google Cloud上也可能会再出问题。
容器是Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准在没有集装箱的时代,假设将货物从A运到B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,摆的七零八落,然后搬上船重新整齐摆好。因此在没有集装箱的时候,每次换船,船员们都要在岸上待几天才能走。
有了集装箱以后,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船的时候,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不能上岸长时间耽搁了。
这是集装箱“打包”、“标准”两大特点在生活中的应用。
部署任何一个应用,也包含很多零零散散的东西,权限,用户,路径,配置,应用环境等!这就像很多零碎地货物,如果不打包,就需要在开发、测试、生产的每个环境上重新查看以保证环境的一致,有时甚至要将这些环境重新搭建一遍,就像每次将货物卸载、重装一样麻烦。中间稍有差池,都可能导致程序的运行失败。
那么容器如何对应用打包呢?还是要学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。
封闭的环境主要使用了两种技术,一种是看起来是隔离的技术,称为namespace,也即每个namespace中的应用看到的是不同的IP地址、用户空间、程号等。另一种是用起来是隔离的技术,称为cgroup,也即明明整台机器有很多的CPU、内存,而一个应用只能用其中的一部分。
有了这两项技术,集装箱的铁盒子我们是焊好了,接下来就是如何将这个集装箱标准化,从而在哪艘船上都能运输。这里的标准一个是镜像,一个是容器的运行环境。
所谓的镜像,就是将你焊好集装箱的那个时刻,将集装箱的状态保存下来,就像孙悟空说定,集装箱里面就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件,都能还原当时定住的那个时刻。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时刻的过程)就是容器的运行的过程。
有了容器,云计算才真正实现了应用层和资源层的完全弹性。
在云计算的发展过程中,云计算逐渐发现自己除了资源层面的管理,还能够进行应用层面的管理,而大数据应用作为越来越重要的应用之一,云计算也可以放入PaaS层管理起来,而大数据也发现自己越来越需要大量的计算资源,而且想什么时候要就什么时候要,想要多少就要多少,于是两者相遇,相识,相知,走在了一起。
这就是所谓的弹性,俗话说就是灵活性。灵活性分两个方面,想什么时候要就什么时候要,这叫做时间灵活性,想要多少就要多少,这叫做空间灵活性。
物理机显然是做不到这一点的。虽然物理设备是越来越牛了:
服务器用的是物理机,例如戴尔,惠普,IBM,联想等物理服务器,随着硬件设备的进步,物理服务器越来越强大了,64核128G内存都算是普通配置。
网络用的是硬件交换机和路由器,例如思科的,华为的,从1GE到10GE,现在有40GE和100GE,带宽越来越牛。
存储方面有的用普通的磁盘,也有了更快的SSD盘。容量从M,到G,连笔记本电脑都能配置到T,更何况磁盘阵列。
但是物理设备有着大大的缺点:
1、人工运维:如果你在一台服务器上安装软件,把系统安装坏了,怎么办?只有重装。当你想配置一下交换机的参数,需要串口连上去进行配置。当你想增加一块磁盘,总要买一块插进服务器。这些都需要人工来,而且很大可能要求机房。你们公司在北五环,机房在南六环,这酸爽。
2、浪费资源:其实你只想部署一个小小的网站,却要用128G的内存。混着部署吧,就有隔离性的问题。
3、隔离性差:你把好多的应用部署在同一台物理机上,他们之间抢内存,抢cpu,一个写满了硬盘,另一个就没法用了,一个弄挂了内核,另一个也同时挂了,如果部署两个相同的应用,端口还会冲突,动不动就会出错。
所以人们想到的第一个办法叫做虚拟化。所谓虚拟化,就是把实的变成虚的。
物理机变为虚拟机:cpu是虚拟的,内存是虚拟的。
物理交换机变为虚拟交换机:网卡是虚拟的,交换机是虚拟的,带宽也是虚拟的。
物理存储变成虚拟存储:多块硬盘虚拟成一个存储池,从中虚拟出多块小硬盘。
虚拟化很好的解决了上面的三个问题:
人工运维:虚拟机的创建和删除都可以远程操作,虚拟机被玩坏了,删了再建一个分钟级别的。虚拟网络的配置也可以远程操作,创建网卡,分配带宽都是调用接口就能搞定的。
浪费资源:虚拟化了以后,资源可以分配的很小很小,比如1个cpu,1G内存,1M带宽,1G硬盘,都可以被虚拟出来。
隔离性差:每个虚拟机有独立的cpu, 内存,硬盘,网卡,不同虚拟机的应用互不干扰。
在虚拟化阶段,领跑者是VMware,可以实现基本的计算,网络,存储的虚拟化。
当然这个世界有闭源,就有开源,有Windows就有Linux,有iOS就有Andord,有VMware,就有Xen和KVM。在开源虚拟化方面,Citrix的Xen做的不错,后来Redhat在KVM发力不少。
对于网络虚拟化,有Open vSwitch,可以通过命令创建网桥,网卡,设置VLAN,设置带宽。
对于存储虚拟化,对于本地盘,有LVM,可以将多个硬盘变成一大块盘,然后在里面切出一小块给用户。
但是虚拟化也有缺点,通过虚拟化软件创建虚拟机,需要人工指定放在哪台机器上,硬盘放在哪个存储设备上,网络的VLAN ID,带宽具体的配置,都需要人工指定。所以单单使用虚拟化的运维工程师往往有一个Excel表格,有多少台机器,每台机器部署了哪些虚拟机。所以,一般虚拟化的集群数目都不是特别的大。
为了解决虚拟化阶段的问题,人们想到的一个方式为池化,也就是说虚拟化已经将资源分的很细了,但是对于如此细粒度的资源靠Excel去管理,成本太高,能不能打成一个大的池,当需要资源的时候,帮助用户自动的选择,而非用户指定。所以这个阶段的关键点:调度器Scheduler。
于是VMware有了自己的vCloud。
于是基于Xen和KVM的私有云平台CloudStack,后来Citrix将其收购后开源。
当这些私有云平台在用户的数据中心里面卖的其贵无比,赚的盆满钵满的时候。有其他的公司开始了另外的选择,这就是AWS和Google,开始了公有云领域的探索。
AWS最初就是基于Xen技术进行虚拟化的,并且最终形成了公有云平台。也许AWS最初只是不想让自己的电商领域的利润全部交给私有云厂商吧,于是自己的云平台首先支撑起了自己的业务,在这个过程中,AWS自己严肃的使用了自己的云计算平台,使得公有云平台不是对于资源的配置更加友好,而是对于应用的部署更加友好,最终大放异彩。
公有云的第一名AWS活的很爽,第二名Rackspace就不太爽了,没错,互联网行业嘛,基本上就是一家独大。第二名如何逆袭呢?开源是很好的办法,让整个行业大家一起为这个云平台出力,兄弟们,大家一起上。于是Rackspace与美国航空航天局(NASA)合作创始了开源云平台OpenStack。OpenStack现在发展的和AWS有点像了,所以从OpenStack的模块组成,可以看到云计算池化的方法。
OpenStack包含哪些组件呢?
计算池化模块Nova:OpenStack的计算虚拟化主要使用KVM,然而到底在那个物理机上开虚拟机呢,这要靠nova-scheduler。
网络池化模块Neutron:OpenStack的网络虚拟化主要使用Openvswitch,然而对于每一个Openvswitch的虚拟网络,虚拟网卡,VLAN,带宽的配置,不需要登录到集群上配置,Neutron可以通过SDN的方式进行配置。
存储池化模块Cinder:OpenStack的存储虚拟化,如果使用本地盘,则基于LVM,使用哪个LVM上分配的盘,也是用过scheduler来的。后来就有了将多台机器的硬盘打成一个池的方式Ceph,则调度的过程,则在Ceph层完成。
有了OpenStack,所有的私有云厂商都疯了,原来VMware在私有云市场实在赚的太多了,眼巴巴的看着,没有对应的平台可以和他抗衡。现在有了现成的框架,再加上自己的硬件设备,你可以想象到的所有的IT厂商的巨头,全部加入到社区里面来,将OpenStack开发为自己的产品,连同硬件设备一起,杀入私有云市场。
网易当然也没有错过这次风口,上线了自己的OpenStack集群,网易云基础服务(网易蜂巢)基于OpenStack自主研发了IaaS服务,在计算虚拟化方面,通过裁剪KVM镜像,优化虚拟机启动流程等改进,实现了虚拟机的秒级别启动。在网络虚拟化方面,通过SDN和Openvswitch技术,实现了虚拟机之间的高性能互访。在存储虚拟化方面,通过优化Ceph存储,实现高性能云盘。
但是网易并没有杀进私有云市场,而是使用OpenStack支撑起了自己的应用,仅仅是资源层面弹性是不够的,还需要开发出对应用部署友好的组件。
随着公有云和基于OpenStack的私有云越来越成熟,构造一个成千上万个物理节点的云平台以及不是问题,而且很多云厂商都会采取多个数据中心部署多套云平台,总的规模数量就更加大了,在这个规模下,对于客户感知来说,基本上可以实现想什么时候要什么时候要,想要多少要多少。
云计算解决了基础资源层的弹性伸缩,却没有解决应用随基础资源层弹性伸缩而带来的批量、快速部署问题。比如在双十一期间,10个节点要变成100个节点,如果使用物理设备,再买90台机器肯定来不及,仅仅有IaaS实现资源的弹性是不够的,再创建90台虚拟机,也是空的,还是需要运维人员一台一台地部署。于是有了PaaS层,PaaS主要用于管理应用层。我总结为两部分:一部分是你自己的应用应当自动部署,比如Puppet、Chef、Ansible、 Cloud Foundry,CloudFormation等,可以通过脚本帮你部署;另一部分是你觉得复杂的通用应用不用部署,比如数据库、缓存等可以在云平台上一点即得。
要么就是自动部署,要么就是不用部署,总的来说就是应用层你也少操心,就是PaaS的作用。当然最好还是都不用去部署,一键可得,所以公有云平台将通用的服务都做成了PaaS平台。另一些你自己开发的应用,除了你自己其他人不会知道,所以你可以用工具变成自动部署。
当然这种部署方式也有一个问题,就是无论Puppet、 Chef、Ansible把安装脚本抽象的再好,说到底也是基于脚本的,然而应用所在的环境千差万别。文件路径的差别,文件权限的差别,依赖包的差别,应用环境的差别,Tomcat、 PHP、 Apache等软件版本的差别,JDK、Python等版本的差别,是否安装了一些系统软件,是否占用了哪些端口,都可能造成脚本执行的不成功。所以看起来是一旦脚本写好,就能够快速复制了,但是环境稍有改变,就需要把脚本进行新一轮的修改、测试、联调。例如在数据中心写好的脚本移到AWS上就不一定直接能用,在AWS上联调好了,迁移到Google Cloud上也可能会再出问题。
容器是Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准在没有集装箱的时代,假设将货物从A运到B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,摆的七零八落,然后搬上船重新整齐摆好。因此在没有集装箱的时候,每次换船,船员们都要在岸上待几天才能走。
有了集装箱以后,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船的时候,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不能上岸长时间耽搁了。
这是集装箱“打包”、“标准”两大特点在生活中的应用。
部署任何一个应用,也包含很多零零散散的东西,权限,用户,路径,配置,应用环境等!这就像很多零碎地货物,如果不打包,就需要在开发、测试、生产的每个环境上重新查看以保证环境的一致,有时甚至要将这些环境重新搭建一遍,就像每次将货物卸载、重装一样麻烦。中间稍有差池,都可能导致程序的运行失败。
那么容器如何对应用打包呢?还是要学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。
封闭的环境主要使用了两种技术,一种是看起来是隔离的技术,称为namespace,也即每个namespace中的应用看到的是不同的IP地址、用户空间、程号等。另一种是用起来是隔离的技术,称为cgroup,也即明明整台机器有很多的CPU、内存,而一个应用只能用其中的一部分。
有了这两项技术,集装箱的铁盒子我们是焊好了,接下来就是如何将这个集装箱标准化,从而在哪艘船上都能运输。这里的标准一个是镜像,一个是容器的运行环境。
所谓的镜像,就是将你焊好集装箱的那个时刻,将集装箱的状态保存下来,就像孙悟空说定,集装箱里面就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件,都能还原当时定住的那个时刻。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时刻的过程)就是容器的运行的过程。
有了容器,云计算才真正实现了应用层和资源层的完全弹性。
在云计算的发展过程中,云计算逐渐发现自己除了资源层面的管理,还能够进行应用层面的管理,而大数据应用作为越来越重要的应用之一,云计算也可以放入PaaS层管理起来,而大数据也发现自己越来越需要大量的计算资源,而且想什么时候要就什么时候要,想要多少就要多少,于是两者相遇,相识,相知,走在了一起。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询