云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以,“云”就像自来水厂一样,我们可以随时接水,并且不限量,按照自己家的用水量,付费给自来水厂就可以。
从广义上说,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。
云中的资源是无穷尽的,提供的是一种弹性服务,按需服务,并能够快速交付使用,克服了传统使用IT资源的种种缺陷,所以云计算这种技术发展迅速,各大IT巨头也都是全力投入参与近来,可以说,云计算技术就是以后IT技术的方向。云计算是信息时代的一个大飞跃,未来的时代就是云计算的时代。
云计算从诞生开始,发展迅猛,现在已经无处不在,现代生活已经离不开其的支持。
云计算最初的目标是对资源的管理,管理的主要是计算资源、网络资源、存储资源三个方面。
什么叫计算、网络、存储资源?
比如你要买台笔记本电脑,是不是要关心这台电脑是什么样的CPU?多大的内存?这两个就被我们称为计算资源。
这台电脑要上网,就需要有个可以插网线的网口,或者有可以连接我们家路由器的无线网卡。您家也需要到运营商比如联通、移动或者电信开通一个网络,比如100M的带宽。然后会有师傅弄一根网线到您家来,师傅可能会帮您将您的路由器和他们公司的网络连接配置好。这样您家的所有的电脑、手机、平板就都可以通过您的路由器上网了。这就是网络资源。
您可能还会问硬盘多大?过去的硬盘都很小,大小如10G之类的;后来即使500G、1T、2T的硬盘也不新鲜了。(1T是1000G),这就是存储资源。
对于一台电脑是这个样子的,对于一个数据中心也是同样的。想象你有一个非常非常大的机房,里面堆了很多的服务器,这些服务器也是有CPU、内存、硬盘的,也是通过类似路由器的设备上网的。这时的问题就是:运营数据中心的人是怎么把这些设备统一的管理起来的呢?
管理的目标就是要达到两个方面的灵活性。具体哪两个方面呢?
举个例子来理解:比如有个人需要一台很小的电脑,只有一个CPU、1G内存、10G的硬盘、一兆的带宽,你能给他吗?像这种这么小规格的电脑,现在随便一个笔记本电脑都比这个配置强了,家里随便拉一个宽带都要100M。然而如果去一个云计算的平台上,他要想要这个资源时,只要一点就有了。
这种情况下它就能达到两个方面灵活性:
空间灵活性和时间灵活性,即我们常说的云计算的弹性。而解决这个弹性的问题,经历了漫长时间的发展。
第一个阶段是物理设备时期。这个时期客户需要一台电脑,我们就买一台放在数据中心里。
物理设备当然是越来越牛,例如服务器,内存动不动就是百G内存;例如网络设备,一个端口的带宽就能有几十G甚至上百G;例如存储,在数据中心至少是PB级别的(一个P是1000个T,一个T是1000个G)。
然而物理设备不能做到很好的灵活性:
有人就想办法了。第一个办法就是虚拟化。用户不是只要一个很小的电脑么?数据中心的物理设备都很强大,我可以从物理的CPU、内存、硬盘中虚拟出一小块来给客户,同时也可以虚拟出一小块来给其他客户。每个客户只能看到自己的那一小块,但其实每个客户用的是整个大的设备上的一小块。
虚拟化的技术使得不同客户的电脑看起来是隔离的。也就是我看着好像这块盘就是我的,你看着这块盘就是你的,但实际情况可能我的这个10G和你的这个10G是落在同样一个很大很大的存储上。而且如果事先物理设备都准备好,虚拟化软件虚拟出一个电脑是非常快的,基本上几分钟就能解决。所以在任何一个云上要创建一台电脑,几分钟就出来了,就是这个道理。
这样空间灵活性和时间灵活性就基本解决了。
在虚拟化阶段,最牛的公司是VMware。它是实现虚拟化技术比较早的一家公司,可以实现计算、网络、存储的虚拟化。这家公司很牛,性能做得非常好,虚拟化软件卖得也非常好,赚了好多的钱,后来让EMC(世界五百强,存储厂商第一品牌)给收购了。
可惜的是VMware技术不开源,这样企业如果使用他家的技术,太贵了,所以大牛们觉得,这个技术你会我也会;你能开发出来,我也能。我开发出来就是不收钱,把代码拿出来分享给大家,全世界谁用都可以,那就有大牛写了两个开源的虚拟化软件,一个叫做Xen,一个叫做KVM,尤其是KVM被Linux系统加入到内核中,成为了Linux系统的一个模块,广泛推行开来。
要说虚拟化软件解决了灵活性问题,其实并不全对。因为虚拟化软件一般创建一台虚拟的电脑,是需要人工指定这台虚拟电脑放在哪台物理机上的。这一过程可能还需要比较复杂的人工配置。所以使用VMware的虚拟化软件,需要考一个很牛的证书,而能拿到这个证书的人,薪资是相当高,也可见复杂程度。
所以仅仅凭虚拟化软件所能管理的物理机的集群规模都不是特别大,一般在十几台、几十台、最多百台这么一个规模。
这一方面会影响时间灵活性:虽然虚拟出一台电脑的时间很短,但是随着集群规模的扩大,人工配置的过程越来越复杂,越来越耗时。另一方面也影响空间灵活性:当用户数量多时,这点集群规模,还远达不到想要多少要多少的程度,很可能这点资源很快就用完了,还得去采购。
所以随着集群的规模越来越大,基本都是千台起步,动辄上万台、甚至几十上百万台。如果去查一下BAT,包括网易、谷歌、亚马逊,服务器数目都大的吓人。这么多机器要靠人去选一个位置放这台虚拟化的电脑并做相应的配置,几乎是不可能的事情,还是需要机器去做这个事情。
人们发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。通俗一点说,就是有一个调度中心,几千台机器都在一个池子里面,无论用户需要多少CPU、内存、硬盘的虚拟电脑,调度中心会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。这个阶段我们称为池化或者云化。到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化。
云计算大致分两种:一个是私有云,一个是公有云,还有人把私有云和公有云连接起来称为混合云。
亚马逊为什么要做公有云呢?我们知道亚马逊原来是国外比较大的一个电商,它做电商时也肯定会遇到类似双十一的场景:在某一个时刻大家都冲上来买东西。当大家都冲上买东西时,就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源,那样太浪费了。但也不能什么都不准备,看着双十一这么多用户想买东西登不上去。所以需要双十一时,就创建一大批虚拟电脑来支撑电商应用,过了双十一再把这些资源都释放掉去干别的。因此亚马逊是需要一个云平台的。
然而商用的虚拟化软件实在是太贵了,亚马逊总不能把自己在电商赚的钱全部给了虚拟化厂商。于是亚马逊基于开源的虚拟化技术,如上所述的Xen或者KVM,开发了一套自己的云化软件。没想到亚马逊后来电商越做越牛,云平台也越做越牛。
由于它的云平台需要支撑自己的电商应用;而传统的云计算厂商多为IT厂商出身,几乎没有自己的应用,所以亚马逊的云平台对应用更加友好,迅速发展成为云计算的第一品牌,赚了很多钱。
在亚马逊公布其云计算平台财报之前,人们都猜测,亚马逊电商赚钱,云也赚钱吗?后来一公布财报,发现不是一般的赚钱。亚马逊AWS年营收达122亿美元,运营利润31亿美元。
如上所述,亚马逊虽然使用了开源的虚拟化技术,但云化的代码是闭源的。很多想做又做不了云化平台的公司,只能眼巴巴的看着亚马逊挣大钱。
公有云的第一名亚马逊过得很爽,第二名Rackspace过得就一般了,怎么办呢?开源吧。于是在2010年,Rackspace和美国航空航天局合作创办了开源软件OpenStack。
如上图所示OpenStack的架构图,不是云计算行业的不用弄懂这个图,但能够看到三个关键字:Compute计算、Networking网络、Storage存储。还是一个计算、网络、存储的云化管理平台。
当然第二名的技术也是非常棒的,有了OpenStack之后,果真像Rackspace想的一样,所有想做云的大企业都疯了,你能想象到的所有如雷贯耳的大型IT企业:IBM、惠普、戴尔、华为、联想等都疯了。
原来云平台大家都想做,看着亚马逊和VMware赚了这么多钱,眼巴巴看着没办法,想自己做一个好像难度还挺大。现在好了,有了这样一个开源的云平台OpenStack,所有的IT厂商都加入到这个社区中来,对这个云平台进行贡献,包装成自己的产品,连同自己的硬件设备一起卖。有的做了私有云,有的做了公有云,OpenStack已经成为开源云平台的事实标准。
随着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能更好的干这件事情。
然而大多数云平台会提供MySQL这样的开源数据库,又是开源,钱不需要花这么多了。但维护这个数据库,却需要专门招一个很大的团队,如果这个数据库能够优化到能够支撑双十一,也不是一年两年能够搞定的。
比如您是一个做单车的,当然没必要招一个非常大的数据库团队来干这件事情,成本太高了,应该交给云平台来做这件事情,专业的事情专业的人来做,云平台专门养了几百人维护这套系统,您只要专注于您的单车应用就可以了。
要么是自动部署,要么是不用部署,总的来说就是应用层你也要少操心,这就是PaaS层的重要作用。
虽说脚本的方式能够解决自己的应用的部署问题,然而不同的环境千差万别,一个脚本往往在一个环境上运行正确,到另一个环境就不正确了。
而容器是能更好地解决这个问题。
2013年,基于Linux容器技术的docker诞生了,Docker项目目前已经加入了Linux基金会,遵循Apache 2.0 开源协议。
docker的构想思想是要实现“Build, Ship and Run Any App, Anywhere”,即通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件“一次封装,到处运行”的目的。这里的应用组件,既可以是一个Web应用、一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。
基于Linux平台上的多项开源技术,Docker提供了高效、敏捷和轻量级的容器方案,并支持部署到本地环境和多种主流云平台。可以说,Docker首次为应用的开发、运行和部署提供了“一站式”的实用解决方案。
有了容器,使得 PaaS层对于用户自身应用的自动部署变得快速而优雅。
同样,又面临了相同的问题,成千上万的容器,甚至更多的容器的管理又称为了问题,尤其是在大集群环境中, 容器的部署、伸缩和管理的各种问题,最终衍生出来了容器编排引擎 。
2014年,Docker发布Docker Swarm
2014年6月,基础设施领域的领先者Google发,正式宣告了Kubernetes项目的诞生(Borg的开源版本),如同Docker横空出世一样,再一次改变了容器市场的格局。微软、RedHat、IBM、Docker加入Kubernetes社区。
2015年CNCF基金会成立
Kubernetes来自Google公司在容器化基础设施领域多年来实践经验的沉淀和升华,在Github上的各项指标一路飙升,将Swarm项目远远地甩在了后边。同年,Kubernetes发布Helm软件包管理系统、kubeam安装工具、发布Mikibube等一列更新操作。
CNCF社区迅速增加了Prometheus、Fluentd、OpenTracing、CNI等一系列容器生态的知名工具和项目
大量的公司和创建团队将注意力投向CNCF社区而不再是Docker公司。
不同于Docker公司,Kubernetes推进“民主化”架构:从API到容器运行的每一层,都给开发者暴露出了可扩展的插件机制,鼓励用户通过代码的方式介入每一个阶段。
kubernetes成为了很多Paas云的基础。
通过上面对云的介绍,相信很多同学也应该大概知道了云计算所涉及的知识体系了:
所以我们这个专业的课程设计如下:
课程中结合大量的企业真实案例,注重学生的动手能力培养,让学生毕业就能立即适应企业生产环境操作,无缝对接,真正做到实用性技术人才培养。
云计算的工作岗位包括了云计算架构师、云计算大数据专家、云数据集成专家、云系统管理员、云系统工程师、云网络工程师、云产品经理等等。
云计算时代最缺的是什么?毫无疑问,是人才。
由于云计算是新兴的产业,所以和其相关的工作岗位特别多,现在正是一个需大于求的市场,技术人才少,岗位却很多,所以从业人员工作机会很多,相关待遇也比传统的IT产业从业人员高不少。
下图是云计算的未来发展趋势图:
全球云计算现状分布:
我国云计算发展趋势图:
下图是云计算相关从业人员的薪资分布图:
初入行者可以达到吗?可以看到一年工作经验已成功进入高薪行列,日后薪酬岂可估量?
认识了云计算,又看到了其发展趋势,是不是开始跃跃欲试了。
估计有些同学已经开始迫不及待了,但是可能会有些同学看到那些专业性很强的技术名词,是不是又担心自己底子薄,担心学不会了。其实,大可不必,因为云计算涉及的知识面很广,所以其工作岗位也更多种多样,只要你跟住老师的授课节奏,基本都是没有问题的,就业更是不成问题,网络、Linux、集群、数据库、云平台这些模块中,学会任何一个,都会有相关的岗位相匹配,关键是要脚踏实地、坚持不懈的态度。
教学过程中,主要是动手实操为主,结合真实的企业案例,定能将你培育成一个合格的云工程师。
课程适合高中及以上学历,0基础学习者,只要你是有志在IT方向成功的人,那就没有问题。教师每天都会给你安排任务单,只要你能按时完成每日任务单,那么成功就已经属于你了。
课程目标:培养你成为一个受人尊敬的技术人才。
社会在发展,各行各业也在进行优胜劣汰,无疑,当今世界,是云计算的年代,云的出现,大大解放了生产力,不管是运维人员还是开发人员,云计算都让你从以前繁琐的重复工作中解放出来,致力于去研究自己擅长的方面,云计算已经成为了IT运营的基础。
选择云计算专业,就是选择了一个朝阳行业,就是选择了一个未来。
云计算专业,期待你的加入!
请到「后台-用户-个人资料」中填写个人说明。
© 2024. All Rights Reserved. 冀ICP备2023032251号