搜狐首页 科技 小济公2

手机搜狐

SOHU.COM

云计算剖析:关于无服务器模式的一切

无服务器(Serverless)架构代表着云计算下一个合乎逻辑的发展阶段,能够有效强化可扩展性、提供更多安全选项,并有能力实现大量实时功能。

无服务器模式已经被广泛视为容器技术的继任者,虽然拥有诸多优势,但也同样不可能完全适合每一种案例。了解无服务器模式中的陷阱与弊端,将帮助大家更轻松准确地判断其是否适合实际需求。在今天的文章中,我们将通过多个技术层面对当前无服务器模式的成熟度进行分析。

首先需要注意的是如何使用“无服务器”这一词汇。

无服务器实际上是将“功能即服务(简称FaaS)”与“平台即服务(简称PaaS)”加以结合的产物。顾名思义,对于这两种云服务类型,用户并不清楚服务器究竟是如何组建及运作的。

举例来说,RDS与Beanstalk皆属于“服务器由AWS负责管理”的类型,在这里大家可以将服务器视为背景因素。DynamoDB与S3则在一定程度上归属于NoSQL以及配备有API的存储解决方案,这里大家同样无法直接接触任何服务器。不直接接触服务器意味着我们不需要对其进行配置、强化或者维护,这也就是“无”服务器的真实含义。无服务器平台与“事件”相协作。所谓事件,可以是隐藏在网站按钮后的操作、移动应用中的后端处理流程或者将图片上传至云端的瞬间所触发的存储服务功能。

性能

无服务器架构中的全部服务皆可扩展至几乎无限的水平,这意味着当某一事件触发某项功能,例如每秒触发1000次,则所有执行在下一秒中即可完成。在容器技术方面,大家需要配置并调整大量容器应用以处理这么多即时请求。

如此看来,无服务器似乎铁定要在性能层面中胜出了,对吧?但实际上,有时候包含您功能的无服务器容器并未运行,而需要另行启动。这意味着“冷”功能的另行启动会导致整体执行资源消耗量略有提升,希望让用户(或者组件)获得100%高速响应的朋友肯定不希望忍受这种妥协。

为了获得可预测的响应效果,大家需要配置一套容器平台。很明显,除了运行相关容器外,大家还必须承担由此带来的时间、复杂性与风险等成本,不禁让人犹豫这种作法是否值得。

成本可预测性

在使用容器平台或服务器时,需要按运行小时数,甚至特殊情况下需要按分钟或秒进行计费。即使您面对的是一组非常稳定且可预测的工作负载,且利用率始终在70%左右,这仍然会带来巨大的资源浪费。

另外,由于流量可能突然激增,因此大家总是需要对资源进行过度配置。一种解决选项在于尽可能提升利用率,这能有效降低成本,但却也给性能表现带来更高风险。

精选