博客 | 首席技术官办公室

你可以忽略的关于无服务器的三个常见观念

Lori MacVittie 缩略图
洛里·麦克维蒂
2019 年 1 月 3 日发布

Serverless 是云计算领域的新兴宠儿。 至少三分之一(33%)的组织在过去一年内部署了无服务器应用程序。 (来源: Digital Ocean 2018 年第二季度开发者调查)在CNCF 2018 调查的受访者中,38% 表示目前使用无服务器。 另有 26% 的人计划在未来 12 个月内使用该技术。

这种新兴的云计算选项不仅发展迅速,而且经常被误解,并被赋予几乎超自然的力量,可以降低成本,加快价值实现时间,并让您在床上享用早餐。 

如果这还不足以让您感到困惑的话,那么还有函数即服务 (FaaS) 与无服务器的混合。 两者并不相同,这导致了人们对典型企业如何利用这项新技术的其他误解。

所以今天我们要破除过去六个月里我从客户和会议参与者那里反复听到的三个常见误区。 因为在您弄清楚它是否值得您花时间去探索之前,您必须先了解这项技术是什么(以及不是什么)。

首先我们来理清一下无服务器和 FaaS 之间的区别。 

误解: 无服务器=== FaaS

Serverless 是一个系统。 一个平台。 一个框架。 它最好被描述为一个即时的、弹性的执行环境。 无服务器寻求通过在某种隔离环境中按需执行某些操作来消除运营开销和摩擦。 该隔离环境通常是一个容器,但也存在使用虚拟机和 Web Assembly 的产品。 为了简洁起见,我将使用“容器”来广泛地表示这三个。

无服务器是事件驱动的。 这意味着配置和处理是由某种触发器启动的,例如 API 请求的到达或时钟到达下午 2:07。 它可以是自动生成的事件,也可以是交互式事件,例如按下 Web 应用程序中表单上的按钮。在无服务器模型中,事件会启动“容器”中存在的某些操作的执行。 

NETOPS 注意事项: F5 iRule精通的读者可以将无服务器事件与 iRule 事件联系起来,例如 “HTTP_REQUEST”和“HTTP_RESPONSE”。  模型非常相似——当事件发生时,执行一些代码。 抱歉,大多数无服务器框架不支持 TCL,但它们通常支持 node.js 和 Python。 

“容器”通常在请求时从存储库加载(冷启动)或可能已经在等待(热启动)。 该“容器”中存在的任何内容都会执行并向触发它运行的系统返回响应。

无服务器背后的商业模型通常基于仅为“容器”执行时消耗的资源付费。 操作模型就是从图中删除有关操作环境的一切,让人们担心构建“某些东西”。

这就是无服务器。 函数即服务是无服务器的一种特定用法,它将“某物”定义为“函数”。 

FaaS 让我们能够将从微服务开始的应用分解到其最终结论——功能。

了解无服务器和函数即服务之间的区别对于揭穿我们的下一个神话至关重要。

误解: 需要重构 

由于 FaaS 和 Serverless 的混合,市场上许多人误以为,为了利用 Serverless,你必须将应用重构为其复合函数。

无服务器不需要您重构应用,或在功能级别设计新的应用程序。 Serverless 可以轻松地执行任何类型的应用、进程、守护进程或功能的“容器”。 只要被打包到“容器”里并且可以被调用,它就可以在无服务器上下文中执行。

我还看到了利用无服务器来扩展(现代化)现有应用架构的成功实现。 可以在无服务器模型中实现注册、订单履行和其他非关键路径流程的批处理和带外处理,而无需完全重构传统应用。 已经利用外部、基于 API 的集成来实现此类目的的应用会发现无服务器更容易适应。 已建立的基于客户端-服务器的应用几乎肯定需要进行一些修改才能利用无服务器的优势,但这并不是完全重构所需的广泛工作。 

仅偶尔执行的流程(基于偶尔或不可预测发生的特定事件)也非常适合无服务器。 定期启动“容器”来执行某些操作比一直保持“容器”运行更具成本效益。 对于公共和本地无服务器来说都是如此。

这就引出了我们的第三个误区,即重点关注地点。

误解: 无服务器不存在于本地

我听到过来自四面八方的 IT 人士和专家都提出过这种说法。 这显然是错误的,就如同认为不能在本地运行“云”一样。 你当然可以,而且根据《开发者国家开发者经济学状况》的统计,相当大比例的组织都是这样做的。

规模更大、使用更频繁的应用也可以从非常高效的扩展中受益,只需要为高负载下应用的特定部分支付额外资源,并且更容易识别和优化这些资源。 大型应用的这一优势可能是我们看到 17% 的当前无服务器计算采用者在自己的数据中心运行解决方案的主要原因。

本地无服务器实施的成本效率提升不仅限于可扩展性。 重新使用相同资源并在偶尔使用的应用之间共享它们的能力并非微不足道。 无服务器还利用其核心的事件驱动特性,为应用和操作功能添加增值功能的能力。 如果不了解无服务器的好处远远不止消除开发人员日常生活中的操作摩擦,就不应该轻易否定其在本地的使用。 这无疑是一种福音,但这并不是唯一的好处,当然也不是组织在本地尝试无服务器的唯一原因。  

因此,现实情况是,Serverless 可以在本地实现,而且正在本地实现。 上述 CNCF 调查深入探讨了最流行的“可安装”无服务器平台:

还有更多,而且随着这项技术的发展,肯定还会有更多。

随着组织不断修改、试验和评估该技术在新的云原生应用和现代化工作中的使用情况,无服务器和函数即服务都享受着令人难以置信的采用率。 认识并忽略常见的误解是决定该技术是否适合您组织中的应用的重要第一步。