1.1 云计算
1.1.1 云计算的历史和发展
云计算的初级目标是管理资源,这里的资源包括计算资源、网络资源和存储资源。
电脑的CPU 和内存就是一种计算资源,而硬盘就是一种存储资源,但这仅仅是单机资源。对于一台电脑是这样,对于一个数据中心,资源的概念也是相同的。想象一下,某公司有一个非常大的机房,里面存放了很多台服务器,这些服务器也有CPU、内存和硬盘,那么,如此庞大的设备群是如何被统一管理起来,并且供全公司的人使用的呢?为了解决这个问题,集群应运而生,然后从集群中发展出“云”的概念。与本地集群不同的是,云计算的计算资源和存储资源不在本地,而是在“云端”,在网络上。
从传统IT 到云计算的发展历程如图1-1 所示,展示了本地资源到云计算资源的变革过程和主要时间节点。在传统的IT 物理机阶段,IT 部门会根据需求对不同类型、大小、数量的机器进行采购、审批等。在虚拟化阶段,不再需要细化到单个需求,只需明确总需求,便可人工调度并分配资源。到了现在的云计算时代,已经达到了相当规模的自动调度,时间和空间的双重灵活性得到了实现。
图1-1 从传统IT 到云计算的发展历程
云计算实现了时间和空间的双重灵活性。在时间上,用户任何时候需要计算资源都可以满足,在需要资源时一键部署,在不需要资源时随机释放。在空间上,用户需要多少计算资源都可以随时满足,特别是新型的计算资源(如GPU 和TPU 等),在云端不再受硬件的限制。从用户的角度来说,在“云端”有“用之不竭”的资源。云计算的空间灵活性和时间灵活性即人们常说的云计算的弹性。
云计算发展到今天,大致可以分为三种,分别为私有云、公有云和混合云。私有云一般部署于大公司中,有自己的机房(或硬件积累),能迅速利用云技术建立一个集群,并且面向全公司服务。公有云的资源都存储于云厂商的数据中心,面向大众服务。混合云实际上是公有云和私有云的结合。实际上,对很多大型公司来说,混合云是用得最多的;个人用户或初创公司往往直接采用公有云;一些传统的金融企业或私密性要求比较高的研究所往往采用私有云。
下面简单梳理一下云计算的发展过程。在第一阶段,云计算基本上已经实现了时间灵活性和空间灵活性,实现了对计算资源、网络资源、存储资源的弹性管理,这个阶段的弹性称为资源层面的弹性。
管理资源的云平台称为基础设施即服务(Infrastructure as a Service,IaaS)。有了IaaS,我们只是解决了硬件问题,但这远远不够,云计算不仅要管理资源,而且要管理应用,即需要实现应用层面的弹性。例如,在“双11”购物节活动期间,一个电商平台对服务器的需求数量激增,只从“云端”租用服务器是不够的,由于终端用户仍然需要花费很大的精力来部署操作系统和基础应用,如数据库,因此虽然实现了资源层面的弹性,但是没有实现应用层面的弹性,时间灵活性和空间灵活性大打折扣。
为了解决应用层面的弹性问题,人们在IaaS 之上又加了一层,这一层就是平台即服务(Platform as a Service,PaaS)。PaaS 大致解决了“通用的应用不用安装”的问题。通用的应用是指一些复杂性比较高,但是大家都在用的应用,如数据库。几乎所有的应用都会使用数据库,但是数据库软件是标准的,虽然安装和维护比较复杂,但是无论谁安装都是一样的。这样的应用可以作为标准的PaaS 层的应用安装在云平台上,当用户需要使用数据库时,一键部署即可。对用户来说,在“云端”的应用,要么自动部署,要么不用部署,总的来说就是公共层的事情,用户不用花很大的精力,这就是PaaS 的重要作用。
在PaaS 阶段,维护人员依然需要花费精力在个性化的上层应用上,如软件的安装和升级。为了解决这些问题,紧接着出现了软件即服务(Software as a Service,SaaS)。SaaS可以利用互联网向用户提供应用程序,这些应用程序由第三方供应商管理。通过SaaS,供应商可以解决所有潜在的技术问题,如数据、中间件、服务器和存储方面的问题,使企业简化了对应用的维护和支持流程。IaaS、PaaS 和SaaS 的区别如图1-2 所示。
图1-2 IaaS、PaaS 和SaaS 的区别
1.1.2 为什么云计算会“飘”起来
在短短的几年时间内,云计算已经渗透到我们日常生活的方方面面,我们平时使用的手机App 和网站,都离不开云计算的强大服务支持。越来越多的企业开始使用基于云计算的企业服务,我们的生活、工作正在因为云计算而发生巨大变革。那么为什么云计算会“飘”起来,达到了“人生的巅峰”呢?主要源于其五大特质。
1.节省成本,降低费用
云计算不需要购买多余的服务器及其扩容备件,也不用重复安装、更新和修复服务器系统环境。云计算的硬件较为集中,便于管理,可以集中更新组件,不间断操作。云计算支持按需求付费,成本取决于资源消耗量,根据每月数据处理量、存储容量和数据传输量计算费用。用户可以根据自己的需要购买服务,甚至可以按使用量进行精确计费。这些都大大节省了IT 成本,使资源的整体利用率得到明显提升。
2.大规模、分布式、资源丰富
“云”一般具有一定的规模,一些知名的云供应商(如IBM、Google 云计算、AWS、微软、阿里等)都具有上百万级的服务器规模,这些分布式的服务器所构建起来的“云”能够为使用者提供前所未有的计算能力。上规模的大公司的服务器分布在世界各地。
3.增强资源灵活性和弹性
云计算供应商一般采取数据多副本容错、计算节点同构可互换等措施来保证服务的高可靠性。基于云计算的应用可以持续对外提供服务。此外“云”的规模可以动态伸缩以满足应用和用户规模增长的需求。
4.使虚拟化易于管理
云计算采用虚拟化技术,用户无须关注具体的硬件实体,只需选择一家云服务提供商,注册一个账号,登录它们的云控制台,购买和配置所需的服务,在为所需的应用进行一些简单的配置之后,就可以使自己的应用对外服务了。这比到企业的数据中心部署一套应用要简单、方便得多,而且用户可以随时随地使用计算机或移动设备控制自己的资源。
5.数据安全可靠
由于数据集中存储于“云端”,因此无须在计算机硬盘中存储对企业至关重要的数据,从而减少了工作人员因丢失笔记本、离职等情况而可能导致的重要数据丢失问题。这种集中化还可以提高监控数据访问的能力,并且在需要时识别、增加和减少授权。一般企业的IT 团队或个人很难应对来自网络的恶意攻击,而使用云服务可以借助更专业的安全团队有效降低安全风险。
云计算在我们的日常生活中得到了广泛应用,目前,云计算已经应用于在线办公、个人数据存储(个人网盘)、云游戏、物联网和机器学习等领域,随着云计算技术的不断发展,相信还会有更多领域使用云计算,我们的生活也会因为云计算而变得更加便捷。