什么是云平台服务?先来了解下云端的真正定义吧

2020-09-28 17:15:27

云端的定义含糊多元,包山包海,我们很难确切定义

云端运算是最近几年来很红的一个话题,全球资讯大厂无不积极投入。然而在这一片人「云」亦「云」的风潮下,到底什么才是云端运算,很多人都还搞不清楚。好像只要新一点的电脑相关科技就被叫做云端。以下我们先来讨论几种常见的误解。

「我的东西都存在云端上,手机就是一台thin client」:这 叫 做 remote storage 和 client-server computing,不是云端运算。你的东西都存在 Internet 上的服务器上的硬盘或资料库里。

「我们在云端对话」:像 FaceBook 这一类的互动网站叫作 Web 2.0,早在云端运算这个名词出现之前就有了。

「云端运算无非就是将所有的资料都送到网络去处理」:这个说法自从李家同教授提出后就引起了许多讨论。很多人认为李教授不瞭解云端运算就妄发议论,但如果去看全文的话,就发现他是在 2009 年 11 月 7 日只是「查了一下杂志」就得到这个结论,并不是经过了严谨的学术研究之后。当时业界对这个题目都还不是很瞭解,更何况是杂志记者?只不过李教授位高言重,一语惊人,让大家对云端运算产生了严重的怀疑,直到最近都还有求职的软体工程师引用他这句话来质疑云端运算的价值。

「要做云端运算要建置大型机房,将电脑集中运用」:云端运算是要用到大量的电脑,这样才能更有弹性地调配资源,但这些电脑不必实体上集中在一起。某种程度的集中可以减少建筑、配电、空调和管理上的成本,但大到了一定程度之后这种节省的效果就不再出现了,反而要开始担心如何应付庞大的用电和散热问题。分散式的配置可以减少某些类型的风险,也可以让管理更方便。打个比方来说:假设台北到旧金山的航线每週有七班,载客率百分之八十。造一架六倍大的飞机把它们合併成一班,以图提升载客率到百分之九十二,并不是一个正确的解决方法。最后的结果可能是这架飞机根本飞不起来,或是一次意外就造成惨重的损失。

「云端运算使用虚拟化技术快速部署资源或获得服务,可以提高服务器使用率」:虚拟化是最近几年常见的「云端运算解决方案」,但不是云端运算的唯一方法。如果没有云端运算,虚拟化一样有它的用途。

没有虚拟化,云端运算一样可以办得到。虚拟化的原理是在一台运算能力足以应付好几个应用程序的主机上,装置一个虚拟平台来同时执行这几个应用程序,而以虚拟平台来解决这些应用程序对系统需求不同或不相容的问题。但如果这些应用程序对系统需求本来就相同或相容的话,就完全不需要虚拟平台了。

自己在家里装过家用服务器的玩家都知道,你的email, FTP, Web, database 和 le server 本来就可以装在同一台 Linux 的机器上,完全不需要虚拟化。另外如果一个应用程序已经大到一台服务器装不下的时候,更是不需要虚拟化了。像 Google 就完全不采用虚拟化,因为它一个程式就要上千台服务器才能跑得动。虚拟化之所以盛行,是因为它可以让使用者包装一个完整的软体工作环境,轻鬆地把它搬到不同的服务器上。当然,方便是有代价的。就像万用工具和专用工具之间的差别:万用工具的效率会差一点,价格也会高一点,不过还是比几个专用工具加起来便宜。

「我用 Hadoop 来做云端运算」:2007 年 10 月 8 日 Google 与 IBM 发 佈 合 作 新 闻 稿,要 在美国七所大学教授如何处理大量资料的高速计算技术,基本上使用 Hadoop 作为教材。从此很多人把 Hadoop 和云端运算划上了等号,严重的甚至 宣 称 Hadoop 就 是 一 种 PaaS。事 实 上 Hadoop是根据 Google 的 GFS 和 MapReduce 两种技术开发的一个开放源码套件,主要功能是稳定地储存变动性不大的大量资料,以及提供同时启动大量电脑以批次容错处理资料的能力。对于某些云端运算的应用来说,如果刚好有这两种需求,它是一个不错的工具。但它的地位比起其他任何工具来说,并没有太大的特殊之处。大部份的云端应用程式甚至完全用不到这样的功能。

「我的软体是 SaaS,所以是一种云端运算」:SaaS 是云端运算的一种服务模式,并不表示只要是 SaaS 就是云端运算。SaaS 这个名字比云端运算早了很多年出现。一般非云端运算的服务模式也可以是 SaaS。就像房子可以出租,并不表示出租的都是房子。

「我们建云端机房」「我们制造云端服务器」:机房有云端没云端,长得是一模一样的。服务器有云端没云端,长得也是一模一样的。差别是在于里面跑的软体是不是一个云端系统。如果说原意是:「我们建这个机房来放我们的云端丛集」「我们制造这些服务器来跑我们的云端系统」,那也无可厚非。但如果实际上没有这种情形就宣称是云端机房和云端服务器,那就只是赶搭顺风车作广告了。

「云端运算使用货柜型资料中心」:Google做云端运算,Google 也做了货柜型资料中心。这两件事情一点关係都没有。

好,那到底什么才是云端运算呢?

在网络上可以看到很多不同的解释。与其找了一堆不同的说法来比较,再设法判断谁比较正确,不如直接找权威的美国国家标准局 (NIST):

这份文件自起草后由各界发表评论,已经改到第十五版,在千锤百炼之后于

2009 年 10 月 7 日定案,至今未再改变。定义如下:

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of con gurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models. ( 下略,请自行参照原文。)

其中的三个 service model (SaaS, PaaS, IaaS) 和四个 deployment model (Private Cloud, Community Cloud, Public Cloud, Hybrid Cloud) 是很多人都耳熟能详的。但五个基本特徵 (On-demand self-service有需求时自助服务、Broad network access 普遍网络存取、Resource pooling 资源共享、Rapid elasticity 快速弹性佈署、Measured service 服务量测 ) 就很少有人在提了。为什么呢?

如果一个厂商只做了一个应用软件、或一台服务器、或一个货柜型资料中心、或只是把一个旧系统重新包装了一下、换了一个标签,他告诉你云端运算的正确定义的话,是不是就自己招认了他做的不是云端运算?那他怎么趁别人还搞不清楚的时候大捞一笔呢?怎么趁政府要发展这个重点产业的时候多要一些经费呢?

云端运算是一个新的运算模式,新的东西总是会变的。所以今天也许有一个准则可以判定一个东西是云端运算,而明天这个准则就不灵了。但不管云端运算怎么变,有一个很简单的原则可以判定一个东西不是云端运算:如果你把一份企划案上所有的「云端」两个字都改成「网络化」、「电子化」、「e化」、或「m化」,而整份企划案看起来还是一模一样的话,那它就不是一份云端运算的企划案。

这个原则在以后有更新的科技出现时还是通用的,只要把那些新的科技代入「云端」现在的地位就行了:如果你把一份企划案上所有的<新科技>都改成<前几年的新科技>,而整份企划案看起来还是一模一样的话,那它就不是一份<新科技>的企划案