2.1 设计理念

本章首先介绍华为元戎设计时践行的Serverless平台设计理念。

1. 效率为先

华为元戎架构考虑的出发点是,使开发者能高效开发未来云上的各种应用。如第1章所分析的现状,当前云上应用的开发者无论使用哪种微服务框架,都不可避免地要遇到分布式的各种典型问题,例如,如何在微服务之间通信、如何进行分布式调度、如何保证服务之间的数据一致性等。当前的Serverless开发方式在面对复杂应用时,仍然存在一些问题,例如,ExCamera[2]在进行视频编解码时需要函数执行大规模的并行任务,函数之间的通信和编解码任务的细粒度调度因而仍然需要由Excamera的开发者再单独实现一套框架。当前Serverless开发方式受限的主要原因是缺乏对状态和数据传递的高性能操作,为此华为元戎抽象了状态及其操作的接口,以及函数之间的调用接口,其设计目标是让开发者在开发应用时只聚焦业务逻辑的函数开发,为开发者屏蔽分布式带来的复杂问题,如弹性扩展、底层通信等,从而拥有如“单机编程”一般的云上应用开发体验。

2. 性能为本

为了推动新一代Serverless支持实时分布式流处理、大数据分析、机器学习等丰富复杂的应用场景,华为元戎需要构建高性能的函数运行时。例如,针对函数的冷启动在代码传输、加载等方面进行了大幅优化,在不改动操作系统的情况下,函数的冷启动时间最短可达10~20ms。同时,通过流量快速感知和实例快速启动等方式实现了系统的快速弹性伸缩。对于数据量较大的操作,系统原生支持以数据为中心的函数亲和调度,通过近数据调度函数实例来避免在函数间迁移大量数据所带来的开销,从而能够更好地支持大数据批量处理和机器学习等性能要求较高的应用。

3. 服务为基

华为元戎针对前后端的高效完备设计,还考虑到开发者如何使用函数与各种云服务进行对接,即现有服务(如数据库、存储、IoT服务)如何方便地触发函数,以及在函数中如何高效地调用各种后端服务(如数据库、存储、消息总线、第三方服务等)。为此,华为元戎设计了Event Bridge和Service Bridge。Event Bridge可以为服务触发函数提供事件系统,对各类事件进行处理和分发;Service Bridge可以为开发者在函数中调用各种服务提供分类齐全的统一接口及连接池管理类等增值服务。