不是技术也能看懂云计算,大数据,人工智能

📅 2026/7/2 4:49:28
不是技术也能看懂云计算,大数据,人工智能
云计算最初是实现资源管理的灵活性我们首先来说云计算云计算最初的目标是对资源的管理管理的主要是计算资源网络资源存储资源三个方面。1.1 管数据中心就像配电脑什么叫计算网络存储资源呢就说你要买台笔记本电脑吧你是不是要关心这台电脑什么样的CPU啊多大的内存啊这两个我们称为计算资源。这台电脑要能上网吧需要有个网口可以插网线或者有无线网卡可以连接我们家的路由器您家也需要到运营商比如联通移动电信开通一个网络比如100M的带宽然后会有师傅弄一根网线到您家来师傅可能会帮您将您的路由器和他们公司的网络连接配置好这样您家的所有的电脑手机平板就都可以通过您的路由器上网了。这就是网络。您可能还会问硬盘多大啊原来硬盘都很小10G之类的后来500G1T2T的硬盘也不新鲜了。(1T是1000G)这就是存储。对于一台电脑是这个样子的对于一个数据中心也是同样的。想象你有一个非常非常大的机房里面堆了很多的服务器这些服务器也是有CPU内存硬盘的也是通过类似路由器的设备上网的。这个时候的一个问题就是运营数据中心的人是怎么把这些设备统一的管理起来的呢1.2 灵活就是想啥时要都有想要多少都行管理的目标就是要达到两个方面的灵活性。哪两个方面呢比如有个人需要一台很小很小的电脑只有一个CPU1G内存10G的硬盘一兆的带宽你能给他吗像这种这么小规格的电脑现在随便一个笔记本电脑都比这个配置强了家里随便拉一个宽带都要100M。然而如果去一个云计算的平台上他要想要这个资源的时候只要一点就有了。所以说它就能达到两个方面灵活性。第一个方面就是想什么时候要就什么时候要比如需要的时候一点就出来了这个叫做时间灵活性。第二个方面就是想要多少呢就有多少比如需要一个很小很小的电脑可以满足比如需要一个特别大的空间以云盘为例似乎云盘给每个人分配的空间动不动就就很大很大随时上传随时有空间永远用不完这个叫做空间灵活性。空间灵活性和时间灵活性也即我们常说的云计算的弹性。为了解决这个弹性的问题经历了漫长时间的发展。1.3 物理设备不灵活首先第一个阶段就是物理机或者说物理设备时期。这个时期相当于客户需要一台电脑我们就买一台放在数据中心里。物理设备当然是越来越牛例如服务器内存动不动就是百G内存例如网络设备一个端口的带宽就能有几十G甚至上百G例如存储在数据中心至少是PB级别的(一个P是1000个T一个T是1000个G)。然而物理设备不能做到很好的灵活性。首先它不能够达到想什么时候要就什么时候要、比如买台服务器哪怕买个电脑都有采购的时间。突然用户告诉某个云厂商说想要开台电脑如果使用物理服务器当时去采购啊就很难如果说供应商啊关系一般可能采购一个月供应商关系好的话也需要一个星期。用户等了一个星期后这时候电脑才到位用户还要登录上去开始慢慢部署自己的应用时间灵活性非常差。第二是空间灵活性也不行例如上述的用户要一个很小很小的电脑现在哪还有这么小型号的电脑啊。不能为了满足用户只要一个G的内存是80G硬盘的就去买一个这么小的机器。但是如果买一个大的呢因为电脑大就向用户多收钱用户说他只用这么小的一点如果让用户多付钱就很冤。1.4 虚拟化灵活多了有人就想办法了。第一个办法就是虚拟化。用户不是只要一个很小的电脑么数据中心的物理设备都很强大我可以从物理的CPU内存硬盘中虚拟出一小块来给客户同时也可以虚拟出一小块来给其他客户每个客户都只能看到自己虚的那一小块其实每个客户用的是整个大的设备上其中的一小块。虚拟化的技术能使得不同的客户的电脑看起来是隔离的我看着好像这块盘就是我的你看这呢这块盘就是你的实际情况可能我这个10G和您这个10G是落在同样一个很大很大的这个存储上的。而且如果事先物理设备都准备好虚拟化软件虚拟出一个电脑是非常快的基本上几分钟就能解决。所以在任何一个云上要创建一台电脑一点几分钟就出来了就是这个道理。这个空间灵活性和时间灵活性就基本解决了。1.5 虚拟世界的赚钱与情怀在虚拟化阶段最牛的公司是Vmware是实现虚拟化技术比较早的一家公司可以实现计算网络存储的虚拟化这家公司很牛性能也做得非常好然后虚拟化软件卖的也非常好赚了好多的钱后来让EMC(世界五百强存储厂商第一品牌)给收购了。但是这个世界上还是有很多有情怀的人的尤其是程序员里面有情怀的人喜欢做一件什么事情呢开源。这个世界上很多软件都是有闭源就有开源源就是源代码。就是说某个软件做的好所有人都爱用这个软件的代码呢我封闭起来只有我公司知道其他人不知道如果其他人想用这个软件就要付我钱这就叫闭源。但是世界上总有一些大牛看不惯钱都让一家赚了去。大牛们觉得这个技术你会我也会你能开发出来我也能我开发出来就是不收钱把代码拿出来分享给大家全世界谁用都可以所有的人都可以享受到好处这个叫做开源。比如最近蒂姆·伯纳斯·李就是个非常有情怀的人2017年他因“发明万维网、第一个浏览器和使万维网得以扩展的基本协议和算法”而获得2016年度的图灵奖。图灵奖就是计算机界的诺贝尔奖。然而他最令人敬佩的是他将万维网也就是我们常见的www的技术无偿贡献给全世界免费使用。我们现在在网上的所有行为都应该感谢他的功劳如果他将这个技术拿来收钱应该和比尔盖茨差不多有钱。例如在闭源的世界里有windows大家用windows都得给微软付钱开源的世界里面就出现了Linux。比尔盖茨靠windowsOffice这些闭源的软件赚了很多钱称为世界首富就有大牛开发了另外一种操作系统Linux。很多人可能没有听说过Linux很多后台的服务器上跑的程序都是Linux上的比如大家享受双十一支撑双十一抢购的系统无论是淘宝京东考拉都是跑在Linux上的。再如有apple就有安卓。apple市值很高但是苹果系统的代码我们是看不到的。于是就有大牛写了安卓手机操作系统。所以大家可以看到几乎所有的其他手机厂商里面都装安卓系统因为苹果系统不开源而安卓系统大家都可以用。在虚拟化软件也一样有了Vmware这个软件非常非常的贵。那就有大牛写了两个开源的虚拟化软件一个叫做Xen一个叫做KVM如果不做技术的可以不用管这两个名字但是后面还是会提到。1.6 虚拟化的半自动和云计算的全自动虚拟化软件似乎解决了灵活性问题其实不全对。因为虚拟化软件一般创建一台虚拟的电脑是需要人工指定这台虚拟电脑放在哪台物理机上的可能还需要比较复杂的人工配置所以使用Vmware的虚拟化软件需要考一个很牛的证书能拿到这个证书的人薪资是相当的高也可见复杂程度。所以仅仅凭虚拟化软件所能管理的物理机的集群规模都不是特别的大一般在十几台几十台最多百台这么一个规模。这一方面会影响时间灵活性虽然虚拟出一台电脑的时间很短但是随着集群规模的扩大人工配置的过程越来越复杂越来越耗时。另一方面也影响空间灵活性当用户数量多的时候这点集群规模还远达不到想要多少要多少的程度很可能这点资源很快就用完了还得去采购。所以随着集群的规模越来越大基本都是千台起步动辄上万台甚至几十上百万台如果去查一下BAT包括网易包括谷歌亚马逊服务器数目都大的吓人。这么多机器要靠人去选一个位置放这台虚拟化的电脑并做相应的配置几乎是不可能的事情还是需要机器去做这个事情。人们发明了各种各样的算法来做这个事情算法的名字叫做调度(Scheduler)。通俗一点的说就是有一个调度中心几千台机器都在一个池子里面无论用户需要多少CPU内存硬盘的虚拟电脑调度中心会自动在大池子里面找一个能够满足用户需求的地方把虚拟电脑启动起来做好配置用户就直接能用了。这个阶段我们称为池化或者云化到了这个阶段才可以称为云计算在这之前都只能叫虚拟化。1.7 云计算的私有与公有云计算大致分两种一个是私有云一个是公有云还有人把私有云和公有云连接起来称为混合云我们暂且不说这个。私有云就是把虚拟化和云化的这套软件部署在别人的数据中心里面使用私有云的用户往往很有钱自己买地建机房自己买服务器然后让云厂商部署在自己这里Vmware后来除了虚拟化也推出了云计算的产品并且在私有云市场赚的盆满钵满。所谓公有云就是虚拟化和云化软件部署在云厂商自己数据中心里面的用户不需要很大的投入只要注册一个账号就能在一个网页上点一下创建一台虚拟电脑例如AWS也即亚马逊的公有云例如国内的阿里云腾讯云网易云等。亚马逊呢为什么要做公有云呢我们知道亚马逊原来是国外比较大的一个电商它做电商的时候也肯定会遇到类似双11的场景在某一个时刻大家都冲上来买东西。当大家都冲上买东西的时候就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源那样太浪费了。但也不能什么都不准备看着双十一这么多用户想买东西登不上去。所以需要双十一的时候创建一大批虚拟电脑来支撑电商应用过了双十一再把这些资源都释放掉去干别的。所以亚马逊是需要一个云平台的。然而商用的虚拟化软件实在是太贵了亚马逊总不能把自己在电商赚的钱全部给了虚拟化厂商吧。于是亚马逊基于开源的虚拟化技术如上所述的Xen或者KVM开发了一套自己的云化软件。没想到亚马逊后来电商越做越牛云平台也越做越牛。而且由于他的云平台需要支撑自己的电商应用而传统的云计算厂商多为IT厂商出身几乎没有自己的应用因而亚马逊的云平台对应用更加的友好迅速发展成为云计算的第一品牌赚了很多钱。在亚马逊公布其云计算平台财报之前人们都猜测亚马逊电商赚钱云也赚钱吗后来一公布财报发现不是一般的赚钱仅仅去年亚马逊AWS年营收达122亿美元运营利润31亿美元。1.8 云计算的赚钱与情怀公有云的第一名亚马逊过得很爽第二名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, 因而这个阶段的弹性称为资源层面的弹性管理资源的云平台我们称为基础设施服务就是我们常听到的IaaSInfranstracture As A Service。二、云计算不光管资源也要管应用有了IaaS实现了资源层面的弹性就够了吗显然不是。还有应用层面的弹性。这里举个例子比如说实现一个电商的应用平时十台机器就够了双十一需要一百台。你可能觉得很好办啊有了IaaS新创建九十台机器就可以了啊。但是90台机器创建出来是空的啊电商应用并没有放上去啊只能你公司的运维人员一台一台的弄还是需要很长时间才能安装好的。虽然资源层面实现了弹性但是没有应用层的弹性依然灵活性是不够的。有没有方法解决这个问题呢于是人们在IaaS平台之上又加了一层用于管理资源以上的应用弹性的问题这一层通常称为PaaSPlatform As A Service。这一层往往比较难理解其实大致分两部分一部分我称为你自己的应用自动安装一部分我称为通用的应用不用安装。我们先来说第一部分自己的应用自动安装。比如电商应用是你自己开发的除了你自己其他人是不知道怎么安装的比如电商应用安装的时候需要配置支付宝或者微信的账号才能别人在你的电商上买东西的时候付的钱是打到你的账户里面的除了你谁也不知道所以安装的过程平台帮不了忙但是能够帮你做的自动化你需要做一些工作将自己的配置信息融入到自动化的安装过程中方可。比如上面的例子双十一新创建出来的90台机器是空的如果能够提供一个工具能够自动在这新的90台机器上将电商应用安装好就能够实现应用层面的真正弹性。例如Puppet, Chef, Ansible, Cloud Foundary都可以干这件事情最新的容器技术Docker能更好的干这件事情不做技术的可以不用管这些词。第二部分通用的应用不用安装。所谓通用的应用一般指一些复杂性比较高但是大家都在用的例如数据库。几乎所有的应用都会用数据库但是数据库软件是标准的虽然安装和维护比较复杂但是无论谁安装都是一样。这样的应用可以变成标准的PaaS层的应用放在云平台的界面上。当用户需要一个数据库的时候一点就出来了用户就可以直接用了。有人问既然谁安装都一个样那我自己来好了不需要花钱在云平台上买。当然不是数据库是一个非常难的东西光Oracle这家公司靠数据库就能赚这么多钱。买Oracle也是要花很多很多钱的。然而大多数云平台会提供Mysql这样的开源数据库又是开源钱不需要花这么多了但是维护这个数据库却需要专门招一个很大的团队如果这个数据库能够优化到能够支撑双十一也不是一年两年能够搞定的。比如您是一个做单车的当然没必要招一个非常大的数据库团队来干这件事情成本太高了应该交给云平台来做这件事情专业的事情专业的人来自云平台专门养了几百人维护这套系统您只要专注于您的单车应用就可以了。要么是自动部署要么是不用部署总的来说就是应用层你也要少操心这就是PaaS层的重要作用。虽说脚本的方式能够解决自己的应用的部署问题然而不同的环境千差万别一个脚本往往在一个环境上运行正确到另一个环境就不正确了。而容器是能更好的解决这个问题的。容器是 ContainerContainer另一个意思是集装箱其实容器的思想就是要变成软件交付的集装箱。集装箱的特点一是封装二是标准。在没有集装箱的时代假设将货物从 A运到 B中间要经过三个码头、换三次船。每次都要将货物卸下船来摆的七零八落然后搬上船重新整齐摆好。因此在没有集装箱的时候每次换船船员们都要在岸上待几天才能走。有了集装箱以后所有的货物都打包在一起了并且集装箱的尺寸全部一致所以每次换船的时候一个箱子整体搬过去就行了小时级别就能完成船员再也不用上岸长时间耽搁了。这是集装箱“封装”、“标准”两大特点在生活中的应用。那么容器如何对应用打包呢还是要学习集装箱首先要有个封闭的环境将货物封装起来让货物之间互不干扰互相隔离这样装货卸货才方便。好在 Ubuntu中的LXC技术早就能做到这一点。封闭的环境主要使用了两种技术一种是看起来是隔离的技术称为 Namespace也即每个 Namespace中的应用看到的是不同的 IP地址、用户空间、程号等。另一种是用起来是隔离的技术称为 Cgroups也即明明整台机器有很多的 CPU、内存而一个应用只能用其中的一部分。所谓的镜像就是将你焊好集装箱的那一刻将集装箱的状态保存下来就像孙悟空说“定”集装箱里面就定在了那一刻然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的谁看到这些文件都能还原当时定住的那个时刻。将镜像还原成运行时的过程就是读取镜像文件还原那个时刻的过程就是容器运行的过程。有了容器使得 PaaS层对于用户自身应用的自动部署变得快速而优雅。三、大数据拥抱云计算在PaaS层中一个复杂的通用应用就是大数据平台。大数据是如何一步一步融入云计算的呢3.1 数据不大也包含智慧