阿里云函数计算 - 事件驱动的serverless计算平台

本文涉及的产品
简介: 阿里云函数计算,是一种事件驱动的无服务器计算服务。用户只需要编写并上传代码,阿里云函数计算会以可靠的方式执行代码,并随访问压力平滑伸缩。

从2006年AWS发布的第一个云服务S3开始,存储,计算等IT基础设施的能力纷纷被以服务的方式提供给用户。过去十年,云服务深刻的改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进,新的服务形态不断涌现,无服务器计算(serverless computing)就是其中之一。阿里云函数计算,是一种事件驱动的无服务器计算服务。用户只需要编写并上传代码,阿里云函数计算会以可靠的方式执行代码,并随访问压力平滑伸缩。用户可以将代码关联多种事件源,由事件触发,也可通过http请求的方式直接调用。

以开发一款移动应用后端系统为例,采用传统的方式,用户需要:

  1. 合理估计业务量,购买服务器(物理机或者虚拟机),安装配置系统、网络以及依赖的软件栈。
  • 考虑容错、扩容缩容、资源复用、削峰填谷等方面的问题。
  • 搭建完善的监控报警服务。
  • 部署和维护系统。

对用户而言,采用这样的方式构建系统,大量的精力都花在了处理服务器相关的无差异化的问题上,无法聚焦打造业务上的核心竞争力。而采用serverless的模式开发,用户只需要专注于业务逻辑的实现;服务器的容量规划、部署维护、容错、扩展等方面的问题由计算服务提供商来解决。下图是使用函数计算实现一个图片服务的示例。

func_compute_example

  1. 用户实现一组函数,实现图片处理功能,例如图片缩放,人脸识别。处理逻辑既可以使用库的方式,在函数计算环境中进行计算,也可以调用其他图像处理服务,实现更复杂的处理。用户配置函数使其响应对象存储服务(OSS)事件。
  • 当移动应用上传图片到阿里云对象存储服务后,相应的函数会被触发执行。函数将执行的结果再次存入对象存储服务,并且可以通过阿里云的移动推送通知终端用户。
  • 移动应用也可以通过API网关访问函数来完成其它功能,如用户管理。

可以看到,基于函数计算构建业务系统,用户不再需要考虑服务器相关的问题,由此获得了相当明显的优势。

  1. 开发效率高。

    • 用户不必考虑服务器相关的容错,负载均衡,自动伸缩等方面的问题,开发难度降低。
    • 函数计算要求用户将系统解耦为一组功能单一的函数,相互配合完成。因此一些公共的组件,例如身份验证,能够抽象出来,借助专门的服务完成,无需自己实现。
    • 函数计算内建日志,性能指标监控等功能,用户不再需要自己配置维护相关系统。
  • 运维代价低。

    • 用户不再需要管理服务器。
    • 部署升级简化为上传代码,回滚至指定版本变得快速易用。
  • 平滑伸缩。

    • 函数执行能力实时横向平滑伸缩,对用户完全透明。
    • 很适合访问模式有明显波峰波谷的应用。
  • 成本低廉。

    • 函数计算按照实际使用情况收费。
    • 用户不再担心为了满足峰值需求预留资源,也不再为闲置资源买单。

广义上讲,云计算的发展实际上就是一个serverless化的过程。例如使用阿里云的对象存储服务,用户实现了存储的serverless化;使用阿里云的数加计算平台,用户实现了大数据处理的serverless化。近年来涌现的平台即服务(Platform-as-a-Service, PaaS),容器即服务(Container-as-a-Service,CaaS)等,都在一定程度上实现了serverless。每一种服务,都在不同的粒度上对计算进行抽象,而阿里云函数计算,则将计算的抽象粒度提升到了函数层次,属于函数即服务(Function-as- a-Servcie,FaaS)。相对于PaaS/CaaS,FaaS支持更小的计量和伸缩的粒度,因此在成本和伸缩平滑性上具有独特的优势。

xaas_comparison

下表从不同维度对比了IaaS,CaaS,PaaS和FaaS。

维度/服务类型 IaaS CaaS PaaS FaaS
开发效率
可伸缩性
可运维性
成本

开发效率

  • 低:用户需要处理机器相关的问题,包括容错,扩容缩容等问题。
  • 中:用户只需要实现业务逻辑。
  • 高:用户只需实现业务逻辑,并通过事件驱动的方式有效组合各项服务。例如上传图片到对象存储服务后,自动触发对应的函数处理。

可伸缩性

  • 低:以机器为粒度,在数分钟内完成扩容/缩容。
  • 中:以容器为粒度,在数秒内完成扩容/缩容。
  • 高:以事件/请求为粒度,扩容/缩容对用户是透明的,随用户访问量自动伸缩。

可运维性

  • 低:用户需要管理操作系统及以上层。
  • 中:用户需要管理容器即以上层。
  • 高:用户需要管理应用及以上层。

成本

  • 高:按照资源规格,小时时间粒度计费。
  • 低:按照资源规格,毫秒时间粒度计费。

综上,阿里云函数计算这样的FaaS,是一类非常有趣的服务。他们在易用,低成本,高可用,实时弹性伸缩等方面的优势使其在各种截然不同的场景中都极具吸引力。

  • 高频访问类应用,例如开发网站/移动应用后端系统。阿里云函数计算高可用,实时弹性伸缩,按需收费,成本低廉。用户能快速的实现系统原型,并且同样的架构能够平滑扩展,支持用户业务规模的快速扩张。
  • 低频访问类应用,例如各种数据导入导出任务,或者系统中的cron job。阿里云函数计算不但保证任务可靠执行,减小运维负担;而且按照实际使用情况收费,降低用户成本。

虽然FaaS作为新生事物,仍然面临工具链、生态成熟度方面的挑战,但这种模式已经体现出了巨大的潜力。阿里云函数计算将致力于打造无服务器计算生态圈,最大化用户价值,敬请关注!。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
4天前
|
弹性计算 人工智能 运维
《无服务器计算:现代应用开发的未来趋势》
传统的服务器架构存在诸多限制和挑战,而无服务器计算的兴起为应用开发带来了全新的可能性。本文将深入探讨无服务器计算的定义、优势以及在现代应用开发中的应用场景,为读者呈现无服务器计算的未来趋势与发展方向。
|
4天前
|
Serverless 云计算 Docker
SAE是全场景Serverless计算平台,深度融合微服务
【5月更文挑战第2天】SAE是全场景Serverless计算平台,深度融合微服务,提供SAE Job任务场景解决方案,具备便捷、节省、稳定、透明和省心的特点。而ECI是Serverless容器运行服务,结合云计算理念,仅需Docker镜像即可运行,支持细粒度资源计费,旨在降低成本和提升效率。SAE侧重应用管理和运营,ECI专注于优化容器资源使用。
22 0
|
4天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
265 0
|
4天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1063 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
4天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,在response.send()之后继续执行其它代码如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
181 0
|
4天前
|
运维 负载均衡 Java
Serverless 应用引擎产品使用之在阿里函数计算中,创建了个关于 stable diffusion 的函数服务,总是很卡如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
185 0
|
4天前
|
人工智能 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中使用自定义字体如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
165 0
|
4天前
|
弹性计算 运维 监控
Serverless 应用引擎产品使用之在阿里函数计算中,函数计算的的自定义域名的路由节约时间如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
169 0
|
4天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在使用阿里云函数计算部署网站时,网站打开不稳定如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
210 1
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中通过调用函数如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
307 10

热门文章

最新文章

相关产品

  • 函数计算
  • http://www.vxiaotou.com