先说一下云计算的一个基本概念,什么是云计算,云计算就是基于一个互联网的一个计算方式。通过这种方式,共享软硬件资源和信息,并且可以提供给计算机的各种设备服务的这种方式是云计算的定义。这个定义里面其实有两点是比较重要的。第一点就是云计算是一种基于互联网的方式去提供服务,这和传统方式是不太一样的。传统方式可能是说我自己的服务器的方式,而云计算的使用方式是说它是通过互联网,通过网络的方式去提供给你服务。而服务中计算的算力,计算的那个点是在远程,提供给用户最终的是通过网络的方式,这是第一点。第二点是云计算的一个特点是它通过一种共享的方式去提供服务,这种方式其实是云计算的一个灵魂,就是它允许不同用户的资源可以共享在相同的一台机器上,这样的话它可以更大程度上的去利用资源。这个其实真正公有云里面的那个灵魂。云计算按照使用的层次可以分为三层,主要是分为SaaS,PaaS,IaaS。IaaS就是infrastructure as a service,就是基础组件即服务,基础设施即服务。什么是基础设施呢?所谓基础设施,就包括CPU,内存,磁盘, IDC机房里面可见的一些网络设备的相关的以及可以看到传统的方式中一些硬件底层的资源,这些都属于基础服务。然后,什么是PaaS呢?PaaS就是平台即服务,它提供了一个运行时的平台,包括你程序运行的相关的各种中间件,各种的其他服务都是在这个平台已经提供给你的。而你只需要去写你的代码就可以了,你的代码就可以运行在这个平台里面了。它这个代码所在的环境都是平台就提供的,这种就是PAAS的使用方式。那么什么是SaaS呢?SaaS就是software as a service。就是说它是软件即服务,什么软件即服务呢?就最终提供给你的就是一个软件,譬如它可以直接给你提供一个流程管理系统,你可以直接在系统上面直接使用,这个其实很多人都会用过一种多人在线去同时编辑的这种服务。这种你就可以理解成SaaS服务,你使用的最终就是一个终端的服务,你不需要关心这个服务到底是运行在哪里,部署在哪里,甚至不需要提供。你只需要打开游览器就可以多人去编辑同一个word,或者多人编辑同一个Excel,这种服务就是典型的SaaS服务。下面这张图其实是一个比较偏技术的一个图,这个图里面去是可以看到IaaS,PaaS,和SaaS的一个分区。红色的部分是代表由底层去提供的,上面的蓝色部分是代表用户需要自己的开发的东西。你可以看到IaaS,PaaS,到SaaS就是云提供的东西越来越多,用户关心的东西越来越少。越是底层的服务你自己可控的东西越多,但是你需要自己做东西越多。而这些上层的东西,就是你用户关心的越少,你用户更关注自己的这些业务的特点。譬如如果你是一个IaaS,你需要自己去维护你的操作系统,维护你的各种数据、中间件相关的东西。而如果你是PaaS,你只需要维护你的应用和数据。那如果你是一个SaaS,你直接使用这个应用就行了,所以这个出现层级会更高一些。
其实云的发展已经有不止十年了,所以这十年其实对整个企业IT的影响是非常大的。下面我就第二个内容IT技术上面的架构的影响以及对整个行业内的影响。这张图主要展现了一个应用的组成,其实常规来说,我们开发其实并不是真正占有一个应用的核心内容。通过二八法则大家看到其实真正的开发只占了20%的东西,还有更多的东西,都是一些运维/底层/相关的一些中间件的支持以及一些底层资源或者故障恢复相关的。所以可以看到,当应用开发完了以后,还需要有更多的依赖的东西,那有没有一种方式呢?把底层的80%交给别人去做,而我只把我做应用开发相关的20%,我关心我自己的业务,我的应用开发。我有20%的东西我自己来做,那么剩下的80%能不能交给别人做了,于是这就是云的使用方式。云的使用方式就是它把底层80%的东西以云的方式提供给你,而应用的人只需要做到20%的应用开发相关工作就可以了。云的使用方式,首先来说就是降低了成本,这个其实非常容易理解。因为通过虚拟化的方式可以在原来的一台物理机上训练出2台、3台甚至二三十台的虚拟机,那么可以在一台物理机上训练出三十台虚拟机,这样就可以极大地提高资源的利用率。并且云的使用方式就是按需使用,就是我用多少,我就使用多少,然后我不需要的话就可以点击释放,立刻就可以把这个资源给回收,给释放了,而且变成了按需计费。这在公有云里面是特别普遍,就是pay as you go,就是你用多少来计算资源,然后你交多少钱。而不必要一次性去买很多资源,而导致有很多硬件的闲置问题,而且对整个企业的IT来说它的资源,那个消费是可控的。云的第二个使用的便利是快速的响应,对于传统的方式,如果你也需要去做资源的扩容,其实非常麻烦,需要购买硬件去搭建网络设施设备,然后配置各种东西,所以对于你对资源不足的情况下,需要立即扩容的情况下,是非常非常慢的,甚至是长则几天才能把这个资源扩容,而使用云的方式通常是一键扩容,通过一键就可以点击去把一核1G的虚拟机变成两核4G的虚拟机,或者是一个虚拟机变成两个虚拟机都是分钟级的。如果用容器的话,可以达到秒级的方式去资源的扩容,并且它甚至不仅可以手动的扩容,而且可以根据你的流量,根据你的需求相关的东西就自动地伸缩,自动地去扩展你的资源。特别是对一些互联网类的应用,它可以在突发性的流量的时候极速扩容。云的第三个影响就是它有丰富的服务,其实现在的云已不仅仅是以前的那种虚拟机的方式,它还提供很多的一些大数据互联网,还积极学习了相关的东西,都可以跑到云上,并且都可以一键部署整个环境。第四个云的优点是传统的很多方式让大家使用机房都是自己独立的,使用云的方式让通常可以实现异地的。多数据中心的资源备份以及高可用,因为这个传统的方式,你可以看到国内的阿里云,他有说华东区,还有华东一区、华东二区,有多个区域多个可用的区域,那么就是说,如果你单个机房出现问题的时候,它可以避免单个机房甚至一个地区的故障。所以它可以达到服务的更高可以,还有一个云的使用方式发出去,它提供一个全球的DS服务,就是如果你的网站消费有美国人访问,你可以直接在阿里云的美国的节点购买一个服务,这样的话美国的用户可以直接访问阿里云美国的服务,这样就可以就地访问得到最高的一个访问的性能和用户的体验。其实我本人也参与过一些关于云的相关项目。一些相关的案例包括制造业、军工、互联网和金融相关的行业。他们纷纷把自己的服务迁移到云上。比较典型的是一个军工飞机模型的案例,由于飞机模型在试飞的时候需要很大的运算量,他们都是在云端完成了整个计算。还有一个是汽车碰撞的模型,都是通过软件模拟的方式实现。在模拟的过程中需要消耗很多的资源,但是在模拟完成后,资源就可以快速释放出来。还有一些像互联网方面的应用,比如整个京东的业务,以及天猫的线上业务都是在云上运行的。其实云的方式不仅是对于每一个企业来说的,也涉及到某个点来说,就会影响到每一个IT从业人员。其实云化以后,一些企业的高管们CIO/CTO们就会考虑到整个企业的IT架构是不是都要放在云上,哪些放在云上或哪些不放在云上,或者是混搭的方式,他们会思考整个IT的组织架构。包括运维也是的,运维的传统方式主要是机房里面的一些东西,以后运维都变成一种云服务的运维了。研发和架构设计也是密切相关的,举个简单的例子,在云上面会提供一种服务叫对象存储服务,他可以把一些图片和一些视频放在云存储上。作为一个架构师在企业做架构的时候,会考虑到哪些数据需要放在对象存储里面,哪些不需要放。作为研发者就会考虑到需要对接怎么样的API,需要考虑到数据通过代码的方式上传到云上去。这就是对于每一个架构师,对一个研发者来说都离不开云,都是一种基于云的开发。这里涉及到一个问题,很多企业都会自己去建一个私有云放在自己的地方,还有的企业是通过一种购买第三方像阿里云、亚马逊或者腾讯云这种公有云的服务。企业到底应该选择自己的私有云,还是去购买像阿里那种公有云服务呢?如果企业选择上面的参考点,无非是五点考量因素:一是费用,二是稳定性,三是应用性,四是安全性,五是响应的时间。第一个最重要的因素就是费用,企业选择上哪个云,当然是考虑到花钱了。通常来说,如果是小规模的去使用这个云,最好的方式是公有云;如果是大规模的,并且长期使用的,自己有IDC机房的情况下自建的成本相对来说会便宜一些,特别是一些小的初创型公司,基本上都会考虑费用的原因去选择一些公有云。稳定性来说,通常公用云的服务规模更多,可能的安全因素会更多,服务的可靠性和稳定性也会更强,它们的技术背景也会更好。应用性来说,私有云的应用性可能会比公有云的应用性更好,通常来说,私有云就是根据企业做定制性场景相关的开发,所以会更契合企业的场景。安全性来说,公有云比私有云更有一些安全优势的,公有云的安全优势在于技术方面更加强,并且有更宽的带宽,更高的D-DOS攻击相关的东西。如果是私有云,它会做私有云的机房部署和外界隔离,这样的话,私有云的安全性也会得到相应的保障。对于响应时间来说,通常私有云的响应时间会更好一些,因为是自己在维护。公有云响应方式都是提交工单的方式,提了工单可能1小时或者半天才能回复。