4.3 云计算的服务类型
在云计算中,一切都被视为服务,包括软件即服务(Software as a Service,SaaS)、平台即服务(Platform as a Service,PaaS)和基础设施即服务(Infrastructure as a Service,IaaS)。这些服务为云计算定义了一个分层的系统结构。云计算:一切皆服务如图4-3所示。
图4-3 云计算:一切皆服务
基础设施层(IaaS层)提供网络、服务器、存储等硬件,并且将这些计算资源标准化。中间层(PaaS层)主要提供软件安装、数据存储工具、系统的资源、平台的维护等。应用程序层(SaaS层)主要提供完整、可使用的应用程序。顶部的用户界面层可以与这三层无缝交互。
4.3.1 基础设施即服务(IaaS)
IaaS指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式。用户不需要自己搭建硬件系统,只需要在服务商这里租用即可。
IaaS的特点如下。
1)租赁
当用户租用基础设施服务时,用户可以随时访问其租用的物理资源,但是该物理资源仍然被存放在服务商的数据中心。用户可以根据自己的需要,租用不同时间的服务并支付费用。
2)自助服务
用户可以通过自助的形式来租取自己需要的资源。服务商通过一定的自主服务手段,而不需要依靠IT。通过一个自助服务界面,可以轻松处理多个重复性任务。
3)动态缩放
当资源能按照工作负载或任务需求自动伸展或收缩时,这就称为动态缩放。当用户的需求提高,需要更多的资源时,服务商可以立即提供给用户。
4)计量
计量确保用户能按照他们需要的资源和使用收费。从实例的启动开始计费,到实例的终止结束。除了这些基本费用,服务商还可以对额外的服务收费。
4.3.2 平台即服务(PaaS)
把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS,而云计算相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS。其提供的开发环境通常包括弹性计算服务、虚拟化、云存储服务、云计算网络技术、CDN技术、容器服务等。
1)弹性计算服务
弹性计算是指用户根据实际业务或者计算需要,灵活地购买计算资源。相较于主机托管模式,它最大的优势在于实现了按需收费。以前用户会基于自己最大的容量进行付费,这会导致自己使用的服务器并没有得到充分利用。弹性计算提供的服务具有更高的可用性,而且收费方式较为简单,用户只为自己需要的部分买单。
2)虚拟化
通过弹性计算的方式计算出用户需要服务器的性能后,需要生成一个相应性能的服务器来供用户使用,这就需要通过虚拟化技术来实现。虚拟化(Virtualization)技术是为一些组件(如虚拟应用、服务器、存储和网络)创建基于软件的(或虚拟)表现形式的过程。
虚拟化是实现云计算的一种手段。当用户需要计算资源时,会向云服务器申请资源,云服务器会以虚拟机的形式提供资源。因为我们已经将资源池化了,当用户申请计算资源时,云服务器就会从CPU池、内存池、磁盘池等硬件池中取出用户所申请的资源,并将它们封装成一个虚拟机提供给用户使用。从用户的角度上看,一个虚拟机就是一个完整的操作系统,完全可以把它当作一台物理服务器去使用。
虚拟化就是实现虚拟机的技术,它与我们常用的PC机上的虚拟化软件不同。云计算的虚拟化是针对多台物理服务器进行管理,而不是针对一台服务器或PC机。虚拟化将其封装成虚拟机对外提供服务,每台虚拟机封装有一定的硬件资源,而且各个虚拟机的资源是相互隔离的。
虚拟化的优势如下。
(1)可以提高IT敏捷性、灵活性和可扩展性。
(2)大幅节约成本。
(3)有更高的工作负载移动性。
(4)有更高的性能和资源可用性。
(5)自动化运维。
3)云存储服务
云存储是指通过网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。它是从云计算概念上延伸和发展的,是一种新兴的网络存储技术。其具有如下优势。
(1)实现了自动化和智能化。虽然现实中的存储资源是分散的,但是云计算将存储资源整合到一起。从用户的角度来看,它只是一个完整的存储空间,与普通的网盘无异。
(2)提高了存储效率。由于应用了云计算技术,因此解决了存储空间的浪费问题,同时既增加了空间利用率,又兼具负载均衡等功能。
(3)弹性扩展。用户可以根据自己要存储的数据量需求来使用云存储服务,避免资源浪费。
网盘,也可以称为网络硬盘,是由互联网公司推出的在线存储服务,服务器机房为用户划分一定的磁盘空间,为用户提供文件的存储、访问、备份、共享等文件管理功能。网盘与云存储的不同之处如下所述。
(1)存储技术不同。传统网盘上传的资料与服务器空间是一对一的关系。相较于云存储供应商,网盘供应商需要更高的硬件配置。
(2)存储安全性不同。传统网盘一般仅在单一服务器上存储数据,如果由于意外发生服务器故障,数据基本无法找回。对于云存储来讲,如果不是整个数据中心出现故障,数据是不会遗失的。
(3)产品功能差异。云存储与传统网盘最大的差异在于同步功能。云存储可以同步不同设备的数据,这在一人多设备的时代具有极大的优势。传统网盘最多具有共享功能,无法满足数据迁移等要求。
4)云计算网络技术
对于云计算来讲,其主要思想就是将各种物理资源进行池化,通过网络将池化后分散的虚拟资源整合起来,对外提供服务。因此,云计算网络有两个任务:一是将资源池变成一个虚拟资源;二是将所有位置的用户与这些资源相连接。为了完成任务,云计算网络必须满足以下功能。
(1)在需要时增加和降低带宽。
(2)低延迟的吞吐能力。
(3)服务器之间无阻断连接。
(4)延伸到企业和提供商网络中。
(5)能在不断变化的环境中始终提供可见性。
云计算网络技术的解决方案有很多,本章以虚拟局域网和覆盖网络为例进行简要阐述。
(1)虚拟局域网(Virtual Local Area Network,VLAN)。
VLAN是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,VLAN就是由此得名的。
不足:面临云计算虚拟化环境,物理服务器上可能运行着多个租户的虚拟机,导致出现一个端口映射了多个VLAN,租户的数量会超过VLAN标签的最大值,导致VLAN方法的失效。
(2)覆盖网络(Overlay Network)。
Overlay在网络技术领域指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其他网络业务分离,并且以基于IP的基础网络技术为主。Overlay技术是在现有的物理网络之上构建一个虚拟网络,上层应用只与虚拟网络相关。
最常见的Overlay技术是VPN。通过MAC-in-MAC、IP-in-MAC、MAC-in-IP、IP-in-IP的形式,将虚拟机的数据封装起来,然后通过数据包最外面的MAC或者IP地址,完成数据的路由转发功能,在到达目的服务器时,将数据包拆解,保留内部的数据信息,并根据真正的地址信息,转发给目的虚拟机。
不足:需要网络边缘的设备支持相应的Overlay技术,并且包装与解封需要大量的计算能力,在网络流量较大时,会影响物理机的性能,进而影响虚拟机的性能。
5)CDN技术
CDN即内容分发网络,其目的是通过在现有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,导致的用户访问网站的响应速度慢等问题。CDN技术的工作流程如图4-4所示。
图4-4 CDN技术的工作流程
使用CDN技术的好处如下。
(1)快速访问。使用了CDN技术以后,用户可以通过其附近的CDN节点,来访问自己的应用。
(2)成本降低。CDN技术所需要的成本相对于传统服务器会大大降低。
(3)用户体验的提升也会大大提高应用的使用流量、使用频率等,提高应用的知名度。
6)容器服务
前面我们已经介绍了虚拟化,用户在使用虚拟化一段时间后,会发现它存在一些问题:虚拟机虽然可以完全隔离一个主机的不同程序,但其资源浪费是巨大的;而且对于整个虚拟机来讲,其运行环境也是独立的,这对应用程序的迁移带了巨大的麻烦。为了解决以上问题,引入了容器的概念。容器是一种轻量的虚拟化,它和虚拟机最大的区别在于,容器是进程级的隔离。虚拟机和容器特性对比如表4-1所示。从本机的角度来看,运行容器就是在运行一个进程,其消耗的资源比虚拟机要少得多。容器身处的运行环境和主机的主体运行环境是一致的,对数据迁移工作等提供了很大的便利。虚拟机和容器的对比如图4-5所示。
表4-1 虚拟机和容器特性对比
续表
图4-5 虚拟机和容器的对比
容器的优点如下。
(1)快速敏捷。容器创建示例快,消耗资源少,支持脚本快速批量创建,减小资源成本。
(2)提高生产效率。每一个容器都有自己的服务,服务之间是相互独立互不关联的,因此单个服务的技术升级不会影响到其他服务。
(3)层级控制。容器应用了分层技术,其主要思想是更新后的服务不是开启了新的服务,而是基于先前版本的迭代,由此可以提高服务部署的效率。当最新版本出现异常时,也可以通过回滚到历史版本,来减少损失。
(4)运行环境可移植。容器的主体运行环境和主机环境相差无几,同时自身又封装了示例本身所需的特殊配置,这为服务的移植提供了极大的便利。
(5)标准化。容器开发遵循当前国际标准,可以在目前主流系统中运行。
(6)安全。容器是进程程度上的隔离。单个容器进行更新或出现问题不会影响到其他毫无关联的容器。
容器的缺点如下。
(1)复杂性增加。因为容器更加小巧,所以会导致容器部署的数量增加,复杂性上升。尽管目前已经出现了相关应用程序来辅助管理容器,但对于运维来讲是一个巨大的考验。
(2)原生Linux支持。大多数容器技术是基于Linux系统的,在其他系统中使用会产生一定的问题。
(3)不成熟。容器作为一门新兴技术,需要一定的时间来获取外界的认可。同时也需要更多的时间来进行完善。
7)PaaS应用产品
目前市面上有很多PaaS平台,其中以Docker和Kubernetes最为流行。
(1)Docker。
Docker是dotCloud开源的高级容器引擎,它具有容器所有的基本优势,如快速敏捷、安全隔离等。对于Docker来讲,它能够持续火爆的原因在于它的镜像设计,如图4-6所示。
一个Docker容器分为只读部分和读写部分。只读部分包括很多只读层,其中包含了一个容器的最基本配置,被称为镜像。在镜像的外面还有一层读写层,我们需要的特殊环境需求就被写到这一层中。因此,无论开发人员对容器进行什么操作,都不会影响Docker的镜像层。
图4-6 Docker的镜像设计
Docker更像个微创新者,但是解决了最大痛点,它为服务从发布到构建再到运行的问题提供了更多的解决方案。
(2)Kubernetes(K8s)。
Kubernetes是一种容器集群管理系统。它构建于Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容、缩容等一整套功能。在Docker的基础上,Kubernetes更加注重与容器编排等运维相关的问题,主要功能包括:启动容器、自动化部署、扩展和管理容器应用、回收容器。Kubernetes还能监控容器内的运行状况、容器间的联系状况等。
4.3.3 软件即服务(SaaS)
软件是这样一种产品,它被制造出来,用于满足很多过去有人想到的,甚至没有人想到的需求。那么不同的软件,其实是满足不同的的需求。能否把握、了解、分析、满足这些需求,甚至于创造、激发出过去没有的需求,这是某一软件企业的生命力所在。SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件操作平台,并负责所有前期的实施、后期的维护等一系列服务。企业不再需要自行选购软硬件设备、建设机房、招聘IT人员,直接以互联网的形式登陆、使用信息系统。因此,SaaS服务模型被中小型企业所青睐。
在云制造模式中,SaaS指通过浏览器、应用程序或小程序等形式,为平台用户提供具有特定功能的服务入口,如面向用户个性化需求的制造资源匹配、高端装备的健康管理等。
1)通用SaaS与行业SaaS
SaaS可以分为通用SaaS和行业SaaS两种。通用SaaS主要提供通用软件产品,不受不同产业的限制,如北森的HR产品等。行业SaaS主要提供在特定行业使用的软件产品,对行业具有一定的针对性,如客如云的餐饮企业SaaS等。
一般来讲,通用SaaS是针对通用群体的特定业务,行业SaaS是针对一个行业内的多个业务。
2)工具SaaS与商业SaaS
工具SaaS主要是为用户提供一个方便高效的使用工具,这和传统软件的价值一致,它的优势主要体现在按时间收费的机制和软件产品的更新换代两个方面。
商业SaaS和工具SaaS的出发点不同。商业SaaS的目的是帮助企业提高应收。工具SaaS主要在既有服务的基础上提高效率,商业SaaS是提供更多的服务。商业SaaS是一种在模式上的创新,具有的风险也比工具SaaS大得多,因此目前来讲,工具SaaS占有着更多的市场份额。
SaaS产品分类如图4-7所示,用实心圆的大小代表市场上该类型SaaS产品的数量。
图4-7 SaaS产品分类
3)SaaS应用产品
(1)Salesforce.com。
它是典型的SaaS应用程序,Salesforce提供的用户关系管理解决方案使得企业能够在平台内收集有关用户和潜在用户的信息,使授权员工可以随时访问任何连接设备上的关键数据。
(2)Microsoft Office 365。
Word、Excel和PowerPoint等Microsoft应用程序是工作场所中的主要工具,但基于云的Microsoft Office 365极大地扩展了Office套件的参数。现在用户可以实时创建、编辑和共享任何PC、Mac、iOS、Android或Windows设备上的内容,并支持在任何位置通过一系列工具(从电子邮件到视频会议)与同事、客户进行协作。
(3)Box。
该在线工作空间使专业人员可以随时随地与任何人协作。用户可以通过传统链接或自定义URL安全地共享大型文件,通过权限和密码来保护数据和文档。Box支持120多种文件类型,用户可以在下载之前预览内容。所有内容共享、编辑、讨论和批准仅限于一个集中文件,用户在编辑时会收到实时通知。Box还可以自动完成员工入职和合同审批等任务,减少重复和缩短审核周期。
(4)Google Apps。
Google公司很久以前已经扩展到其搜索和广告根源之外,为企业提供了一套全面的生产力工具。Google Apps包括自定义专业电子邮件(包含垃圾邮件保护)、共享日历、视频会议及Google云端硬盘。作为基于云的文档存储解决方案,Google云端硬盘可让员工在任何设备访问文件并立即与同事共享,从而解决了电子邮件附件及合并不同版本带来的问题。
(5)Amazon Web Services。
亚马逊也已经超越其核心电子商务平台,支持按需提供基于云的IT资源和应用程序,并通过按需付费定价选项加以支持。目前Amazon Web Services包含计算、存储、网络、数据库、分析、部署、管理和物联网工具等70多种服务。