又一个项目开源,阿里已成为中国开源的关键力量
今天,开源软件托管平台github上的阿里巴巴主页又增加了一个新项目:Atlas。Atlas意指巨人,它是Google闻名遐迩的波士顿机器人的外号,也是手机淘宝团队的移动容器化框架的代号。在去年的云栖大会上,阿里巴巴资深技术专家倪生华宣布将于2017年初开源Atlas,现在这个承诺终于兑现了。
Atlas开源解决了移动开发者什么痛点?
2013年马云发表公开信宣布阿里巴巴“All in无线”战略,之后手机淘宝App的业务规模也迎来了爆发式增长,据阿里巴巴所公布的数据显示,2016年第4季度阿里零售业务移动端月度活跃用户数已达到4.93亿。
为了应对暴增的业务,手机淘宝开发团队规模在2013年迅速从100人增加到500、600人。当时打造一个能够迎合指数级增长的业务以及千人级协作的移动框架就成为手机淘宝技术团队的燃眉之急,Atlas应运而生,它基于手机淘宝客户端的基础框架重构而来,提供组件化、动态性、解耦化的支持。
随着互联网公司业务进入成熟期,大多数公司都拥有App矩阵,不同团队需并行开发,且不断有新的App需要开发。同时运营在移动互联网中正扮演越来越重要的角色。因此如何实现多团队并行、敏捷开发,同时能在不影响用户和业务的情况下满足运营端的频繁更新需求,就成为移动App开发者的痛点。
相对于市面上已有的移动框架而言,Atlas可在工程期、运行期、运维期起作用。工程师可在一款App的工程编码期、Apk运行期和后续运维期修复各种问题,而不会对业务造成影响,事实上,早在2014年,手机淘宝技术团队就向业界分享过Atlas,Atlas也是业界起步最早的移动端动态化、组件化和容器化框架的开源方案。
具体来说它有这些特点(如果不关注技术细节请跳过):
兼容性强确保业务稳定运行:将更多工作放到编码期,且在运行期提供类隔离等机制,可以保证业务稳定,整个手机淘宝的crash率维持在万分之五左右,同时兼容性强,支持4.0以后的所有系统版本,适配所有市面上的机型。
动态更新能力强,限制较少:通过组件化的分层设计,确保客户端无发版也可更新。手机淘宝是一款重运营的App,节假日活动运营都会改变页面结构甚至菜单图标,但用户并不需要升级App就会看到全新界面,这种动态更新能力正是基于Atlas框架而实现的。
支持规模协作和敏捷开发:Atlas拥有快速迭代能力,手淘自身超过60+业务组件、20个协作团队,以及百万行级别代码都在Atlas上运行,且可以做到随时发布,过去半年发布446次,平均每天2.4次。
适用于不同规模的App:阿里巴巴旗下有几百个业务,不同业务还处于不同周期,因此规模也完全不同,而Atlas是一个轻量级的框架,同时支持大小型App开发。
提供相对完整的能力:不同组件提供完成的底层能力,业务层的开发具有充分的自由度,且只需关注业务本身即可。
从Atlas特点来看,它的开源具有重大意义。不论什么规模的安卓App均有可能受益于它,基于这一底层框架可以大幅降低开发者工作量进而聚焦于业务本身,业已被手机淘宝验证成功的多团对协作、客户端动态更新等能力也可为App开发者所用,可以说Atlas开源对移动开发者社区来说是一个大事。
阿里移动开源三驾马车即将成型?
由于阿里巴巴是从PC时代成功转型移动的巨头,因此其过去的开源并没有突出移动二字,反而是集中在数据库、服务器端、中间件等领域。随着阿里巴巴移动转型成功,阿里在移动端的技术实力也在日积月累。阿里是中国唯一一家拥有移动操作系统的公司,YunOS的设备数量已破亿,阿里移动端的技术实力随着业务移动转型的成功而与日俱增,现在它正在积极将这些能力开放出来。
除了日前开源的Atlas之外,阿里移动去年年中还开源了Weex。Weex是便于开发者构建跨平台UI的前端开源框架,其被应用在手机淘宝、天猫等多个阿里App中,双11数千个会场、产品和商家风格迥异的页面能够流畅展示,背后正式Weex在渲染。Weex一经开源就受到开发者的追捧,2016年12月15日,阿里巴巴宣布将Weex捐赠给Apache基金会开始孵化,相信Atlas开源之后也可能会被交给国际社区。
之前庄卓然(南天)曾透露,阿里无线技术拥有三驾马车,分别是适于大规模开发的容器化架构Atlas、移动网络通信环境ACCS以及多端移动应用开发环境Weex,阿里移动技术的三驾马车也已经成熟,现在,Weex和Atlas已先后开源,ACCS是否开源还有待观望。
马云在三年前说过这样一段话:
“从今天的局势来看,即使无线客户端风生水起,我们依旧应该坚持大力在云上投入。云端(Cloud +App)将是未来移动互联网的关键。”
现在看来,阿里巴巴不只是在云端实现了技术的开源,在端上也在走向开源,将无线端的技术优势开放出来,为全球移动开发者社区打造关键基础设施。
阿里如何成为中国开源的关键力量?
访问阿里巴巴在开源托管平台Github的页面可以看到它拥有上百个开源项目。去年云栖大会公布的数据是有115个开源项目,涉及到框架、组件、引擎、存储/数据库、系统、WebServer、中间件、工具、解决方案和设计诸多领域,其在开发者社区知名度和使用度比较高的有分布式key/value存储系统 Tair、TFS 分布式文件系统、消息中间件 RocketMQ、分布式计算系统 JStorm、淘宝Web服务器 Tengine等。去年阿里巴巴在开源上动作频频。中国顶级开源社区OSChina公布“2016年度最受欢迎中国开源软件评选”结果,TOP20中阿里巴巴占4席。
随着阿里巴巴移动端开源项目的逐步增多,阿里开源版图也更加完善。
除了开源项目越来越多之外,阿里巴巴近年来日益注重与全球开源社区的融合,为全球开源贡献力量的同时让阿里开源项目走向世界。其已加入FSF基金会、Apache基金会、Linux 基金会和Xen的顾问团队,现已经向Apache捐赠三个开源项目,分别是JStorm、RocketMQ和Weex。同时阿里巴巴还与国际顶尖的Docker社区、Hadoop社区等开源社区建立合作,还与Redis共同创办Redis中国社区。阿里巴巴已成为中国开源的重要力量,国际开源社区对其日益认可。
阿里巴巴在开源上还有一个特点是,阿里系所有业务都有开源意识。除了最具技术基因的阿里云有大量的开源项目之外,蚂蚁金服、手机淘宝、天猫都参与到了开源之中。2016年,被阿里收购的UC也贡献了一个开源项目:Node企业级基础框架。同时阿里巴巴也鼓励技术人员自行参与到开源社区贡献力量。
阿里巴巴对于开源的态度和行动超出各界预期,已成为中国开源社区的关键力量,并且已经开始有了国际化的意识,这无疑彻底改变了许多人对阿里巴巴“运营驱动”的古板影响。
阿里巴巴的开源版图从侧面证明了其技术实力。马云在云栖大会上提出的“五新”概念之一是“新技术”,阿里巴巴自己就是新技术的实践者,其在技术上的投入超过许多人的想象,它不只是在互联网应用技术上投入,还涉足量子计算、强化学习、数据库和手机操作系统等底层技术,近日阿里巴巴还公布了NASA计划,要为20年后的新经济储备核心科技,在德银报告中,2020年阿里云收入将占其整体收入四分之一,来自非电商业务的收入也将过半。可见,阿里不是电商公司而是科技公司,技术才是其长期核心竞争力。