无服务器和功能即服务 (FaaS) 通常彼此结合,但事实是,FaaS 实际上是无服务器的子集。 无服务器主要关注于任何服务类别,包括计算、存储、数据库、消息传递、API 网关等 ,服务器的配置、管理和计费对于最终用户是不可见的。 另一方面,FaaS 可能是无服务器架构中最核心的技术,它主要关注于事件驱动的计算范例 - 应用代码(即容器)只为了响应事件或请求才运行。
如果您希望经济有效地 将应用迁移到云,FaaS 无疑是一种高价值的工具。 以下是 FaaS 的一些优点:
以下最佳实践有助于更轻松、更高效地使用 FaaS:
由于 FaaS 能够轻松隔离和缩放事务,因此是高容量和困难的并行工作负载的理想之选。 它还可用于创建后端系统,或用于数据处理、格式转换、编码或数据汇总之类的活动。
FaaS 也是用于 Web 应用、后端、数据/流处理或为 IoT 设备创建在线聊天或后端的理想工具。 FaaS 可帮助管理和使用第三方服务。 例如,如果你正在考虑 Android 应用开发,则可采用 FaaS 方法,以确保成本可控。 由于仅当应用连接到云以执行批处理之类的特定功能时才收取费用,因此成本显著低于传统方法。
FaaS 还有助于显著提高计算性能。 例如,两名学生最近与 IBM 工程师一起探索如何 利用 IBM Cloud Functions 进行 Monte Carlo 模拟 (用于估算难以预测的特点事件未来结果的数学方法),估算库存的价格。 Monte Carlo 模拟被认为是重要的高性能计算工作负载。 Monte Carlo 与 IBM Cloud Functions 的组合支持该团队大规模地运行计算,使他们能够将关注点放在业务逻辑上。 通过使用 FaaS,该团队用 1000 个并发调用在大约 90 秒内完成了整个 Monte Carlo 模拟。 作为比较,在具有 4 个 CPU 核心的一台笔记本电脑上运行相同的流量,花了 247 分和几乎 100% 的 CPU 使用率。
要了解有关 FaaS 用例的更多示例,请查看“IBM Cloud Functions 提供的主要优点之回顾”。
FaaS、 平台即服务 (PaaS)、 容器和 虚拟机 (VM) 都在无服务器生态系统中发挥关键的作用。 由于 FaaS 是无服务器组合中最核心最重要的要素,因此值得探讨一下在以下主要属性方面,FaaS 与当今市场中常见的其他计算模型的不同之处:
Kubernetes 和 Knative 是 FaaS 背后"管道"的一种实现方式。 Kubernetes 是一种开源容器编排工具,对于管理云应用至关重要。 Knative 支持在 Kubernetes 集群中运行无服务器。
Knative 和 Kubernetes 的组合有助于充分发挥 Kubernetes 功能的优势,如监视、安全性、日志记录和认证,并且能够将这些优势与 Knative 的优点(如容器自动构建、完全可移植性以及在 多个混合环境中工作)结合起来。
这项技术的创建者认为,在构建云应用时,开发人员不必在无服务器和容器之间做出选择。 目标是利用无服务器的强大缩放和按需访问功能,增强容器的可用性和一致性。
视频“什么是 Knative?”提供了更多信息。
IBM Cloud Functions 是 IBM 的 FaaS 产品。 IBM 一直与金融、汽车、保险、制造等各行各业的客户合作,在 IBM Cloud Functions 上运行生产工作负载。 有超过一千万个日常活跃用户的 ESPN Fantasy Football 采用 IBM Cloud Functions 支持其统计仪表板;The Weather Underground(属于 The Weather Channel)使用 Cloud Functions 渲染其所有的雷达地图。 博客帖子“IBM Cloud Functions 提供的主要优点之回顾”中描述了这些用例以及其他用例。
IBM Cloud Functions 基于 Apache OpenWhisk。 OpenWhisk 的核心是基于 Apache Foundation 准则的一个开源项目,因此任何人都可以将其操作代码作为构建块贡献给代码库。 这意味着 OpenWhisk 在不断发展壮大。 OpenWhisk 有助于加速应用开发,使您能够快速构建具有操作序列的应用。 FaaS 产品还在云功能性能详细信息方面提供更出色的可视性。
IBM Cloud Functions 还能够在"事件-触发器-操作"工作流程中访问 IBM Watson API 等认知服务。 而且您只需为实际使用的资源付费。 仅当您在 Cloud Functions 上运行更多负载时,成本才会增加 - 计费基于执行功能所需的时间和内存。
通过 IBM Cloud Options 课程(如“部署功能即服务和 IBM Cloud Functions”),以及基于 IBM Cloud 专业开发人员角色的培训和认证中包含的各种其他课程,培养技能。
观看这个视频,了解有关 IBM Cloud Functions 如何工作的更多信息 :