在阿里内部,后端代码使用Serverless,云研发平台要解决的命题

日期:2020-12-02 13:06:39 来源:互联网 编辑:小狐 阅读人数:504

简介: Serverless 云研发平台经过这半年多的蜕变,已经从简单的解决工程链路的平台演进成一个面向研发、上线、运维的全生命周期研发平台,后续要解决的命题会集中在用户低门槛上。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图1)

技术的成熟度大规模的实践,在 Java 领域,阿里将自身的实践源源不断的反哺给微服务技术体系;在 Node.js 领域,阿里正掀起了前所未有的前端浪潮,将实践反哺给 Serverless 技术体系,并逐渐拓展到其他多语言体系和后端 BaaS上。

Serverless 云研发平台作为阿里巴巴集团前端委员会发起的一体化云研发平台,底层基于函数计算 FC,是整个 Node Serverless 体系中的研发入口,承接了、飞猪、ICBU、考拉、高德、文娱等研发、交付和运维工作。目前,集团已经有上千位前端和客户端的工程师使用 Serverless 云研发平台进行业务的工作,包括但不限于营销导购、中后台、行业前台等规模化场景。

从今年双 11 整体的大盘数据来看, 仅淘系 Node Serverless 的支撑流量就已经从去年的 2K QPS 峰值增加到今年的 30K QPS 峰值,峰值流量增加了近15倍,集团整体更加是从近 5.8K QPS 到达今年的 50K QPS峰值。

研发的本质

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图2)

今天,我们从传统的前端者慢慢走向应用研发者,摸爬滚打不容易,除了需要去思考什么是真正的按需付费、弹性等底层运维相关的命题之外,还需要去考虑研发效能相关命题,这也是为什么有更高效的协同模式、组织关系的变化,甚至整个前后端协同的生产关系都在发生变化的原因,今天我们谈云端一体,本质是从用户的视角去思考问题,用更高效的方式去解决业务问题。

如今,软件对于成本的控制要求越来越高,单位时间的产能会慢慢成为衡量一个团队是否高效的标准。

因此从研发的本质,我们来看看 Serverless 云研发平台要解决的命题:

让业务变轻,聚焦业务逻辑。

让业务变快,提升产研效率。

让基础设施变厚,提升稳定性。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图3)

Serverless 研发平台

Serverless 业务解决方案

我们定义的解决方案 :即解决某一横向或纵向领域的,贯穿创建、研发、交付、运维阶段的一系列能力的集合。为什么当时需要定义解决方案的定制能力,核心原因是面向今天云端一体化的场景,不同事业部的业务同学有着不同的定制需求。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图4)

我们调研了几个事业部,包含 AE 、考拉、淘系等,起初的 Serverless 云研发平台的定制能力偏弱,无法很好的承接业务诉求,我们需要让平台有一定的开放定制能力,例如淘系面向研发面板的 low code 的定制能力,考拉面向函数的资损风险等级和应用风险等级录入等需求。

但是开放能力会涉及创建、研发、交付、运维这几个阶段,每个过程能什么定制能力、开放到什么程度是要由平台根据收集到的需求和平台自身管控要求去综合考虑的,所谓人挪活,树挪死,结构化了几个关键能力之后 Serverless 云研发平台开放解决方案的定制能力在当时多个租户的调研下产生了。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图5)

通过上图结构化的信息,我们定义了解决方案元数据相关信息,示例为中后台一体化解决方案相关元数据信息。

}, {

截止目前,Serverless 云研发平台通过共建一共沉淀了 14 个解决方案,包括 5 个通用解决方案和 9 个面向不同租户的定制化解决方案。

接下去介绍 3 个典型的解决方案。

一体化解决方案

一体化应用在使用时,具有诸多的优势:

易于,前后端同仓库,无缝融合一体

易于部署,前后端一同发布与部署

易于维护,后端代码使用Serverless 部署,运维难度低

而在时,我们也了诸多的功能来帮助者加速研发。

“零 API 调用”

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图6)

Hooks 支持

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图7)

在阿里内部,我们了中后台一体化与搭建模块一体化两种解决方案。其中,中后台一体化应用在内部已经落地了 300+ 应用,快速且高效的支撑了各个 BU 的中后台需求。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图8)

淘系模型驱动解决方案

模型驱动是导购业务过程中沉淀的一种方式,面向导购大量的召回补全展现需求。通过配置面板,将模型、数据、插件配置组合,最终生成业务逻辑代码,供业务消费。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图9)

数据源(召回) --> 模型(补全) --> 扩展逻辑(插件)

考拉 Dart 一体化解决方案

考拉大前端自 2020 年 3 月份开始尝试 Flutter 的应用,部分客户端和前端同学均参与进 Flutter 的,对于 Dart 相对熟悉,所以 Dart 一体化解决方案最初目的主要是考虑帮客户端同学解决提效的问题。考拉之前主要在使 Node.js Runtime 的 Serverless 方案,相比于 Java Script,Dart 对于客户端同学也更友好一些,同时也不断有客户端同学提出 Dart Serverless 的诉求。

在函数计算 FC 研发团队的帮助下,考拉基于 Dart Runtime 的前期版本,快速完成了考拉 App 今日活动 Tab 的改造重构,并已于 9 月底灰度上线。10 月中下旬,基于 Dart Runtime 开始和 DEF 平台对接,最终 DEF Serverless 创建面板,会透出 Dart 纯函数解决方案,目前和 FC 侧基本流程已调通,即将上线 Dart 的纯函数解决方案。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图10)

除了以上 3 个解决方案,ICBU 团队研发的 EaaS 微应用级别的解决方案,天猫行业团队研发的面向轻店场景的原生小程序一体化 解决方案等,这里不展开一一介绍了。

函数稳定性保障

线上稳定性,本质上是对问题的治理。从问题出发,可以分为以下几个主要环节:预防问题、发现问题、定位问题和解决问题。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图11)

大促稳定性保障手段

大促场景下, C 端场景需要重保,以下的稳定性保障手段经历数次大促压测,同时越是大促态,整个稳定性保障也愈发紧张。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图12)

稳定性是保障了,但是在之前我们是对照上述的文档完成上线流程的,流程冗长无比,最终并沉淀成一个作战手册,同时这些内容无法和应用关联,离散在文档角落,整个过程又臭又长。

上线流程 -> 作战手册一体化

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图13)

通过半自动化流程生产的作战手册,函数和作战手册关联的硬盘化记录方式,并结合自动限流和下游依赖分析以及预案生产,例如:通过预发流量录制的回放,自动分析出函数下游的强弱依赖,并录入强依赖负责人,方便出现线上问题的时候可以第一时间找到负责人排查问题;根据不同租户对单元化的需求,平台可以帮助用户进行多机房、多单元部署实现异地多活。这些都能够让业务的大促态变得更轻松一些。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图14)

专家应急响应

为解决线上问题定位慢的痛点,平台还了应急响应,当函数成功率降低触发报警时,平台会自动拉取函数以及下游多项数据信息,进行错误分析,快速产出错误报告推送给函数者。并引导者回到研发平台进行切流、执行预案等止血操作。例如,下游服务强依赖服务A成功率下降,导致函数自身成功率下降,需要服务A负责同学。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图15)

租户运维

平台上的每个租户都有对应的租户员,对各自租户的函数稳定性负责,包括租户下函数的单元化部署规则、大促管控、自建网关配置、容器额度、租户私有解决方案等,为此平台了一系列运维工具。

租户大盘

帮助员更好的观测到租户下函数的服务质量,和容器额度使用状况,函数错误率和 RT 黑榜,并且每周都会有治理周报推送给员,帮助其更好的进行运维其租户下的函数。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图16)

函数盘点

帮助员细致的观测每个函数线上运行的具体状态,包括函数线上存在的版本、容器数量、 Runtime 版本、灰度、单元部署状况,甚至可以观测到函数部署是否均衡。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图17)

大促管控

平台还针对大促态的运维管控能力,员可以将租户下参与大促的函数服务一键切换到大促态,进行大促态的额外配置,比如大促容量配置,Broker 侧限流,网关侧统一监控预案等能力,保障大促的稳定。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图18)

一些思考

Serverless 云研发平台后续将在提升用户正向和逆向流程的效率上继续演进,L1 是希望让用户低成本的上手,L2 是希望让用户低成本的进行研发,让前端往应用研发更进一步。

在阿里内部,后端代码使用Serverless,云研发平台要解决的命题(图19)

以下是基于用户正向研发链路耗时统计的一些分析:

技术方案产出的时间较久,占比整体研发周期 5%,核心原因是服务物料难以检索以及服务可用性难以评估,领域模型沉淀不足。

FaaS 整体研发占比 25%~30% ;模型驱动等可视化编排在物料准备完备的情况下,能够提效,但是不具备规模化场景。

联调耗时较久占整体成本 20% 左右,过度依赖预发环境,据统计,完成一个项目需要部署 50 次。

压测成本依然存在,平台熟悉成本过高。

当然还有监控运维逆向链路的一些分析:

报警分发不准确,因现在无法区分报警是底层框架和上层业务的问题,所以往往需要架构组和业务同学的共同介入。

定位问题效率低,如失败率报警,可能是底层架构的问题也有可能是下游的问题,还有可能是机房或者自身的问题,往往需要去多个平台逐一排查。

缺乏对服务质量的统计或整体认知。

缺乏能针对 80% 线上问题的排查和解决的标准化流程,依赖用户对问题的定位和解决能力。

最后

Serverless 云研发平台经过这半年多的蜕变,已经从简单的解决工程链路的平台演进成一个面向研发、上线、运维的全生命周期研发平台,后续要解决的命题会集中在用户低门槛上。

希望我们在 Serverless 上的实践和探索,能给业内其他公司带去一些启发,让路上的障碍变少,让应用的研发变轻。

本文相关词条概念解析:

平台

平台又名《平台:自媒体时代用影响力赢取惊人财富》,是全球自媒体营销泰斗迈克尔·哈耶特的里程碑之作。2013年10月1日,由中央编译出版社出版发行。书籍介绍了在当今市场要想获得成功,必须拥有两个战略资产:让人欲罢不能的产品和有效平台。托马斯·纳尔逊出版公司前首席执行官、现任董事会主席迈克尔·哈耶特以本书为指南,引领读者从无人问津的台下幕后一步一步成功走进崭新的传媒世界。展示那些畅销书作家、演说家、企业家、音乐家以及其他具有创造能力的人们如何独辟蹊径,在当今激烈竞争的市场赢得顾客。哈耶特是经验之谈。他本身就是世界顶级博客作者之一,拥有大量微博粉丝,其巨大并且日益扩张的平台正是他成功开展写作、演讲和咨询业务的基础。

网友评论
相关文章
包括广东男篮,本赛季目标重新修订,争第三

包括广东男篮,本赛季目标重新修订,争第三

包括广东男篮,本赛季目标重新修订,争第三[详情]

舌尖2心传特别报道,张爷爷手工空心挂面,手工匠制,爽滑劲道,家人都不爱吃

舌尖2心传特别报道,张爷爷手工空心挂面,手工匠制,爽滑劲道,家人都不爱吃

舌尖2心传特别报道,张爷爷手工空心挂面,手工匠制,爽滑劲道,家人都不爱吃[详情]

面对中国机械工人的式微,三班倒,流水线,没地位,对技术的尊重,善待未来

面对中国机械工人的式微,三班倒,流水线,没地位,对技术的尊重,善待未来

面对中国机械工人的式微,三班倒,流水线,没地位,对技术的尊重,善待未来[详情]

绝不只是靠锻炼就能达到的,那一定你是走错了方向,下面为你准备三个居家健身动作

绝不只是靠锻炼就能达到的,那一定你是走错了方向,下面为你准备三个居家健身动作

绝不只是靠锻炼就能达到的,那一定你是走错了方向,下面为你准备三个居家健身动作[详情]

说几句关于莲藕的闲话

说几句关于莲藕的闲话

说几句关于莲藕的闲话[详情]

今年年货节期间,不少传统品牌也纷纷涉足年夜饭礼盒市场

今年年货节期间,不少传统品牌也纷纷涉足年夜饭礼盒市场

今年年货节期间,不少传统品牌也纷纷涉足年夜饭礼盒市场[详情]

搞笑GIF趣图,走在路上,竟然被一只狗给嘲笑了,我眼神不好

搞笑GIF趣图,走在路上,竟然被一只狗给嘲笑了,我眼神不好

搞笑GIF趣图,走在路上,竟然被一只狗给嘲笑了,我眼神不好[详情]

加强残疾人托养机构服务规范化管理

加强残疾人托养机构服务规范化管理

加强残疾人托养机构服务规范化管理[详情]

斤的速冻水饺,斤的五花肉,元芳,你怎么看

斤的速冻水饺,斤的五花肉,元芳,你怎么看

斤的速冻水饺,斤的五花肉,元芳,你怎么看[详情]

快自查,涉及口罩共10万余只,正召回

快自查,涉及口罩共10万余只,正召回

快自查,涉及口罩共10万余只,正召回[详情]

网站地图     Copyright     2016-2018  资讯网   All rights reserved.