从2007年左右开始,世界各地的IDC公司(互联网数据中心)逐渐改名换姓冠以“云计算”之名,生怕一个不小心让竞争对手先己一步。回首这十年的,“云计算”本身拥有了长足的发展,从最先的虚拟化技术开始,到现在被大众所知的各个云盘,似乎“云计算”技术已经成熟并且熟透了。然而,十年的时间让这项技术的从萌芽到成熟还是远远不够的,今天我们所熟知的各个“云计算公司”,更多的是商家的噱头和宣传而非“云计算”技术本身。
云计算的概念本身还在完善之中,即使是像IBM这种深耕计算行业的巨头公司也无法给予“云计算”一个完整的定义。常见的云计算可以解释为是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡、热备冗余等传统计算机和网络技术发展融合的产物。按照服务模式和部署模型也会有很多分类。
按照服务模式可以有三种分类:
软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。例如:Microsoft CRM与Sale。
平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如:Google App Engine。
基础设施即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:Amazon AWS、Rackspace。
按照部署模型可以有四种分类:
公用云(Public Cloud):简而言之,公用云服务可通过网络及第三方服务供应者,开放给客户使用,“公用”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户数据可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。
私有云(Private Cloud):私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。
社区云(Community Cloud):社区云由众多利益相仿的组织掌控及使用,例如特定安全要求、共同宗旨等。社区成员共同使用云数据及应用程序。
混合云(Hybrid Cloud):混合云结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及数据。
然而上说所说的Microsoft CRM、Sale、Google App Engine、Amazon AWS和Rackspace都不算做完整意义的“云计算”,现行的最贴近“云计算的”的产品是超算,比如神威·太湖之光。现阶段只有超算才算是完整利用了分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡、热备冗余等众多功能。
与云计算有着千丝万缕关系的是虚拟化技术,可以理解为大家通常所说的虚拟机。如果用过vmware workstation等类似的软件,可能会想到一个问题:如果我在一台性能强劲的电脑中装上虚拟机,再将虚拟机分配给其他人使用,岂不是省了买更多电脑的钱了?实际上,在IDC行业中,已经充分了实现了这个想法,而产品被称为VPS(Virtual Private Server虚拟专用服务器)。比如,将一台CPU为E3 1230 V5内存64G硬盘2T的服务器利用虚拟化软件(比如Proxmox,ESXi)将资源平均划分为1个线程8G内存200G硬盘的虚拟机,这些虚拟机就叫做VPS。如果这些VPS具有完整电脑的功能,就可以在里面安装不同的系统使用不同的软件等,如同一台真实的电脑。
说起来比较枯燥,不如举个例子吧。
很久很久以前,科技也不发达,大家都是住在乡村的,偶有少部分人是住在城市之中的。居家就要喝水,河水一来不干净,谁也不能保证河水从上游流下来的时候经过了什么;二来水量不稳定,夏天暴雨的时候水量就会很大但是也浑浊,冬天水量就不行了,不足以供给所有人使用。这个时候大家就开始打井取水,只要打到了合适的水脉,可以用很多年,既稳定又安全。有些家庭会拥有一口独立的水井,享受这口水井的所有资源,这口水井就是“服务器”,享受所这口水井所有的水就是“资源独享”。有些人会和邻居甚至是一个村子共用一口水井,这口水井属于大家共有也就是“资源共享”,这就是VPS。但是这样也有问题,比如有些家庭特别需要水,远超过这一口井所能提供的水,那么该怎么办?在技术没有进步的时候,只能另外再打一口井,两口井还不够那就再来一口,总会满足需求。后来技术进步了,大家几乎都住在城市中了,有了自来水。水厂统一从各条河中取水,通过标准的处理流程将其达到饮用水的标准,再通过水管输向千家万户。由于水源有很多而且还是经过水厂处理的,这样一来,大家就不用考虑不同季节水量多少,水质好坏等各种问题了。只需要在用的时候打开水龙头就可以了。水厂就是“云计算服务商”,他们利用各条河来取水(分布式计算)并且按照各条河的水量多寡水质优差来决定到底从哪几条河取水,取多少水(并行计算、效用计算),但是当城市大了之后,一个水厂已经不够用了,于是二水厂出现了原先的则被命名为一水厂,这两个水厂分别向各地输水,并且还预留了相互之间的管道以防万一(并行计算、负载均衡)。但是因为水源是河流,万一水源被污染了怎么办?所以水厂会和其他城市的水厂联动,相互协调来确认水源从上流到此的状况,并且签订协议如果某一个城市的水厂的水源被污染了,另外一个水源没有被污染的城市的水厂就要调水过来应急,并且水厂本地也会经常将备用水箱装满水,以防万一(网络存储、热备冗余)。
但是现在的技术还没有见不到让大家普遍用上“自来水”,更多的是打一口井然后大家共用(VPS/虚拟机)。这就让一些商家有机可乘了,有些有良心的商家用水泵将井里的水抽到高处的水塔,然后给原先共用这口水井的家庭装上水管,假装这是自来水。而更多的商家则直接将共用的水井改名叫做自来水,并且告诉所有人这个就叫做自来水。超算就如同依靠单个水厂的自来水,采用openstack的大规模计算平台就如同那些有良心的商家,剩下的大多如同后面的那些商家一样,把普通的VPS冠以“云计算”之名。阿里云就是将VPS改名为“云服务器ECS”假装是“自来水”来卖。当然了,并不是这一家这么做,腾讯云的“云服务器”,乃至国际巨头amazon的AWS有些也是VPS。
简而言之,虽然云计算给予了我们一个美好的愿景,但是严格意义上的云计算还是处于起步阶段,无法做到大规模的商业应用。