最近我们和美国的“贸易战”打的是如火如荼,这位“推特治国”的川普总统总是给人一种“政治婴儿,商业天才”的感觉,贸易战的目的有很大一部分被认为是遏制“中国制造2025”。中国制造2025是一系列宏伟的计划,能够使中国完成民族复兴,其中重点发展领域就是信息技术相关的创新产业,具体一点就是目前火爆了的云计算、大数据、人工智能。Ok,停。我们遇到了装逼死角,如果有个妹子问:“哥哥,神马是云计算、大数据、人工智能啊?你跟人家讲讲嘛。”望着妹子崇拜的眼神你,那么。这个时候小编的到来,让你可以。
一、云计算
话说自然接种的云是这么形成的,各种各样的小水滴凝结成云,然后共享给大地上的生灵。云计算的名字就是模仿自然界中云的形成而来的。它是通过各种方式收集互联网中的软硬件资源,然后按照需求共享给各个用户使用。云计算主要就是对计算资源进行灵活有效的管理和分配,这些资源主要包含:计算资源、存储资源、网络资源三个方面。
那什么是计算资源、网络资源、存储资源呢?比如说你买一台笔记本,你想用这台笔记本来看片片(坏笑.jpg)玩大型游戏,那么你就需要有一颗强劲的CPU、尽可能大的运行内存和能够装的下你欲望的硬盘。那么CPU就是计算资源,你可能需要主频高、核心数多的型号。硬盘就是存储资源,要足够大尽量的读写速度快,能够满足你追求“大又快”的需求。而内存是CPU和硬盘之间的桥梁,它的性能制约着整个计算机的性能。但是只有这些还是不够的,因为你如果连一个QQ都上不了,怎么和妹子联系以达到你不可告人的目的呢?你的小片片也得是从网络上下载不是(当然小编不知道什么是自拍),这就是网络资源。
但是物理设备(比如一台笔记本)是非常缺乏时间灵活性和空间灵活性的。例如:我想现在就买一台大型服务器,但是采购是需要时间的,买回来之后还需要机房等各种软硬件环境的部署;后来我又想要一台很小的电脑,CPU一颗、内存1G、硬盘20G,这样的电脑现在可能都很难找到地方买。为了实现按需分配资源的功能有人想出来一个叫“虚拟化”的方法。通俗点讲就是准备一台性能非常强大的计算机(例如64核心的CPU、128G内存、256T的硬盘、10G的网络带宽),然后根据用户的需求,通过虚拟化的隔离技术,从这台强大的计算机上划分出一部分一部分形成一台电脑(比如:2颗CPU、4G内存、500G硬盘、1G带宽),每个用户得到的这部分资源完全是透明化的,用户自己会认为这就是一台完整的计算机。软件虚拟化的过程是非常快的,通常几分钟就可以搞定。这样空间灵活性和时间灵活性就得到了比较好的解决。
不过虚拟化只是在用户端解决了较好的灵活性,但是在后台的执行端,工程师们需要手动的进行虚拟机的分配,这个过程相对来说是比较复杂的,而且如果只是几台十几台的规模,那么手动分配还可以实现,但是现在的互联网规模动辄就是上万台、几十万台,人工分配显然已经不可能完成。人们就又想了一个办法,把所有的计算机在逻辑层面放到一个池子里,这个池子叫做资源池,然后通过调度算法组建一个调度中心,不管用户使用使用多少CPU、内存、硬盘、带宽都可以通过申请由调动中心从资源池中选择相应的资源组成虚拟机分配给用户,到此就可以称作为云计算了。当资源池资源不够用了我们可以再向资源池中接入机房就可以了,而且这些机房可以在世界各地,这一系列操作对用户来说都是透明的,对工程师来说只要保证调度中心和资源池稳定运行就好。
OK,到目前这个阶段我们的云计算基本实现了时间灵活性和空间灵活性,实现了计算、存储、网络等硬件资源的弹性利用。这也就是我们通常所说的基础设施及服务,IaaS(Infranstracture as a Service)云。但是人的欲望和惰性是无限,它们两个一直是人类进步不竭的动力。IaaS云创建出来的虚拟机都是空的,也就是没有装任何软件甚至是操作系统,如果一个电商公司在双十一想要突发的增加1000台机器,那么他们就必须再手动重新按照配置相应的软件,这里面由大量的重复性工作,因为由很大一部分软件是通用的。这就像我们买房子,如果用Iaas云买,就类似买了毛坯房,我们每买一个房子都需要对房子进行刷墙、铺地板砖等最基础的操作,但如果是精装修的房子(通用应用),我们只要按照我们的喜好添置家具和一些装饰品就可以了(差异化应用),省去了很多不必要的麻烦。这样“精装修”的房子就类似我们所说的PaaS(Platform as a Service)云。将一些一般都能用到的软件和开发环境安装好提供给用户,用户拿到虚拟机之后可以直接或者只需经过很少的部署就可以使用,这就叫平台及服务。
至此,我们解决了老的问题,新的问题又出现了(欲望啊欲望、懒惰啊懒惰),在实际应用中,我们的运行环境纷繁复杂、新旧版本交错,使我们部署自己的应用时经常出错,即便时使用脚本进行自动化部署,但是只要时部署环境有一丁点不同,就可能产生部署错误。于是我们引入了容器(Container)的概念。Container有集装箱的意思,集装箱的特点是标准(方方正正)、封装(与外界隔离)。
在没有集装箱的时代,船员们在码头换船的时候都需要把物品全都搬下来,散落一地,然后再搬到另一个船上,而另一个船的构造能不能合理的放下这些物品还不一定,有了集装箱之后,所有的东西装成一个个集装箱,每个船只再尽量设置成符合放集装箱的结构,这样换船的时候直接从一个船搬到另一个船就好了,方便快捷。
我们的自主应用要实现这样的形势,就需要先将应用所需的基本环境和文件、数据等信息打包封装,与其他信息隔离,把这些封装好的信息做成“镜像”,镜像就类似在集装箱关上门的那一刻,孙悟空喊了一声“定”,把这些内容都保存在了这一刻,使这些容器不管放到什么环境下都是相同的内容。
容器太多也是杂乱无章,相应的又出现了一些对容器自动化部署、扩展、管理的平台软件。
云计算发展至此已经基本能够满足我们的需求了,从计算机诞生开始出现了很多软硬件的商业公司,IBM这些靠硬件成长起来的公司至今依然是世界的龙头,虚拟技术兴起后,像VMware这样的公司也是赚的盆满钵满。但软件不像硬件需要特别大的投资和非常雄厚的基础,VMware公司的软件是闭源的,也就是软件的源代码只有我自己知道,别人都不知道,谁用我的软件谁就像我付钱,只要软件成熟之后基本是一本万利的,当然软件的研发也不是轻而易举的,有点类似于近来电影《我不是药神》里面的神药。不过软件技术远不如研究新药那么难和耗时长,并且这个世界上有很多追求平等自由的人,有一些技术大牛看不惯一些资本家的垄断,认为软件应该是全世界人类智慧的结晶,应该服务于全人类,所以这些大牛就自己开发出来一些软件,并且公布到互联网上,共大家免费自由使用。这些软件就被成为开源软件,当然现在很多软件的开源原因很复杂,有得是为了情怀,有得是为了竞争,有得是为了赚更多的钱。
从硬件到虚拟化,从虚拟化到云计算,从云计算到容器再到容器的集群,我们伟大的软件工程师们开发了一系列的开源软件,虚拟化的有Xen、KVM、云计算有openstack、容器有docker
容器集群有kubernetes,众所周知这些软件都需要运行在一个操作系统之上,而开源操作系统Linux一经诞生,就技惊四座,以其小巧精湛、低成本、强稳定以及良好的移植和定制的特性,在全世界小到嵌入式设备大到超级计算机和成千上万的计算机集群90%以上都在使用它。所以良好的掌握Linux是从事云计算行业的基础和关键。
二、大数据
云计算主要集中在计算,而我们计算的东西叫什么呢?这个就是数据,究竟什么是数据,好像没有一个确切的定义,广义上来说,我们现实世界的事物抽象成的逻辑符号就叫做数据。数据是不具备任何含义的,比如“165”我们可以说它是一个数也可以说它是三个数,但它什么意思都表达不出来,如果我们把“165”加工一下变成“165cm”就变成一个长度了,这个“165cm”就叫做信息。信息对我们来说是有意义的,不过计算机当中存放的时候信息就又变成数据了。信息虽然对我们有意义,但是用处太小或者信息太杂乱,我们根本无从下手,如果我们把信息整理归纳总结,梳理成册,就变成了知识。知识对我们来说就有意义的多了,我们从小到大上学就是为了学习知识对吧,知识是人类进步的粮食。但是知识只有运用得当才能变成智慧,赵括就是只有知识没有智慧的人,而王阳明就是集天下之大成的智者。知识的运用叫做经验,经验和知识相辅相成不可偏废,只有经验没有知识只能是低层次,只有知识没有经验只会是空中楼阁,不过有了经验去学知识较难,有知识后去学经验易。
|
|
|
|
那么大数据是怎样的呢?简单的理解大数据就是体量非常非常巨大的数据。这么大量的数据我们放着不用是非常愚蠢和可耻的,所以大数据技术也可以简单的说成是将海量的数据转换成智慧的这样一个循环。通常我们需要这样几个步骤:
这么大量的数据需要经过这么多步骤的运算,一台机器明显是不够的,得需要成千上万条机器,但是大数据的分析并不一定是每时每刻都在做的,比如我是一家财务公司,可能我一周只需要进行一次数据分析,而其他时间不需要这么大量的计算机,那岂不是造成了很大的浪费,怎么办才好呢?大家想到了把,就是云计算,云计算在这里就可以很好的和大数据融合了。
三、大数据
前两天小编的同事小刘问小编你知道什么车最贵吗?小编这么穷怎么可能知道,然后他就说不是兰博基尼不是劳斯莱斯而是女朋友的购物车。据悉他帮女朋友清理了一下网上的购物车,差点给清理破产了。这就是商家奸诈的地方了,女人好像天生对购物时0抵抗力,他女友在买任何东西的时候都会收到一系列相关的推荐,比如你想买一辆单车去骑行穷游最后可能买了一艘游艇去夏威夷自驾,买不起没关系,还有骇人听闻的亲密付功能。小刘感叹怎么收集比他自己还了解他女朋友啊。这就是人工智能的初步体验了。提起人工只能你的印象是这个?这个?还是这个。没错,这也许是我们想象中的人工智能该有的样子(奥创好像有点跑偏了),其实人工智能的概念早在二战之前就提出了,人工智能之父图灵就提出过著名的图灵测试方法来验证机器是否具有智能的特点。人工很好理解就是人为造的,但是智能很难解释清楚,它包含了太多的东西诸如意识、自我、心灵、无意识的精神等等,我们人类自己的智能都还没有研究清楚,所以说人工智能究竟能发展到何种程度目前还是个未知数。但是让机器模仿人类的行为、部分思考方式,利用演绎和推理解决实际问题还是可以实现的。
怎样让机器具有这样的演绎、推理的功能呢?最主要的是算法,我们现在的计算机通过各种算法能够证明数学公式了,但是数学推理由非常严谨的推理过程,是可以程序化的,但我们平时的生活就没有那么严谨了,比如“夏天能穿多少穿多少,冬天也是能穿多少穿多少”,这个机器就很难理解是什么意思了。所以机器只进行逻辑推理还是不够的,我们要交给它一些知识,不过教给计算机知识就太难了,得是语言专家才行,必须把语言的结构、语法、使用习惯等等都做成公式交给计算机,但是即便是这样也是不行的,因为平时的生活中语言太千变万化了,没有人平时说话时严格按照语法来说的,并且还充斥着各种各样的方言和俚语,是不可能都教给计算机的。
既然教不会就让计算机自己学吧,怎么学习呢?一般简单的是通过统计学,把收集来的信息进行归纳总结发现一定的规律,例如计算机作词:
我们随便写一串数字,然后按照数位依次在形容词、名词和动词中取出一个词,然后稍作加工就能变成:,这样是不是有点意思了,当然真正的学习算法要复杂的多。还有很多模仿人脑的算法例如人工神经网络和深度学习算法等,人类的脑子里面不是存储着大量的规则,也不是记录着大量的统计数据,而是通过神经元的触发实现的,每个神经元有从其它神经元的输入,当接收到输入时,会产生一个输出来刺激其它神经元。于是大量的神经元相互反应,最终形成各种输出的结果。当某些男人看到美女瞳孔会放大,绝不是大脑根据身材比例进行规则判断,也不是将人生中看过的所有的美女都统计一遍,而是神经元从视网膜触发到大脑再回到瞳孔。在这个过程中,其实很难总结出每个神经元对最终的结果起到了哪些作用,反正就是起作用了。如果你这次看见美女瞳孔没有放大,让美女和其他人跑了,你就会对策略进行微调,下次就不会这么做了,当然运用到计算机上这些调整的策略还是非常有技巧的,需要算法的高手来仔细的调整。
人工智能说到底也都是一些列的算法和算法自己产生的算法,这些算法是需要数据作为养料进行喂养的,对于好的算法来说,数据量越大可能产生的结果就越正确,就像alphgo要经过无数次的对弈才能提高自己的水平一样。并且人工智能对应的算法是相当复杂和庞大的,单台计算机是不可能在短时间内完成的,所以人工智能就和云计算大数据紧密的结合在了一起。
我们上面说过人工智能的算法非常的复杂,那么对程序员来说要通过编程实现这样的算法就会非常耗时,如果使用语法严格限制较多的语言编写会很难实现,程序员的负担也会非常大,在上世纪90年代出现的Python语言以其简洁的语法、强大的第三方库使它编程效率极高,在人工智能领域大放异彩。
四、如何学习云计算、大数据、人工智能
在贸易战、世界经济复苏扑朔迷离的大环境下,如何使自己今后立于不败之地,那么学习Linux运维、云计算、大数据、Python开发就会是一个非常好的选择,大学里面学这些课程需要四年啊,我们去哪里学呢?对,就是马哥教育!
马哥教育全称北京马哥教育科技有限公司,于2007年由马哥正式创办,历经十年发展,以“匠心精神,良心教育”为宗旨,以国际“MVP”体系为标准,培养了数万名资深、专业的高端IT人才,80%以上学员在互联网排名前300的企业高薪就业,拥有Linux运维、Python开发、云计算等多个高端学科。凭借马哥教育职业IT培训的高品质和毕业学员的良好口碑,其已经成为业内知名互联网公司重要人才战略合作伙伴,获得了百度、腾讯、阿里、中兴、科大讯飞、大众点评、51CTO、唯品会、京东、中国移动、 新浪、红帽等互联网巨头的人才合作支持,2013年成为51CTO官方推荐合作机构,与多家IT互联网企业签订专项人才培养计划,毕业学员平均薪资达10K以上。