|
|
|
|
移动端

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

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

作者:Beth Pariseau来源:Pivotal|2018-01-18 11:11

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


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

引言

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

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

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

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

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

有些企业的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说,无服务器平台在后台非常复杂,但用户无需担心这一点,也无需担心应用的内置恢复能力。无服务器环境中的每一个函数都是独立的,丢失一个函数不会影响其他函数。

【编辑推荐】

  1. 容器的优势渗透进基于软件的网络
  2. 在阿里“救了八年火”的程序猿讲述大型项目架构演进过程
  3. 容器之后的下一个明星,关于无服务器(Serverless)架构你要搞懂的8件事
  4. 看了本文,再也不愁何时实施无服务器,何时实施容器了!
  5. 即时通信服务器架构的一些思考
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

视频课程+更多

热门职位+更多

读 书 +更多

SQL实用简明教程(第2版)

SQL(结构化查询语言)是数据库系统的通用语言,利用它可以用几乎同样的语句在不同的数据库系统上执行同样的操作,在数据库系统的开发中有着...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊