Alb*_*rto 11 azure azure-functions azure-container-instances
考虑到 Azure Functions 和 Azure Container Instances 都提供了执行一次性任务的可能性并且它们按使用量计费,我什么时候更喜欢 Azure Functions?
此外,阅读此Microsoft 学习模块:
无服务器计算可被视为功能即服务 (FaaS),或托管在云平台上的微服务。
Azure Functions 是一个允许您运行纯代码(而不是容器)的平台。Azure Functions 的优势在于它支持的一组丰富的绑定(输入和输出绑定)。如果您想在发生某些事情时执行一段代码(例如,将 blob 添加到存储帐户、触发计时器等),那么我肯定会选择 Azure Functions。
如果您想在短时间内运行一些基于容器的工作负载,并且您没有适当的协调器(如 Azure Kubernetes 服务) - Azure 容器实例是有意义的。
如果您想简化应用程序开发模型,其中应用程序架构具有更细粒度的微服务,以便通常将各种功能简化为单个功能,那么可以考虑使用 Azure 函数。
如果解决方案需要使用基于事件触发器的用例对现有 azure 应用程序进行一些扩展,则 azure 函数可能是更好的选择。这里,应根据需要仅针对特定事件或触发器调用特定代码(函数),并且函数实例按需创建和销毁(按需计算 - 函数即服务(FaaS))。
更常见的是,事件驱动架构出现在 IoT 中,通常您可以定义导致执行 Azure 函数的特定触发器。因此,Azure功能在物联网生态系统中也占有一席之地。
如果解决方案具有快速爆发和扩展的要求,则可以使用容器实例,而如果要求是可预测的扩展,则可以使用虚拟机。
Azure 函数避免了额外资源(VM)的分配,并且仅在函数处理工作时才考虑成本。在这里,我们不需要关心基础设施,例如代码将在哪里执行、服务器配置、内存等。对于 ACI,成本是每秒的,根据容器运行的时间计算 - CaaS(Container As一项服务)。
ACI 能够快速生成一个容器来执行操作并在完成后将其删除,而成本仅为几个小时的使用时间,而不是成本高昂的专用虚拟机。ACI 使我们能够在不需要服务发现、网格和协调功能等编排功能的场景中避免依赖 Kubernetes 等编排器来运行容器。
关键区别在于,对于 Azure 函数,函数是工作单元,而在容器实例中,整个容器包含工作单元。因此,Azure 函数根据事件触发器启动和结束,而容器中的微服务应始终执行。
处理/执行时间也起着至关重要的作用,如果事件处理函数执行的处理时间为 10 分钟或更长,则最好托管在 VM 中,因为函数可配置的最大超时为 10 分钟。
有一些典型的解决方案利用这两种功能,以便触发 Azure 功能以进行最少的处理/决策,然后可以调用容器实例来进行特定的突发处理/完整处理。
此外,ACI 与 AKS 一起形成了强大的微服务部署模型,其中 AKS 可用于微服务的典型部署,而 ACI 可用于处理突发工作负载,从而减少扩展管理方面的挑战并确保每秒使用成本模型的有效利用。
| 归档时间: |
|
| 查看次数: |
3856 次 |
| 最近记录: |