“一次编码、到处运行”,淘宝云端一体化探索

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:如何能实现 1 个研发支撑云 + android + iOS 三端的业务快速落地。是否有新的研发运维模式,让程序员回归程序,“一次编码、到处运行”是我们的答案。

1.jpg

作者|孙棋(空蒙)
出品|阿里巴巴新零售淘系技术部

导读:当前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:如何能实现 1 个研发支撑云 + android + iOS 三端的业务快速落地。是否有新的研发运维模式,让程序员回归程序,“一次编码、到处运行”是我们的答案。我们在闲鱼项目验证,原本 60 天的项目时间减少了 20 天,提效 33% 。希望本文的分析也能够给大家带来收获。

业务研发模式的演进

  • 效率是业务研发运维模式演进核心驱动力

PC 互联网时代,单体应用包含前后端是最初的研发模式(淘宝经历开发人员写 velocity 模板,以及更早的 jsp、asp 页面)其实质是中心化搭火车的研发模型。

image.png

随着业务发展复杂性快速增加,赶火车的交付模式,极大的限制了业务发展,因此诞生了服务化的拆分,淘宝在 09 年的五彩石项目即基于这样的背景,微服务是一种软件架构,这背后更是一种研发模式的变革,从中心化研发模式到分布式的研发模式升级。

在业务分布式研发模式升级的同时,前后端分离研发模式也在同步的演进,从 ajax 到专业前端独立完成业务闭环,职业分工细化提效。但对前端同学而言,服务端的运维始终是其痛苦的技术门槛,以及在阿里以 Java 语言为基础的中间件生态内,一直没有很好解决。

进入移动互联网时代,客户端同样也经历同样的演进,阿里集团以 atlas 实现了端分布式研发模式。但对比 pc 时代的前后端分离,移动时代又回到了 ajax 模式,端的同学只负责了端,没有实现业务自闭环。同时移动互联网带来了新的挑战,即跨 android 和 iOS 平台的问题, React Native、weex 等产品即在这个环境下诞生。

云端一体轻量级研发模式的核心挑战

如何让客户端同学更往后一步,实现业务落地的闭环能力,同时规避 BFF 层对客户端同学的在研发、运维以及跨语言面临集团 Java 技术中间件生态,关键是:

  • 对业务研发屏蔽代码运行环境
  • 跨云、端多平台能力

Java 语言最初的成功,“一次编译,到处运行”是关键,在 JVM 层面屏蔽了部分的运行环境;如何向研发提供语言无关的透明化代码运行环境是核心挑战,除了业务代码以外的事情全部让技术平台托管。

移动互联网这么多年云和端仍是割裂的各自为战的研发模式,业界也有全栈的探索,但没有很成功的案例,问题是技术门槛太高,对开发人员即要还要的太多,业务落地的复杂性而言没有本质的变化,原来 3 个人做的事情,简单的让一个人做而已,缺乏一个有效跨平台能力,尤其是跨云+端的平台能力。

研发模式演进的本质:降低技术门槛、跨平台能力。

“一次编码,到处运行”

让开发人员只关注业务逻辑编码,是研发模式的全新的下一个阶段,也是研发模式演进的本质体现。这个阶段云原生代表的技术给了我们很多的输入,通过容器化技术解耦基础设施,容器化编排降低了运维复杂性;通过服务网格实现了应用与中间件体系的解耦合;不可变基础设施,支持更高的一致性和可靠性,降低了复杂性;serverless 的理念,技术的演进为研发模式升级提供了新的契机。

GAIA 业务轻量级研发运维模式探索实践

基于这样的背景, GAIA 应孕而生,与闲鱼、 aplatform 淘系互动平台两大业务紧密合作,通过 GAIA 云端 FaaS 技术能力,重新定义了研发的职责和边界,让程序员回归最初的程序,结合端上的跨平台实现云端一体的轻量级业务研发运维模式。

闲鱼全新的研发模式如下图:

image.png

进展结果:

  • 闲鱼业务落地实例,通过云端一体化研发模式,使原本 60 天的项目时间,减少了 20 天,提效 33% 。
  • 88 VIP 互动 aplatform ,几十万 QPS 业务流量平稳可靠运行,轻量级复合多容器设计模式的集团首次规模化验证。

GAIA设计理念

  • 通过容器化设计模式,把基础设施下沉与业务解耦,代码运行环境对业务透明化

轻量级复合多容器设计模式

image.png

我们的应用目前都仍是富容器模式,重要的问题是容器职责不单一,造成隔离性以及业务与基础设施紧密耦合的问题。

容器做为 GAIA 的关键,其设计模式进行了革命性的升级,也是集团首次大规模的尝试。

  • 基于 K8s 的 pod 轻量级复合多容器能力,重新定义了业务与基础设施的边界,通过 sidecar 承载基础设施
  • 通过容器化的编排调度,实现资源、流量与容器生命周期统一,为按需使用奠定基础架构
  • 基于 configmap ,实现配置与环境解耦,实现容器镜像的不可变性,日常、预发、生产镜像的统一,降低复杂性
  • 基于 Init Container 技术,实现 function 业务与基础设施彻底解耦,通过容器生命周期初始化机制组合 function+ 基础设施构建运行态,为业务 function 与基础设施各自独立运维提供支撑
  • API 服务注册发现等基础设施能力下沉到 K8s 技术体系

通过这些容器的设计能力,业务研发只需要编写业务逻辑代码即可,同时通过声明式的 API 透出,快速完成了云端业务的落地能力在移动端,小程序等容器也封装隔离业务的运行环境, flutter 亦是如此,研发人员进入面向容器编程,通过容器来隔离基础设施,屏蔽运行环境平台的差异性。

image.png

GAIA 是开放性的平台,按其容器设计规范,闲鱼对dart语言按规范应实现了function容器, aplatform 的引擎与 GAIA 的 Java 容器对接的成功,解决了平台型应用以及任何应用基于 GAIA 实现 serverless 化的解决路径(集团存量万+级别的应用)。

总结展望

目前 GAIA 和闲鱼以及 aplatform 淘系互动进行的实践是一次意义重大的定义探索, “一次编码,到处运行” ,让程序员回归程序,当前云端技术上是初步的结合,未来还待深度的体系挖掘建设未来的展望:

  • 业务轻量级研发运维模式是不可阻挡的未来

天下大事,分久必合合久必分,5G 万物互联即将到来,多种终端设备,需要轻量级研发运维模式的支持,从驱动研发模式演进的“降低技术门槛、跨平台能力”本质出发,高效的业务落地能力是王道,当前分云 +iOS+android 的多端多人协作模式必将逐步淘汰。

  • 面向容器化、统一 API 服务编程

云和端运行环境容器化,是业务与基础设施解耦的必经之路,通过容器化封装隔离运行环境,通过容器提供的统一的 API 服务接口交互;云与端容器技术会趋同,两端容器会紧密的互动,云端在技术体系上更深度的结合,实现云端技术体系闭环。

  • 工程体系归一,客户端、服务端统一版本化发布升级

目前割裂的研发模式,典型的表现是多端各自代码分支;业务云端一体化轻量级研发模式,业务的工程体系将会云端归一,在一个工程项目里面,定义服务接口,在云端容器实现服务透出,在客户端容器实现服务调用;同时云和端会统一化的版本化发布运维体系,这里需要对整个研发模式体系的再定义。

  • 技术部门组织架构的变革

人的要求变化,支持业务的组织生产关系将升级。

我们的使命

“革新研发模式、重构研发生态”

“一次编码、到处运行” - 业务云端一体化轻量级研发运维模式,等待我们一起建设。

One More Thing

淘宝基础平台部-基础服务团队,欢迎在容器、K8s、serverless、service mesh上感兴趣的同学,一起探索技术、创新突破,为阿里乃至业界创造新价值,简历投递 kobe.sunq@taobao.com

更多技术干货,关注「淘系技术」微信公众号~

屏幕快照 2019-06-21 上午10.23.52.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
7月前
|
运维 监控 前端开发
应用研发平台EMAS产品常见问题之厂商通道离线如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
4月前
|
弹性计算 关系型数据库 Serverless
云端架构下的高效多媒体文件处理方案测评体验
传统的服务器部署模式在处理高并发、大数据量的文件转换任务时,常面临资源瓶颈和成本上升的问题。使用函数计算,利用事件驱动和异步任务的方式,将文件处理任务与核心应用解耦,同时依靠函数计算自动弹性扩展和按使用付费的优势可以快速对多媒体文件进行处理。
|
4月前
|
数据可视化 搜索推荐 BI
一套依托“电脑端+移动端”双端联合应用模式的智慧综合执法办案系统源码
智慧综合执法系统构建了线上指挥到监督的全流程工作模式,实现电脑端与移动端双平台协同作业。执法人员利用移动端实时记录、处理案件,并同步至电脑端。系统支持应急管理案件快速办理,具备法律法规智能引用、地理信息绑定等功能,确保流程标准化、规范化,提升执法效率与质量。此外,还提供案件登记、办理、统计分析及电子案卷生成等模块,配合电子支付系统,实现全方位智能执法管理。
一套依托“电脑端+移动端”双端联合应用模式的智慧综合执法办案系统源码
|
5月前
|
存储 机器学习/深度学习 人工智能
云端数字资产管理:构建高效数据生态
随着数字化进程的加速,云上数字资产管理已成为企业成功的关键因素之一。通过采用适当的云存储方案、实施严格的安全措施、建立高效的搜索和检索系统,企业可以充分利用数字资产的价值,推动业务发展。未来,随着人工智能、机器学习等技术的应用,云上数字资产管理将进一步提高效率和智能化水平,为企业创造更多价值。
|
5月前
|
搜索推荐 API 对象存储
|
5月前
|
分布式计算 搜索推荐 API
|
消息中间件 移动开发 运维
《2023云原生实战案例集》——04 互联网——小七手游 MQTT构筑运营平台与游戏端的交互通道
《2023云原生实战案例集》——04 互联网——小七手游 MQTT构筑运营平台与游戏端的交互通道
|
人工智能 云计算 开发者
《云端智创—云端智能媒体生产技术解析与实践》电子版地址
本书基于阿里云开发者社区的DeepVideo训练营,搜集整理了阿里云视频云的资深导师们的精彩演讲内容,与各位开发者和视频制作技术朋友分享。
92 0
《云端智创—云端智能媒体生产技术解析与实践》电子版地址
|
弹性计算 关系型数据库 MySQL
营销引擎 - 如何快速搭建自有 DSP|学习笔记
快速学习营销引擎 - 如何快速搭建自有 DSP
营销引擎 - 如何快速搭建自有  DSP|学习笔记
|
7月前
|
编解码 JSON 语音技术
云端短视频批量混剪解决方案
“批量生产”、“快速裂变”和“去重”是制作营销短视频的关键,基于有限数量的基础素材大规模生成指定数量的新视频,是营销短视频创作的常见思路。本篇介绍使用智能媒体生产ICE创作营销短视频,自由设定脚本顺序模拟手动剪辑,实现自动化批量制作高质量原创视频。
488 0
云端短视频批量混剪解决方案