查看原文
其他

Serverless VS 容器:Serverless 终将胜出 !

2017-11-15 David Linthicum 云头条

serverless将主导云计算行业,不过容器也会影响云。



你猜怎么着?serverless计算并不是真的无服务器,容器的核心其实也不是包含(contain),而是抽取(abstract)。密切跟踪云计算领域的术语含义称得上是一项全职工作,为此经常有人来向我讨教。


最近的热门话题是serverless会慢慢地超过容器;更重要的是,一些人想知道应该如何准备充分利用这个转变。


首先,容器不会销声匿迹。的确,我认为容器市场会在2018年和2019年迎来大幅增长。我要说的是,与serverless云计算相比,容器可能不得不退居二线。


其次,容器比serverless问世更早,这项技术是有其历史的。今天的Docker容器基于半途退出的容器标准。然而,云端容器有点不一样。它们提供了目前的公共云提供商无法提供的可移植性,而且提供了一种相当完善的分布式开发平台。


最后,serverless和容器解决的问题全然不同。在许多使用场合下,很难对两者作一番比较。比如说,考虑到很难重构或重写应用程序,让其成为一组serverless函数,serverless更适用于全新的应用程序。容器可以对现有的应用程序进行容器化处理,尽管我仍然认为你也需要对那些应用程序进行大规模的重构,但是重构工作量不像serverless那么多。


serverless vs容器关乎简易性和成本效益


为什么我认为serverless会占主导地位……OK,稍占主导地位?只要看看广大开发人员过去的采用模式,毕竟他们才是这方面的最终决定者。有几个方面需要考虑:


  • 开发人员不是基础设施人员:公共云计算的使用已迫使许多开发人员清楚地了解自己需要什么样的内存、CPU及其他平台容量。虽然开发人员并不安装机架服务器,也从来没有这么干过,但现在他们在做之前留给硬件人员去做的决定。

    公共云确实提供了这个便利:将工作负载扔给开发人员的那些人可以自行快速配置资源。开发人员常常低估或高估了自己需要的硬件资源,无论在哪种情况下,都需要为公共云中不会使用的虚拟硬件埋单,或者由于资源缺乏,眼睁睁看着你的应用程序无法正常运行。

    另一方面,serverless让开发人员不必操心虚拟硬件的配置,也不必担心基础设施方面的开支过度或过少。无论是微软的Functions还是AWS的Lambda,serverless云计算让开发人员摆脱了虚拟服务器这个概念。相反,他们只是运行使用公共云serverless云计算工具构建的serverless函数,他们需要的服务器会自动分配,而且自动发布。

  • 公共云提供商并没有发明容器:另一个因素是,容器方面真正的创新者是Docker和CoreOS,而不是两大公共云提供商:AWS和微软。虽然AWS和微软都的确采用了Docker,甚至来自Docker、CoreOS和谷歌(Kubernetes)的容器技术,但要求公共云里面存在这项技术的却是公共云用户,他们推动了目前现有的技术创新。在此情形下,谷歌、微软和AWS提供了容器开发和部署服务。

    所以我们要处理的是,NIH(非此处发明)遇上大型公共云提供商,这些提供商可能会从serverless计算赚到更多的钱,它们认为就创新而言serverless远胜过容器。这就是为什么大型公共云提供商向你吆喝推销serverless云计算的可能性比吆喝推销容器来得大。然而,这些提供商可能以同等数量的销售和营销资金来同时支持两者。(这是局外人的观点。)

  • 最后,serverless似乎更具成本效益:这是serverless超过容器的真正原因。从个人经验来看,使用基于云的容器技术或本地容器技术构建全新应用程序的成本比使用serverless工具构建同样应用程序的成本要高得多。


开发人员没必要操心这个:确定虚拟计算、存储和数据库资源的准确数量,以支持工作负载。这项工作会自动为他们完成,而且容易了许多。此外,由于替开发人员创建和停用资源,所以往往更具成本效益,不过成本效益到底有多大则因人而异。



Docker的这个图表明了容器的可移植性。


severless与容器最终关乎“是否适合”


不过等一下,做出这些决定时要考虑到一些常识。虽然serverless适用于可以从头设计、构建和部署的全新应用程序,但是试图让serverless适用于传统或遗留的应用程序就无异于方枘圆凿,会显得格格不入。


别以为公共云提供商会袖手旁观,眼睁睁看着容器在这两种技术当中占有遗留迁移市场的大多数份额,任由自己的市场份额萎缩。它们已经在为这些工具提供语言、存储和数据支持,微软和AWS都很快会进入第三代。


说到满足可移植性要求,容器是不二的选择。一旦你构建了在容器里面运行的应用程序,应该能够将该容器移到任何地方,包括本地平台和基于云的平台。而如今,根本无法从一个品牌的serverless工具移植到其他品牌的serverless工具。


然而,企业通常高估了对可移植性的需求。虽然企业界在过去几年要求云提供商确保可移植性,但它们现在明白,构建应用程序以确保可移植性(包括使用容器)的成本可能超过好处,因为大多数的企业工作负载仍然留在构建它们所用的平台上。


如果企业考虑的侧重点由可移植性需求转向技术本身,serverless通常会因本文概述的几个原因而胜出。这倒不是说容器会销声匿迹,容器只是在2018年会落后于serverless。别说我没有提醒过你。


相关阅读:

中高端IT圈人群,欢迎加入!

赏金制:欢迎来爆料!长期有效!

Netflix 在运营 Serverless 平台方面的心得

Serverless Computing 是公共云的下一站吗?



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存