当前位置: 首页 > 科技观察

Serverless应用程序决策指南

时间:2023-03-15 13:57:11 科技观察

译者|崔浩策划|云召在Serverless的应用中会面临很多棘手的问题。本文提供了一个实用指南,告诉您如何采用Serverless架构来解决Serverless架构中的实际挑战。哪些合适?并讨论无服务器如何实现响应式事件驱动架构。本文未提及来自云提供商的无服务器服务,仅在示例中提及(AWS参考)。无服务器计算模型已经进入了常规开发周期的“早期采用者”阶段,并正在迅速进入“早期大众”阶段。尽管Serverless的发展速度惊人,但企业在采用Serverless并将其应用于技术和架构以构建高效的IT生态系统方面缺乏战略实践。本文试图提供有关如何使用无服务器架构的简化决策指南,但不提供有关FaaS、BaaS以及云服务提供商(CSP)提供的其他服务(例如无服务器数据库、API网关)的决策建议,或边缘服务。1.使用无服务器的候选人的特征在深入研究无服务器采用指南之前,了解使用无服务器的候选人的特征很重要。下表提供了可轻松集成到无服务器中的应用程序或工作负载模型的技术不可知特征。这些特征是更复杂的无服务器模式、解决方案和架构。它们可以组合使用,并不排斥。2.Serverless的候选架构以下一些架构更适合跨应用、数据、集成、人工智能、物联网等采用Serverless应用响应式系统基于领域驱动设计的微服务Strangler转换数据大数据包括SQL和NoSQL数据库,例如文档数据库、列式数据库、键值、RDBMS、对象存储数据处理流处理CDC批处理ETL集成RESTAPI事件驱动通知消息事件流工作流处理HTTP/HTTP(s)BPM工作流记录转码AI/机器学习物联网事件处理区块链处理安全和ComplianceIAM、IdentityFederationKey、证书管理、RBAC、SecretVault、HSM防火墙、DDoS监管数据合规性IoT设备安全DevOpsCI/CD可观察性HealthDashboard、成本管理、账户管理IAC3.ServerlessFeatureExamples无服务器特性的例子有listed下面,当然列表的内容还在扩充中。对内部和外部服务触发的事件采取行动。根据特定时间表(定期)安排备份和日志分析等任务。为现有服务或应用程序实施API管理。执行应用程序逻辑以响应数据库更改。调用可自动扩展的API后端服务。图像处理结合视觉识别服务。基于对象的流、图像和视频处理。执行边缘分析以响应传感器输入(IoT)。使用新的功能逻辑(例如发送通知、标记数据、添加天气数据)扩展和增强工作流程和相关数据。充当不同服务之间的粘合剂,以创建强大的管道。微服务的实施,以及并行计算或数据处理。应用程序需要基于事件/基于异步的通信来实现用例。轮询用例,pub-sub的实现。4.Severless不适用的情况另外,在某些情况下,Serverless可能不适合以下情况:需要高性能计算(HPC)和执行组件的工作负载。执行时间较长,需要Master/Worker节点集群处理的进程。需要控制底层基础设施组件(例如物理插槽或内核)的工作负载,例如,需要绑定到每个内核、每个插槽或每个VM许可证的工作负载。在受监管行业中运营的组织在非多租户环境中运行应用程序时需要使用专用基础设施。需要使用预测或ML复杂算法以及细粒度自动缩放规则的工作负载。长时间运行的任务。复杂(不可分离)或需要很长时间初始化的函数。需要有状态会话来实现用例。涉及到使用DB进行事务管理的功能,有快速扩展的需求。数据库可能成为扩展的瓶颈。合规性在客户端强制执行(例如,如果合规性需要扫描底层基础设施,因为在无服务器中没有特定的基础设施)。实施要求特定于运行时版本(由于我们无法控制无服务器运行时并且更新是由供应商驱动的)。无服务器的应用程序架构依赖于供应商(供应商锁定的可能性,尤其是涉及身份验证、扩展、监控和配置管理等平台功能时)。当处理的数据本质上是敏感数据时,多租户不是首选。5.简化的Serverless采用决策指导框架基于特性、架构类型和用例,一个简单的Serverless采用决策指导框架如下所示。CSP存在用于无服务器实现的各种服务类型,主要是FaaS/BaaS和无服务器容器平台。6.无服务器平台的主要特性下面列出了无服务器平台的一些主要特性。简化的编程模型,因为整个应用程序可以描述为FaaS和BaaS的事件触发器,并且整个“应用程序”可以由更小的无服务器构建块组成。使用短暂的、单一用途的RESTful函数专注于前端应用程序逻辑简单(JSON)输入/输出通过环境变量进行本地化配置多语言-选择适合您需要的编程语言;组合用不同语言编写的函数。事件驱动-多种调用模式(通过触发器/消息自动执行,API调用手动执行)简化的数据和服务集成-“开箱即用”存储(数据库、对象存储等)消息传递、API管理和其他提供商服务“开箱即用”集成到“NoOps”——无服务器平台管理操作方面,例如供应、部署、自动缩放配置、可用性等。平台提供的操作支持服务——“内置”支持日志记录和监控、身份和访问管理等。只需为您使用的计算付费——定价基于功能执行时间或请求数量。7.FaaS/BaaS与无服务器平台的简单决策指南了解FaaS/BaaS/无服务器平台之间的选择对于CSP的BaaS服务,使用可以运行容器的Serverless平台至关重要。下面提供了一个简单的决策指南。9.结论尽管Serverless计算正在迅速发展,带来了新服务和功能通常超出当前应用程序的范围,组织可能在其无服务器采用策略中面临重大挑战。本文试图提供可能有助于加速无服务器采用的简化指南。崔浩,社区编辑,高级架构师,18年软件开发和架构经验,10年分布式架构经验。原文链接:https://dzone.com/articles/decision-guidance-for-serverless-adoption