容器 vs. 无服务器: "最佳抽象层"花落谁家?

服务器
容器是指将软件抽象层放在操作系统之上、应用代码层之下,这一理念在市场上发展迅猛、势如破竹。容器技术围绕Kubernetes作为行业标准实施了合并,这对增强云中工作负载的可移植性大有裨益。

企业思考未来要采用哪种计算基础架构,因而容器与无服务器之争成为了IT领域最热门的话题。

引言

容器是指将软件抽象层放在操作系统之上、应用代码层之下,这一理念在市场上发展迅猛、势如破竹。容器技术围绕Kubernetes作为行业标准实施了合并,这对增强云中工作负载的可移植性大有裨益。很多IT专家认为容器将成为企业计算领域的主导力量。

但在2017年,无服务器技术(更准确地说是“函数即服务[FaaS]”)的人气飙升程度不亚于容器。“无服务器”是指将计算基础架构从用户完全抽离;开发人员通过无服务器接口上传代码段,代码段在后台执行,无需调配和管理任何服务器、容器或其他计算单元。

容器还是无服务器?你的选择是什么?

其实容器与无服务器之间存在重叠。容器经常用于在公有云中支持无服务器前端,而企业也希望在防火墙后面效仿此设置。

Concur的首席软件工程师Dale Ragan说:“对开发人员来说,无服务器恰好是更新数据库方案的最简单方式,无需围绕架构添加大量繁琐内容。”但他对无服务器将超越环境中的其他接口这一观点表示怀疑。

[[217536]]

有些企业的IT专业人员预言,长期来看,无服务器技术将走得更远,超越初始的容器阶段,成为更受青睐的企业应用部署方式。

美国的一家高等教育软件制造商Ellucian的高级DevOps总监Jason Shawn说:“它(无服务器)非常适合微服务架构的概念。”

支持者认为,无服务器函数就是将应用分解为最小的组件(如微服务)所得到的结果。

“你[使用无服务器]构建,可以实现不可思议的扩展性,因为你无需在给定机器上维护状态。”Shawn说。

无服务器是否会成为“第二个PaaS”?

无服务器技术仅适用于具有间歇性工作负载需求的应用。例如,Amazon Web Services (AWS) Lambda的函数最多可以运行五分钟。但是,有些企业的IT专业人员预计在未来,长时间运行的应用可以使用类似于Lambda的平台,并且无服务器最终将包括剥离基础架构管理(也就是我们已知的“平台即服务[PaaS]”)的所有公有云服务。

纽约时报集团首席技术官Nick Rockwell认为:“在大多数情况下,容器有些无关紧要,它的优势并不明显。在我看来,容器就是这个行业的一个错误。”

Rockwell的团队试用过Google Kubernetes Engine (GKE),这是一种容器即服务(CaaS)产品;但后来他们转而使用Google App Engine(行业中最早的PaaS产品之一)来提高开发人员的工作效率。一些处于前沿的DevOps团队已经不再青睐PaaS方案,因为这类方案限制了开发人员对于底层基础架构的选择,但是Rockwell说他认为这些限制实际上是件好事。

“你需要接受平台条件的约束,这意味着你别无选择,只能专注于编码应用的重要部分。”他说。

IDC的研究经理Gary Chen表示,无服务器是PaaS的一种形式,但FaaS方案实际上比之前的PaaS限制性更小,代表了PaaS未来的发展趋势。

Concur的Ragan表示,PaaS(无论基于函数与否)的问题在于其依赖关系。

“虽然Heroku [PaaS]在这些方面表现不错,但你仍会遇到主机本身方面的依赖关系问题,不一定是你部署的代码有问题。”他说,“这也是我们更倾向于容器的部分原因,因为构建一次镜像即可在各个服务器中使用,无需考虑更多,这种体验非常不错。”

IT行业的惯性会阻碍无服务器的快速发展

有些业界观察家认为,只要大型机没有退出舞台,市场便不会以压倒性的方式转向新产品,尤其是像无服务器这样的颠覆性产品。与往常一样,如果被问:“选择容器、无服务器、PaaS,还是其他产品”,大多数IT专业人员会回答说:“具体情况具体分析。”

如果是大型企业,选择无服务器也不是不可能,但容器可让您更灵活地选择云提供商、托管服务和自管理环境。

美国加利福尼亚州帕洛阿尔托的一家业务采购软件公司的John Mitchell表示,对于重量级数据库等大规模的有状态应用,无服务器的成本实际上比容器要高,因为此类应用需要持续处理数据并持续调用函数。

“如果说过去20年我们发现了什么,那就是IT生态系统没有变得越来越简单、越来越小。”Mitchell说道,“实际上,它变得越来越多样化,我认为即使是很强大的函数也不能改变这种趋势。”

IBM的工程师Sanjeev Sharma表示,在IBM,有兴趣对比容器与无服务器技术的人越来越多。他说,IT运维人员无论使用哪个技术来更轻松完成管理工作,都有很长的路要走。与FaaS相比,容器的概念更易于被主流IT界接受。

“毕竟很多人都不能正确地管理虚拟机或云,我很难相信他们能够驾驭这两种技术。”Sharma说道,“容器和无服务器可让运行的实例数量增加好几个量级,如果他们不能理顺企业的运维或管理工作以处理如此多的实例,我不知道他们如何能运用好这两项技术。”

相对于无服务器,容器的另一项优势是,在Kubernetes互操作性方面容器已经实现了跨云标准,而无服务器社区仍未制定出一个统一的开源方案。很多相互竞争的开源FaaS项目承诺在云之间实现类似于Kubernetes的可移植性,但是没有一个能够真正做到。

在过去几年,软件容器已经成为一项重要事物。Gartner数据显示,到2016年年底,有25%的工作负载在部署时采用了容器。容器的广泛采用主要受到开发人员的推动,但仍然面临一些挑战:如何运维和管理大规模地安全运行这些容器的环境。

在过去两年内,行业从PaaS转向了CaaS而不是FaaS。PaaS中的领军产品Pivotal Cloud Foundry 2.0提供了Cloud Foundry Container Runtime,同时Pivotal管理层表示,他们打算就如何针对不同应用使用三种接口(无服务器、PaaS和容器)向客户提供建议。

鹿死谁手仍未知,但无服务器势头迅猛

SAP Ariba的Mitchell认为,大多数现代企业应用的开发是由“泡沫”组成的(他说的“泡沫(froth)”,即调用底层服务及其他少量内容的代码层),而这尤其适合无服务器平台。

Mitchell并没有预测这是否会一直是企业工作负载的主流,但其他人对此持肯定意见。

Fong说,无服务器平台在后台非常复杂,但用户无需担心这一点,也无需担心应用的内置恢复能力。无服务器环境中的每一个函数都是独立的,丢失一个函数不会影响其他函数。

责任编辑:武晓燕 来源: Pivotal
相关推荐

2018-02-24 10:15:36

无服务器容器云计算

2020-11-24 13:47:56

服务器

2021-12-23 19:32:19

无服务器容器服务器

2019-07-09 08:55:37

软件技术云计算

2009-06-15 17:05:02

IP通信

2016-01-20 17:42:45

全时

2009-03-01 21:13:27

iPhone苹果3G

2011-05-12 15:06:25

VMware DRS微软SCVMM

2020-10-10 07:00:00

无服务器计算容器

2021-12-21 14:03:49

稳定币加密货币货币

2020-09-17 07:00:00

DevOps无服务器技术运维

2017-08-18 08:50:40

Azure服务器容器化

2024-01-19 15:13:18

无服务器应用容器云计算

2022-06-06 15:49:24

容器无服务器docker

2019-04-30 10:27:46

无服务器云计算安全

2018-05-03 09:22:13

容器无服务器

2020-05-26 14:56:58

VM容器无服务器

2021-01-13 16:04:07

网络On-Prem托管

2022-08-04 14:54:50

APTDNFYUM

2022-01-05 09:28:31

无服务器计算服务器应用程序
点赞
收藏

51CTO技术栈公众号