对PaaS未能快速发展的三个猜想

云计算 PaaS
2009 年,我发现了谷歌 App Engine,并很快爱上了这一服务。这一服务承诺,任何软件开发者都能开发面向任何用户,在任何时间、任何地点都可以使用的应用,同时不必担心服务器配置、数据库设置、操作系统版本、信息安全漏洞、负载平衡,或是规模如何扩大的问题。这意味着,应用将可以自动扩大规模!我们所要做的只是撰写代码,而 App Engine 将为我们完成其余一切工作。

2009 年,我发现了谷歌 App Engine,并很快爱上了这一服务。这一服务承诺,任何软件开发者都能开发面向任何用户,在任何时间、任何地点都可以使用的应用,同时不必担心服务器配置、数据库设置、操作系统版本、信息安全漏洞、负载平衡,或是规模如何扩大的问题。这意味着,应用将可以自动扩大规模!我们所要做的只是撰写代码,而 App Engine 将为我们完成其余一切工作。

[[131911]]

在 2009 年时我就已经看到,到 2015 年,很大一部分互联网代码将运行在类似的平台上。谁会想要纠结配置和运营问题?系统管理员将可以从复杂的工作中被解放出来。最终,我们将可以自由编写代码,而不必担心如何去执行,以及通过什么平台去执行。我们不必再关注规模,并可以从复杂的运营工作中被解放出来。我们的未来一片光明,不必再关注如何配置等细节。

然而,事情与我们想象中并不完全一样。

为什么会这样?

目前的现实并不是“一次开发,在任何地方运行”。AppEngine 仍在履行,并将继续履行最初的承诺。(这是我仍在业余项目中使用 App Engine 的原因。)然而在这一过程中,你会遇到种种问题,例如难以解释的内存泄漏,或是漫长的等待时间。正如一名来自谷歌的朋友所说:“App Engine 非常有趣。该服务面向所有用户的运行速度都是同样的缓慢,而无论用户有多少。”

市面上还有许多其他平台即服务(PaaS)提供商。例如,云计算市场领先者亚马逊也提供了 PaaS 产品,即 Elastic Beanstalk。我也曾频繁使用 Heroku,但这款产品同样非常糟糕。在处理异步任务和自动负载平衡等方面,Heroku 不如 App Engine,不过在部署和 PostgreSQL 数据库等方面要好。然而,Heroku 并未提供广泛的应用程序接口(API)。通过谷歌,你实际上能获得比其他地方更好的 API。这就是你通过谷歌平台去运行代码的优势和劣势。

不过目前,谷歌自身也不像 2009 年时一样重视这一领域。2012 年时,由于对 App Engine 状况的不满,谷歌推出谷歌 Compute Engine,即亚马逊 AWS 服务的直接竞争对手。毫无疑问,相对于采购设备并搭建自己的服务,利用这样的服务将更方便。不过,从易用性、灵活性和部署时间来看,这些服务相对于 PaaS 服务似乎是一种倒退。那么,为何 PaaS 服务未能征服所有市场?

PaaS 服务取得过成功。例如,Snapchat就运行在 App Engine 之上,可汗学院也是如此。Genius和ProductHunt则基于 Heroku。这两大平台也为其他许多创业公司和大公司提供了服务。不过,如果 PaaS 能取得更大的成功,那么谷歌原本没有必要推出 Compute Engine,Docker 就不会成为新的热点,而 DevOps 也不会像现在一样知名。

那么,为何仍有许多人放弃 PaaS,转而开发自己的 AWS 和 Compute Engine 实例?为何 App Engine、Heroku 和 Elastic Beanstalk 未能征服世界?良好的控制性是否真的很重要?

我猜测,原因包括 3 个方面:成本、对开发者的锁定,以及文化。

App Engine 的价格会经常性下调,但这样的调价过于频繁,令人迷惑。单一的实例,即一个简单的虚拟机,成本要超过每天 1 美元,这还不计算存储或带宽成本。Heroku的情况也是类似。通过购买及运行自己的服务器,你能获得更好的性价比。尽管这时你会遇到更多的麻烦,导致开发时间被延长,但转而使用 PaaS 带来的好处对许多人来说并没有足够的价值。

随后是被锁定的问题。一旦你在 App Engine 的订制 API 之上开发了应用,你将需要专注于这一平台。你没有一种较好的方式回退,并转而使用另一家公司的平台。这种对开发者的锁定在其他 PaaS 服务中并不是很明显,但仍然存在。基础设施即服务(IaaS)领域有着OpenStack和Docker等通用标准,而 PaaS 领域没有这样的事实标准。

第三个原因,也是被认为最重要的一点原因在于文化。企业并不希望放弃对自主系统的控制,即使这样的控制权将导致很严重的复杂性。可以理解,系统管理员不希望丢掉自己的工作。

不过,这 3 点原因都是暂时性的。成本正在持续下降,文化在不断改变。有迹象表明,可互操作的 PaaS 服务和相应标准正在缓慢发展。(你可以认为,Docker 就是这一趋势下的产物。)

在电力刚刚出现的时代,所有工厂都使用自己的发电机,但随后都转向了公共的电网。IaaS 相当于所有公司都从电网中获得电力,但随后通过自主的变压器将电力转换为自己所需的形式。我认为,PaaS 服务仍将继续发展。在这样的世界里,在代码运行过程中,开发者不必了解或关注服务器的问题。这样的趋势只是比我想象中略微缓慢。
 

责任编辑:Ophira 来源: TechCrunch中国
相关推荐

2015-09-06 10:29:20

PaaS云计算开源

2020-12-28 17:03:09

区块链比特币金融

2022-04-22 14:16:15

元宇宙虚拟现实电商

2011-07-07 17:08:55

PHP

2011-08-22 14:21:00

浏览器

2023-04-26 11:14:11

IT领导者远程工作

2023-12-08 16:34:21

2019-11-27 10:17:23

区块链分布式比特币

2023-02-13 08:45:26

2022-04-20 20:31:19

元宇宙

2012-10-25 10:16:10

2012-10-29 09:38:03

2020-06-11 09:00:27

SDN网络架构网络

2014-03-17 11:51:31

AndroidWearable SD

2023-07-27 09:01:32

开源

2022-05-25 10:49:02

云存储云计算

2018-01-26 14:22:31

程序员发展连接

2018-08-14 11:51:05

大数据物联网分布式

2021-03-08 09:53:34

工业机器人投资发展机器人

2021-09-14 09:39:06

设计系统框架设计原则
点赞
收藏

51CTO技术栈公众号