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

2019 年 12 月 19 日

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


导读:当前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:

如何能实现 1 个研发支撑云 + android + iOS 三端的业务快速落地。

是否有新的研发运维模式,让程序员回归程序,“一次编码、到处运行”是我们的答案。我们在闲鱼项目验证,原本 60 天的项目时间减少了 20 天,提效 33% 。希望本文的分析也能够给大家带来收获。


业务研发模式的演进


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


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



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


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


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


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


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


  • 对业务研发屏蔽代码运行环境

  • 跨云、端多平台能力


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


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


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


“一次编码,到处运行”


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


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


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


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



进展结果:


  • 闲鱼业务落地实例,通过云端一体化研发模式,使原本 60 天的项目时间,减少了 20 天,提效 33% 。

  • 88 VIP 互动 aplatform ,几十万 QPS 业务流量平稳可靠运行,轻量级复合多容器设计模式的集团首次规模化验证。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/NSWhgJ132qbaCudIsJt7xw


2019 年 12 月 19 日 18:19180

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期第 12 周学习总结

好吃不贵

极客大学架构师训练营

可能会重塑未来移动支付市场的格局

CECBC区块链专委会

货币

数字人民币红包迎战“双十二” 六大行钱包全接入

CECBC区块链专委会

数字人民币

推进工业互联网和区块链创新发展

CECBC区块链专委会

区块链 互联网

架构师训练营 1 期第 12 周:数据应用(一)- 作业

piercebn

极客大学架构师训练营

Java内存模型JMM详细解析

云流

程序员 并发编程 架构师 java面试

刚参加完阿里P6面试归来(Offer已斩获),6点面试经验总结

Java架构之路

Java 程序员 架构 面试 编程语言

一只支持凡尔赛文学创作的摄影手机

脑极体

架构师训练营 2 期 - 第 8 周命题作业

Geek_no_one

极客大学架构师训练营

2020年高频Java面试题集锦(含答案),让你的面试之路畅通无阻!

Java成神之路

Java 程序员 架构 面试 编程语言

Github上标星30K+的SpringBoot实战电商项目,简直不要太牛!

Java成神之路

Java 程序员 架构 面试 编程语言

什么?还不知道该如何学习微服务?这份Github上星标55.9k的微服务神仙笔记真的太香了!

Java成神之路

Java 程序员 架构 面试 编程语言

《社会中的数据可视化》PDF免费下载

计算机与AI

数据可视化

架构师训练营第八周作业

丁乐洪

命令行搜索神器fzf

Rayjun

Linux

架构师训练营第三周”代码重构“作业

随秋

极客大学架构师训练营

【第十二周】课后作业

云龙

架构之书:雄心与《C++语言的设计与演化》

lidaobing

c++ 架构

架构师训练营 2 期 - 第八周总结

Geek_no_one

极客大学架构师训练营

阿里聚划算5轮面试题:GC收集器、多线程锁、海量数据技术考核

Java架构之路

Java 程序员 架构 面试 编程语言

2020的另一面:5G的斯普特尼克之年

脑极体

LeetCode题解:22. 括号生成,BFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

架构师训练营第 12 周作业

netspecial

极客大学架构师训练营

网络篇:朋友面试之TCP/IP,回去等通知吧

Crud的程序员

TCP 网络协议 IP

FFmpeg使用基础(音视频开发入门)

赖猫

架构师系列9: 找出单向链表合并节点

桃花原记

玛雅公约软件系统开发|玛雅公约APP开发

开發I852946OIIO

系统开发

架构师训练营 第八周作业

文江

Java开发者必读的〈Java开发手册(嵩山版)〉灵魂15问,深究Java规约背后的原理。

Java成神之路

Java 程序员 架构 面试 编程语言

真的爱了!这份阿里P8整理的《Java核心技术整理》新版手抄本,简直把所有Java知识操作都写出来了

Java成神之路

Java 程序员 架构 面试 编程语言

陪你手撕源码系列之 STL set 相关算法

herongwei

c++ 算法 set stl

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