公有云的第一名亚马逊过得很爽,第二名Rackspace过的就一样平常了。没办法,这就是互联网行业的暴虐性,多是赢者通吃的模式。所以第二名假如不是云计算行业的,很多人大概都没听过了。第二名就想,我干不外老大怎么办呢?开源吧。如上所述,亚马逊固然利用了开源的假造化技术,但是云化的代码是闭源的,很多想做又做不了云化平台的公司,只能眼巴巴的看着亚马逊挣大钱。Rackspace把源代码一公开,整个行业就可以一起把这个平台越做越好,兄弟们各人一起上,和老大拼了。
于是Rackspace和美国航空航天局互助创办了开源软件OpenStack,如图所示OpenStack的架构图,不是云计算行业的不消弄懂这个图,但是能够看到三个关键字,Compute计算,Networking网络,Storage存储。照旧一个计算,网络,存储的云化管理平台。
当然第二名的技术也优劣常棒的,有了OpenStack之后,果真像Rackspace想象的一样,所有想做云的大企业都疯了,你能想象到的所有如雷贯耳的大型IT企业,IBM,惠普,戴尔,华为,联想等等,都疯了。原来云平台各人都想做,看着亚马逊和Vmware赚了这么多钱,眼巴巴看着没办法,想自己做一个好像难度还挺大。如今好了,有了如许一个开源的云平台OpenStack,所有的IT厂商都加入到这个社区中来,对这个云平台进行贡献,包装成自己的产品,连同自己的硬件设备一起卖。有的做了私有云,有的做了公有云,OpenStack已经成为开源云平台的事实标准。
1.9 IaaS, 资源层面的灵活性
随着OpenStack的技术越来越成熟,可以管理的规模也越来越大,并且可以有多个OpenStack集群部署多套,好比北京部署一套,杭州部署两套,广州部署一套,然后进行统一的管理。如许整个规模就更大了。在这个规模下,对于普通用户的感知来讲,基本能够做到想什么时间要就什么什么药,想要多少就要多少。照旧拿云盘举例子,每个用户云盘都分配了5T乃至更大的空间,假如有1亿人,那加起来空间多大啊。实在背后的机制是如许的,分配你的空间,你大概只用了其中很少一点,好比说它分配给你了5个T,这么大的空间仅仅是你看到的,而不是真的就给你了,你实在只用了50个G,则真实给你的就是50个G,随着你文件的不停上传,分给你的空间会越来越多。当各人都上传,云平台发现快满了的时间(例如用了70%),会采购更多的服务器,扩充背后的资源,这个对用户是透明的,看不到的,从感觉上来讲,就实现了云计算的弹性。实在有点像银行,给储户的感觉是什么时间取钱都有,只要不同时挤兑,银行就不会垮。
这里做一个简单的总结,到了这个阶段,云计算基本上实现了时间灵活性和空间灵活性,实现了计算,网络,存储资源的弹性。计算,网络,存储我们常称为基础设施Infranstracture, 因而这个阶段的弹性称为资源层面的弹性,管理资源的云平台,我们称为基础设施服务,就是我们常听到的IaaS,Infranstracture As A Service。
二、云计算不但管资源,也要管应用
有了IaaS,实现了资源层面的弹性就够了吗?显然不是。还有应用层面的弹性。这里举个例子,好比说实现一个电商的应用,平常十台机器就够了,双十一须要一百台。你大概以为很好办啊,有了IaaS,新创建九十台机器就可以了啊。但是90台机器创建出来是空的啊,电商应用并没有放上去啊,只能你公司的运维人员一台一台的弄,照旧须要很长时间才能安装好的。固然资源层面实现了弹性,但是没有应用层的弹性,依然灵活性是不够的。
有没有方法解决这个问题呢?于是人们在IaaS平台之上又加了一层,用于管理资源以上的应用弹性的问题,这一层通常称为PaaS(Platform As A Service)。这一层通常比力难明确,实在大抵分两部分,一部分我称为你自己的应用自动安装,一部分我称为通用的应用不消安装。
我们先来说第一部分,自己的应用自动安装。好比电商应用是你自己开发的,除了你自己,其他人是不知道怎么安装的,好比电商应用,安装的时间须要设置付出宝或者微信的账号,才能别人在你的电商上买东西的时间,付的钱是打到你的账户内里的,除了你,谁也不知道,所以安装的过程平台帮不了忙,但是能够帮你做的自动化,你须要做一些工作,将自己的设置信息融入到自动化的安装过程中方可。好比上面的例子,双十一新创建出来的90台机器是空的,假如能够提供一个工具,能够自动在这新的90台机器上将电商应用安装好,就能够实现应用层面的真正弹性。例如Puppet, Chef, Ansible, Cloud Foundary都可以干这件事情,最新的容器技术Docker能更好的干这件事情,不做技术的可以不消管这些词。
第二部分,通用的应用不消安装。所谓通用的应用,一样平常指一些复杂性比力高,但是各人都在用的,例如数据库。险些所有的应用都会用数据库,但是数据库软件是标准的,固然安装和维护比力复杂,但是无论谁安装都是一样。如许的应用可以变成标准的PaaS层的应用放在云平台的界面上。当用户须要一个数据库的时间,一点就出来了,用户就可以直接用了。有人问,既然谁安装都一个样,那我自己来好了,不须要费钱在云平台上买。当然不是,数据库是一个非常难的东西,光Oracle这家公司,靠数据库就能赚这么多钱。买Oracle也是要花很多很多钱的。然而大多数云平台会提供Mysql如许的开源数据库,又是开源,钱不须要花这么多了,但是维护这个数据库,却须要专门招一个很大的团队,假如这个数据库能够优化到能够支撑双十一,也不是一年两年能够搞定的。好比您是一个做单车的,当然没须要招一个非常大的数据库团队来干这件事情,本钱太高了,应该交给云平台来做这件事情,专业的事情专业的人来自,云平台专门养了几百人维护这套系统,您只要专注于您的单车应用就可以了。
要么是自动部署,要么是不消部署,总的来说就是应用层你也要少操心,这就是PaaS层的紧张作用。
虽说脚本的方式能够解决自己的应用的部署问题,然而不同的环境千差万别,一个脚本通常在一个环境上运行正确,到另一个环境就不正确了。
而容器是能更好的解决这个问题的。
容器是 Container,Container另一个意思是集装箱,实在容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是封装,二是标准。
在没有集装箱的时代,假设将货品从 A运到 B,中间要颠末三个码头、换三次船。每次都要将货品卸下船来,摆的七零八落,然后搬上船重新整洁摆好。因此在没有集装箱的时间,每次换船,海员们都要在岸上待几天才能走。
有了集装箱以后,所有的货品都打包在一起了,并且集装箱的尺寸全部划一,所以每次换船的时间,一个箱子整体搬已往就行了,小时级别就能完成,海员再也不消上岸长时间耽搁了。
这是集装箱“封装”、“标准”两大特点在生活中的应用。
那么容器怎样对应用打包呢?照旧要学习集装箱,首先要有个封闭的环境,将货品封装起来,让货品之间互不干扰,相互隔离,如许装货卸货才方便。好在 Ubuntu中的LXC技术早就能做到这一点。
封闭的环境主要利用了两种技术,一种是看起来是隔离的技术,称为 Namespace,也即每个 Namespace中的应用看到的是不同的 IP地点、用户空间、程号等。另一种是用起来是隔离的技术,称为 Cgroups,也即明明整台机器有很多的 CPU、内存,而一个应用只能用其中的一部分。
所谓的镜像,就是将你焊好集装箱的那一刻,将集装箱的状态保存下来,就像孙悟空说:“定”,集装箱内里就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件都能还原其时定住的那个时间。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时间的过程)就是容器运行的过程。
有了容器,使得 PaaS层对于用户自身应用的自动部署变得快速而优雅。
三、大数据拥抱云计算
在PaaS层中一个复杂的通用应用就是大数据平台。大数据是怎样一步一步融入云计算的呢?
3.1 数据不大也包含智慧
一开始这个大数据并不大,你想象原来才有多少数据?如今各人都去看电子书,上网看新闻了,在我们80后小时间,信息量没有那么大,也就看看书,看看报,一个星期的报纸加起来才有多少字啊,假如你不在一个大都会,一个普通的学校的图书馆加起来也没几个书架,是后来随着信息化的到来,信息才会越来越多。
首先我们来看一下大数据内里的数据,就分三种范例,一种叫结构化的数据,一种叫非结构化的数据,还有一种叫半结构化的数据。什么叫结构化的数据呢?叫有固定格式和有限长度的数据。例如填的表格就是结构化的数据,国籍:中华人民共和国,民族:汉,性别:男,这都叫结构化数据。如今越来越多的就优劣结构化的数据,就是不定长,无固定格式的数据,例如网页,有时间非常长,有时间几句话就没了,例如语音,视频都优劣结构化的数据。半结构化数据是一些xml或者html的格式的,不从事技术的大概不相识,但也没有关系。
数据怎么样才能对人有用呢?实在数据本身不是有用的,必须要颠末一定的处理。例如你每天跑步带个手环收集的也是数据,网上这么多网页也是数据,我们称为Data,数据本身没有什么用处,但是数据内里包含一个很紧张的东西,叫做信息Information,数据十分杂乱,颠末梳理和洗濯,才能够称为信息。信息会包含很多规律,我们须要从信息中将规律总结出来,称为知识knowledge,知识改变运气。信息是很多的,但是有人看到了信息相当于白看,但是有人就从信息中看到了电商的未来,有人看到了直播的未来,所以人家就牛了,你假如没有从信息中提取出知识,每天看朋友圈,也只能在互联网滚滚大潮中做个看客。有了知识,然后利用这些知识去应用于实战,有的人会做得非常好,这个东西叫做智慧intelligence。有知识并不一定有智慧,例如很多多少学者很有知识,已经发生的事情可以从各个角度分析的头头是道,但一到实干就歇菜,并不能转化成为智慧。而很多的创业家之所以伟大,就是通过获得的知识应用于实践,最后做了很大的生意。
所以数据的应用分这四个步骤:数据,信息,知识,智慧。这是很多商家都想要的,你看我收集了这么多的数据,能不能基于这些数据来帮我做下一步的决策,改善我的产品,例如让用户看视频的时间旁边弹出广告,正好是他想买的东西,再如让用户听音乐的时间,另外推荐一些他非常想听的其他音乐。用户在我的应用或者网站上随便点点鼠标,输入文字对我来说都是数据,我就是要将其中某些东西提取出来,指导实践,形成智慧,让用户陷入到我的应用内里不可自拔,上了我的网就不想脱离,手不绝的点,不绝的买,很多人说双十一我都想断网了,我老婆在上面不停的买买买,买了A又推荐B,老婆大人说,“哎呀,B也是我喜好的啊,老公我要买”。你说这个程序怎么这么牛,这么有智慧,比我还相识我老婆,这件事情是怎么做到的呢?
3.2 数据怎样升华为智慧
数据的处理分几个步骤,完成了才最后会有智慧。
第一个步骤叫数据的收集。首先得有数据,数据的收集有两个方式,第一个方式是拿,专业点的说法叫抓取或者爬取,例如搜索引擎就是这么做的,它把网上的所有的信息都下载到它的数据中心,然后你一搜才能搜出来。好比你去搜索的时间,结果会是一个列表,这个列表为什么会在搜索引擎的公司内里呢,就是因为他把这个数据啊都拿下来了,但是你一点链接,点出来这个网站就不在搜索引擎它们公司了。好比说新浪有个新闻,你拿百度搜出来,你不点的时间,那一页在百度数据中心,一点出来的网页就是在新浪的数据中心了。另外一个方式就是推送,有很多终端可以帮我收集数据,好比说小米手环,可以将你每天跑步的数据,心跳的数据,就寝的数据都上传到数据中心内里。
第二个步骤是数据的传输。一样平常会通过队列方式进行,因为数据量着实是太大了,数据必须颠末处理才会有用,可是系统处理不外来,只好排好队,逐步的处理。
第三个步骤是数据的存储。如今数据就是金钱,把握了数据就相当于把握了钱。要不然网站怎么知道你想买什么呢?就是因为它有你汗青的交易的数据,这个信息可不能给别人,十分宝贵,所以须要存储下来。
第四个步骤是数据的处理和分析。上面存储的数据是原始数据,原始数据多是杂乱无章的,有很多垃圾数据在内里,因而须要洗濯和过滤,得到一些高质量的数据。对于高质量的数据,就可以进行分析,从而对数据进行分类,或者发现数据之间的相互关系,得到知识。好比盛传的沃尔玛超市的啤酒和尿布的故事,就是通过对人们的购买数据进行分析,发现了男人一样平常买尿布的时间,会同时购买啤酒,如许就发现了啤酒和尿布之间的相互关系,获得知识,然后应用到实践中,将啤酒和尿布的柜台弄的很近,就获得了智慧。
第五个步骤就是对于数据的检索和挖掘。检索就是搜索,所谓外事不决问google,内事不决问百度。内外两大搜索引擎都是讲分析后的数据放入搜索引擎,从而人们想寻找信息的时间,一搜就有了。另外就是挖掘,仅仅搜索出来已经不能满足人们的要求了,还须要从信息中挖掘出相互的关系。好比财经搜索,当搜索某个公司股票的时间,该公司的高管是不是也应该被挖掘出来呢?假如仅仅搜索出这个公司的股票发现涨的特别好,于是你就去买了,实在其高管发了一个声明,对股票十分倒霉,第二天就跌了,这不坑害广大股民么?所以通过各种算法挖掘数据中的关系,形成知识库,十分紧张。
3.3 大数据时代,众人拾柴火焰高
当数据量很小的时间,很少的几台机器就能解决。逐步的当数据量越来越大,最牛的服务器都解决不了问题的时间,就想怎么办呢?要聚合多台机器的气力,各人同心协力一起把这个事搞定,众人拾柴火焰高。
对于数据的收集,对于IoT来讲,表面部署这成千上万的检测设备,将大量的温度,适度,监控,电力等等数据统统收集上来,对于互联网网页的搜索引擎来讲,须要将整个互联网所有的网页都下载下来,这显然一台机器做不到,须要多台机器构成网络爬虫系统,每台机器下载一部分,同时工作,才能在有限的时间内,将海量的网页下载完毕。
对于数据的传输,一个内存内里的队列肯定会被大量的数据挤爆掉,于是就产生了基于硬盘的分布式队列,如许队列可以多台机器同时传输,随你数据量多大,只要我的队列富足多,管道富足粗,就能够撑得住。
对于数据的存储,一台机器的文件系统肯定是放不下了,所以须要一个很大的分布式文件系统来做这件事情,把多台机器的硬盘打成一块大的文件系统。
再如数据的分析,大概须要对大量的数据做分解,统计,汇总,一台机器肯定搞不定,处理到猴年马月也分析不完,于是就有分布式计算的方法,将大量的数据分成小份,每台机器处理一小份,多台机器并行处理,很快就能算完。例如著名的Terasort对1个TB的数据排序,相当于1024G,假如单机处理,怎么也要几个小时,但是并行处理209秒就完成了。
所以说大数据平台,什么叫做大数据,说白了就是一台机器干不完,各人一起干。随着数据量越来越大,很多不大的公司都须要处理相当多的数据,这些小公司没有这么多机器可怎么办呢?
3.4 大数据须要云计算,云计算须要大数据
说到这里,各人想起云计算了吧。当想要干这些活的时间,须要很多多少很多多少的机器一块做,真的是想什么时间要,想要多少就要多少。例如大数据分析公司的财务环境,大概一周分析一次,假如要把这一百台机器或者一千台机器都在那放着,一周用一次对吧,非常浪费。那能不能须要计算的时间,把这一千台机器拿出来,然后不算的时间,这一千台机器可以去干别的事情。谁能做这个事儿呢?只有云计算,可以为大数据的运算提供资源层的灵活性。而云计算也会部署大数据放到它的PaaS平台上,作为一个非常非常紧张的通用应用。因为大数据平台能够使得多台机器一起干一个事儿,这个东西不是一样平常人能开发出来的,也不是一样平常人玩得转的,怎么也得雇个几十上百号人才能把这个玩起来,所以说就像数据库一样,实在照旧须要有一帮专业的人来玩这个东西。如今公有云上基本上都会有大数据的解决方案了,一个小公司我须要大数据平台的时间,不须要采购一千台机器,只要到公有云上一点,这一千台机器都出来了,并且上面已经部署好了的大数据平台,只要把数据放进去算就可以了。
云计算须要大数据,大数据须要云计算,两个人就如许团结了。
四、人工智能拥抱大数据
4.1 机器什么时间才能懂民气
虽说有了大数据,人的欲望总是这个不能够满足。虽说在大数据平台内里有搜索引擎这个东西,想要什么东西我一搜就出来了。但是也存在如许的环境,我想要的东西不会搜,表达不出来,搜索出来的又不是我想要的。例如音乐软件内里推荐一首歌,这首歌我没听过,当然不知道名字,也没法搜,但是软件推荐给我,我的确喜好,这就是搜索做不到的事情。当人们利用这种应用的时间,会发现机器知道我想要什么,而不是说当我想要的时间,去机器内里搜索。这个机器真像我的朋友一样懂我,这就有点人工智能的意思了。
人们很早就在想这个事情了。最早的时间,人们想象,假如要是有一堵墙,墙后面是个机器,我给它说话,它就给我回应,我假如感觉不出它那里是人照旧机器,那它就真的是一个人工智能的东西了。
4.2 让机器学会推理
怎么才能做到这一点呢?人们就想:我首先要告诉计算机人类的推理的本领。你看人紧张的是什么呀,人和动物的区别在什么呀,就是能推理。我要是把我这个推理的本领啊告诉机器,机器就能根据你的提问,推理出相应的答复,真能如许多好。推理实在人们逐步的让机器能够做到一些了,例如证明数学公式。这是一个非常让人惊喜的一个过程,机器竟然能够证明数学公式。但是逐步发现实在这个结果,也没有那么令人惊喜,因为各人发现了一个问题,数学公式非常严谨,推理过程也非常严谨,而且数学公式很容易拿机器来进行表达,程序也相对容易表达。然而人类的语言就没这么简单了,好比今天晚上,你和你女朋友约会,你女朋友说:假如你早来,我没来,你等着,假如我早来,你没来,你等着。这个机器就比比力难明确了,但是人都懂,所以你和女朋友约会,你是不敢迟到的。
4.3 教给机器知识
所以仅仅告诉机器严酷的推理是不够的,还要告诉机器一些知识。但是知识这个事儿,一样平常人大概就做不来了,大概专家可以,好比语言领域的专家,或者财经领域的专家。语言领域和财经领域知识能不能表示成像数学公式一样稍微严酷点呢?例如语言专家大概会总结出主谓宾定状补这些语法规则,主语后面一定是谓语,谓语后面一定是宾语,将这些总结出来,并严酷表达出来不久行了吗?后来发现这个不行,太难总结了,语言表达千变万化。就拿主谓宾的例子,很多时间在口语内里就省略了谓语,别人问:你谁啊?我答复:我刘超。但是你不能规定在语音语义辨认的时间,要求对着机器说标准的书面语,如许照旧不够智能,就像罗永浩在一次演讲中说的那样,每次对动手机,用书面语说:请帮我呼叫某某某,这是一件很尴尬的事情。
人工智能这个阶段叫做专家系统。专家系统不易乐成,一方面是知识比力难总结,另一方面总结出来的知识难以教给计算机。因为你自己还迷含糊糊,似乎以为有规律,就是说不出来,就怎么能够通过编程教给计算机呢?
4.4 算了,教不会你自己学吧
于是人们想到,看来机器是和人完全不一样的物种,干脆让机器自己学习好了。机器怎么学习呢?既然机器的统计本领这么强,基于统计学习,一定能从大量的数字中发现一定的规律。
其着实娱乐圈有很好的一个例子,可见一斑
有一位网友统计了知名歌手在大陆发行的 9 张专辑中 117 首歌曲的歌词,同一词语在一首歌出现只算一次,形容词、名词和动词的前十名如下表所示(词语后面的数字是出现的次数):
假如我们随便写一串数字,然后按照数位依次在形容词、名词和动词中取出一个词,连在一起会怎么样呢?
例如取圆周率 3.1415926,对应的词语是:刚强,路,飞,自由,雨,埋,迷惘。稍微连接和润色一下:
刚强的孩子,
依然前行在路上,
张开翅膀飞向自由,
让雨水埋葬他的迷惘。
是不是有点感觉了?当然真正基于统计的学习算法比这个简单的统计复杂的多。
然而统计学习比力容易明确简单的相干性,例如一个词和另一个词总是一起出现,两个词应该有关系,而无法表达复杂的相干性,并且统计方法的公式通常非常复杂,为了简化计算,常常做出各种独立性的假设,来低沉公式的计算难度,然而实际生活中,具有独立性的变乱是相对较少的。
4.5 模拟大脑的工作方式
于是人类开始从机器的世界,反思人类的世界是怎么工作的。
人类的脑子内里不是存储着大量的规则,也不是记录着大量的统计数据,而是通过神经元的触发实现的,每个神经元有从其他神经元的输入,当接收到输入的时间,会产生一个输出来刺激其他的神经元,于是大量的神经元相互反应,最终形成各种输出的结果。例如当人们看到玉人瞳孔放大,绝不是大脑根据身材比例进行规则判断,也不是将人生中看过的所有的玉人都统计一遍,而是神经元从视网膜触发到大脑再回到瞳孔。在这个过程中,实在很难总结出每个神经元对最终的结果起到了哪些作用,反正就是起作用了。
于是人们开始用一个数学单元模拟神经元
这个神经元有输入,有输出,输入和输出之间通过一个公式来表示,输入根据紧张水平不同(权重),影响着输出。
网上学习资料一大堆,但假如学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
须要这份系统化资料的朋友,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
和输出之间通过一个公式来表示,输入根据紧张水平不同(权重),影响着输出。
[外链图片转存中…(img-sMjr7ZE7-1714692323883)]
[外链图片转存中…(img-5Tm2kdgn-1714692323883)]
网上学习资料一大堆,但假如学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
须要这份系统化资料的朋友,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |