本文介绍函数计算FC(Function Compute)在专有云Apsara Stack项目中所输出的能力。

产品概述

从2016年产品立项,2017 年正式商业化,函数计算是国内第一款FaaS(函数即服务) 产品,第一次把Serverless和FaaS理念以可落地的技术产品提供给国内开发者,国内同类产品中功能丰富度、性能指标、平台稳定、用户体验多项能力均持续领先。

函数计算在阿里经济体历经多次双十一大促流量洪峰考验,是支撑包括淘宝、天猫、咸鱼、蚂蚁金服、1688、钉钉等重要业务的基础设施。函数计算拥有国内最大的企业客户群体,广泛应用于新浪微博、虎扑体育、跟谁学、世纪联华、石墨、语雀、芒果TV、码隆科技、115科技等大中小型企业核心业务场景。函数计算服务了超过10万开发者,是企业快速上云、Serverless架构改造的首要选型。

功能概览

功能 功能项 说明
函数管理 函数创建
  • 提供函数创建、部署发布功能。
  • 提供代码包、镜像等形式的函数创建功能,支持自定义运行时函数创建。
函数发布
  • 提供函数版本管理功能,支持为函数发布不可修改的版本。
  • 提供函数版本可根据流量策略配置进行灰度发布的功能。
函数管理
  • 提供函数开发语言、内存、超时时间(最长运行时间)、环境变量、单实例并发数等配置功能。
  • 提供函数触发器配置功能,支持配置函数绑定触发。
  • 提供函数预留实例配置功能,实现为函数提供常驻的函数运行实例。
  • 提供函数执行离线长时间批量任务的功能,实现单个实例执行单个批量任务的功能。
函数编排 提供Serverless工作流功能。提供串行处理、并行处理、分支选择处理的Serverless工作流编排功能,对多个函数进行编排部署,协调多个函数任务的执行。
函数代码开发 多种函数语言的开发
  • Java函数开发功能。提供Java函数运行时框架与SDK,支持使用Java编程语言进行函数代码开发,支持直接使用函数代码打包的JAR或WAR包来部署运行函数。
  • Python函数开发功能。提供Python函数运行时框架与SDK,支持使用Python编程语言进行函数代码开发,支持直接使用Python函数代码来部署运行函数。
  • Node.js函数开发功能。提供Node.js函数运行时框架与SDK,支持使用Node.js编程语言进行函数代码开发,支持直接使用Node.js函数代码来部署运行函数。
开发工具
  • 提供使用网页端可视化代码编辑器编写代码的功能,支持与后续与行内函数计算管理平台进行集成。
  • 提供使用命令行开发工具进行函数管理、开发、部署的功能。
  • 提供使用IDE(如VSCode、IntelliJ IDEA)工具进行函数管理、开发、部署的功能。
  • 提供代码调试功能,能够通过开发工具对函数代码进行代码调试。
  • 提供系统API功能,能够通过系统API实现对函数的管理,包括对函数、服务、触发器及相关配置的增删改查。
事件触发 多种事件源
  • 提供可扩展的自定义事件触发功能,易于扩展实现自定义的触发器对接行内其他服务的事件源。
  • 提供定时触发功能,实现定时触发函数,定时规则可支持Cron表达式配置。
  • 提供HTTP触发功能,支持使用HTTP请求触发函数,实现通过HTTP协议访问函服务。
  • 提供分布式消息触发功能,实现使用行内分布式消息系统(基于Kafka实现)进行消息触发函数。
  • 提供对象存储触发功能,实现使用行内对象存储服务(基于Hadoop实现)进行消息触发函数。
服务兼容 数据库 提供函数调用行内数据库(MySQL)的调用功能。
文件存储 支持函数容器对接挂载行内分布式文件存储(GlusterFS),实现函数读写共享文件存储的功能。
操作系统 兼容国产化操作系统、Docker容器版本、Kubernetes版本。
高可用 宕机高可用 集群中任意服务器宕机或异常不可用时,不影响应用服务的正常使用,不影响整个集群可用性。
异常高可用
  • 提供函数并发数或实例数上限功能,实现单个函数在异常情况下不影响整个集群的可用性。
  • 提供限流功能,实现请求量超过函数处理能力时对请求进行限流。
  • 提供异步调用重试功能,实现异步调用错误后自动重试。
性能
  • 实时自动伸缩功能,Python/Node.js实现百毫秒级的自动伸缩,Java实现秒级伸缩。
  • 提供高性能的冷启动功能,Python/Node.js平均请求延时控制在百毫秒级,Java控制在秒级。
日志及监控 指标监控
  • 提供函数级别运行指标监控功能,指标包括函数调用次数、时长、内存、CPU、错误次数等。
  • 提供应用服务级别运行指标监控功能,指标包括应用内所有函数调用次数、时长、内存、CPU、错误次数等。
  • 提供集群级别运行指标监控功能,指标包括集群内所有函数调用次数、时长、内存、错误次数等。
系统监控 提供函数计算各系统组件及节点的CPU内存及可用性等监控功能。
日志采集 提供函数日志采集功能,实现函数维度的日志收集与查询能力,函数日志支持输出日志时间、应用服务名、函数名、唯一请求ID、函数版本号、函数实例名等信息。
链路追踪 提供支持后续与Zipkin调用链跟踪集成的功能,使函数计算成为分布式系统的调用链路中的一环,支持分析函数计算链路的时延。

更多信息

关于如何在专有云中部署函数计算,请参见函数计算专有云部署最佳实践