揭秘移动研发平台EMAS的前世今生
揭秘移动研发平台EMAS的前世今生
EMAS(Enterprise Mobile Application Studio)是一个面向企业的移动研发平台,基于阿里巴巴移动互联网近十年技术积累打造而成,旨在让企业移动研发由难变易、化繁为简。
那么,EMAS到底是如何产生的呢?读完接下来的这篇文章,相信你会有对EMAS有更详尽的了解。
本文基于2017杭州云栖大会阿里移动云峰会阿里资深技术专家天施带来《阿里移动技术Overview》的演讲整理而成。本文主要对移动十年进行总结,进而回顾了阿里这几年的移动技术变迁,包括Mobile First & SuperAPP基本原则、技术创新推动组织升级以及移动研发平台EMAS的开启,最后对移动未来进行了展望。
同时,我们也为读者提供了EMAS抢先免费体验机会,具体详情请参见文末。
移动技术曲线
图为Gartner创新技术曲线,分为几个阶段:一个是创新萌发期,然后是期望膨胀间,行业建设和预期进入高潮,形成投资泡沫,之后的下降幻灭低谷期,然后再是一个稳步爬升的期,最后进入生产力成熟的高原期。
今天来看,移动技术到底是走到了生产力成熟高原期,还是稳步爬升期,这个是值得我们花时间深入思考的。今年业界都在谈AI谈深度学习,一时间蔚然成风,我们更需要理性来看待移动技术。
移动技术阶段
第一:Less APP阶段,就是非智能机,空间很小,内存很小,都是WAP,那个时候没有什么应用,都是PC First。
第二: APP First阶段,这个时代开始到移动互联网的转型,阿里整个集团All in 无线。
第三:Super APP阶段,2014年、2015年,很多公司喜欢把所有服务通过一个超级APP提供给业界消费者,所有东西都放在一个APP中,在中国叫做超级 APP,线上流量获取成本很高,竞争态势非常激烈,包括微信小程序是这样思路下走到极致。
第四:AI First,大家都谈AI,AI对移动开发影响怎么样? 我个人觉得关键在于AI能否在移动端给予消费者超出预期的体验,做到过去做不到的事情。就像苹果iPhoneX刷脸解锁,让千千万万普遍消费者很方便就体验到了AI带来体验上的变化。我相信明年这个事情尤其移动AI会非常迅速,大公司会提供出AI开放能力含移动AI,开发者可以利用这些能力很方便做出很多好玩的事情。
小结:
技术之争本质是效率和开发者(用户)之争。
从非智能机到APP时代再到AI时代,站在技术层面框架、语言、工具、平台都被改变了,相应围绕的生态和开发者都在被不断变化。作为一名技术人员,我的感受特别深,这十年移动开发通过大家的不断努力变得更成熟、规范、分层清晰,像Weex/RN和小程序框架出现就是一个很好的例子,通过一层标准的DSL和API,将上层的业务开发与底层容器实现解耦比较彻底,从而达到客户端与前端专业分工的地步,推动了移动业务研发效率的提升。
以前我们经常形容移动开发是一个汉堡包,框架和底层OS、系统的framework都是耦合在一起的,开发起来效率很低,开发人员要解决很多trick的东西,APP开发行业实际上是以一个传统软件开发模式来做移动互联网的业务,这个其实是比较讽刺的。
移动关键技术(行业回顾)
第一, 网络链接,从PC到移动时代开发APP,你需要把线上业务服务透给移动端访问首先要解决移动网络访问问题,会遇到很多运营商相关、弱网优化、穿透劫持方面的问题。
第二:插件化,热修复,有了业务后线上出问题如何快速线上修复止血。
第三:Weex、小程序,跨平台用HTML方式来写移动的业务,更快研发效率和动态性。
第四:美颜滤镜,美图类软件,拍照效果怎么更好更美。
第五,直播、短视频,从图片到视频。
第六,AR,增强现实、3D渲染、空间定位,构造更酷效果和体验。
从效率为王过渡到体验为王,甚至AI智能驱动的过程。
回到阿里
移动技术经历哪些阶段:
2011年-2013年探索期,到2014年-2016年高速发展期,我们觉得基础移动技术趋向于成熟、有一定范式,甚至把它作为一个解决方案给业界,包括:
1、研发框架的标准化,组件化到WEEX动态化、小程序。
2、架构治理从手工case by case 到可以平台化、数据驱动来解决客户端遇到的性能、卡顿、闪退问题。大家知道稍微大APP需要投入很多人力来保障稳定性和基础体验,而且通常是最优秀的程序员,这个成本其实很高。
风起于青萍之末,成熟之余变革也随之到来,AI到来不光是对移动技术栈要求产生了变化,对产品业务上如何结合端上数据和特性帮助用户构建更好体验也提出了更高要求。随着传感器技术快速发展、计算能力提升、深度学习算法突破,交互创新新探索,未来APP体验、形态都会产生很大变化。远的不说,直播就是很好例子,结合连麦等新技术会出现一些不一样的创新体验。
手淘这些年,移动业务和技术坚持的几个大的原则:
Mobile First Super APP 基本原则
从最早是否做一堆电商垂直行业APP(男装、女装、家居),还是集合力量去打造一个超级应用,内部有过不少争议。最终决定,集合一堆电商低频的服务,集中用户的访问频次,来打造一个相对高频的超级应用。这样一个决定对于技术来说,就是如何支撑整个公司的大大小小几十个业务部门一起在一个手淘应用快速便捷地开发应用且保障APP的基础体验和稳定性。
这是手淘历程,最早是WAP,一直到Native APP,后来变成一个电商的超级APP,一直到今天既是一个电商的平台,也是一个内容媒体的平台,更是生活消费的社区,淘宝里面内容越来越丰富、好玩、符合年轻人的品味,这也是淘宝这几年一直在努力做的事情。淘宝也从过去运营驱动变成产品驱动,重视消费者和商家体验。
技术上就是坚持中长线投资然后死磕到底,比如容器架构,2013年就决定要做这样一个架构,甚至14年中间把业务停了下来做大规模架构改造,然后不断完善死磕一直到现在。今天回过头来看我们已经做到的事情,绝大多数在2014年讨论移动领域我们要在哪些方面大投入的时候就已经定了下来,接下来几年只是我们坚持住了,找到了对的人,不断在业务量死磕尝试把这些技术做了出来。这就是淘宝移动技术的特色,因为相信所以看见。我们Atlas、Weex、accs、热修复、移动端APM技术都是这样出来的。我们也特别相信技术的力量,相信数据和平台化的力量,希望用通用方式来解决客户端领域的技术问题,进而服务更多的开发者。
技术创新推动组织升级
业界很多公司做一个APP基本都有客户端团队,一般有几个组包括iOS组、Android组、架构组(可能有),还有个后台组。手淘过去也这样,但在 Atlas 出来后很早就驱动了我们组织架构的升级。
图为Atlas框架将OSGI的思想落地到移动端,解决了移动端大规模业务并行开发问题,让阿里巴巴电商相关的业务部门能够在一个手机淘宝里并行研发、快速交付和持续迭代,我们上半年将这个框架开源出来,业界反响还不错。
Atlas可以让各个业务模块相互隔离,开发的时候都是单独开发,集成的时候也是单独集成,发布时候可以自己发布和动态部署,完全是每个业务模块关注自己事情就可以了。这其实是架构思想的升级,让移动端研发第一次走出了作坊式模式。
今天手淘iOS有 273个bundle,安卓有393个bundle,我们支持了大量业务团队。我们有一个架构组,支持iOS、安卓的业务在上面快速开发,淘宝一个服务端团队调后端服务,移动的团队和PC团队是不在一起的,最早很多公司都是这样的,但是我们有一个横向的架构组支持客户端的同学快速开发,就是因为有Atlas。
我们这个团队叫做“基础平台”,一个技术平台光有端上开发框架是不够的,一定在移动后端服务方面有哪些能力可以帮助业务团队快速服务化、构建想要功能。
我们做了几个事情:
1、接入和网关 ,解决接入问题、服务透出问题。
2、移动场景中间件服务,配置、推送、订阅、sync、IM等,基于移动业务场景抽象出一些通用的服务出来。
3、实时通讯、媒体通讯,有没有一些高效中间件或解决方案,让之上媒体互动业务可以组装和编排、二次开发,体验更好。
这样我们从端架构组变成了一个Mobile Platform,移动基础技术平台,我们已经没有纯粹客户端团队,比如说某个业务技术团队负责媒体,就是一个前后一体化的团队,包括客户端后端前端,为业务目标负责。底下基础平台团队负责端到端能力的确定性、客户端基础体验保障、研发效率提升。同时在Mobile Platform之上会有很多沉淀多年业务平台,比如交易平台、媒体平台、消息平台等。
谈到Weex,到今天我个人理解Weex应该是更适合移动应用跨平台渲染引擎,比传统浏览器更合适,浏览器还是一个PC思路延展到移动端,Weex没有这个包袱彻底移动优先。我们还是希望把Weex做成新一代Mobile First跨平台渲染引擎,这个里面有大量技术工作需要去探索、标准需要重新定义,在这条路上我们已经走了三年,我们还会持续做下去。
我们去年Weex开源走很快,从16年双11会场2000个页面,到今年几万个页面,内部从只手淘天猫到基本覆盖30+核心 APP 。开源社区也有不少数量的 APP ,这样一个项目生命力很强,最近看到腾讯、网易团队也开始参与到这个社区,说明做开源这个事情、我们的初心是没有问题的,也让我们有了更多动力。
Weex 出来后,阿里内部前端同学能力得到了放大,从过去只能写H5写活动,到今天可以做很多产品–淘宝里很多用户产品都是Weex写的。慢慢客户端开始下沉,跟前端分工明确,移动基础技术平台越来越下沉成为淘宝的基础设施,前端同学基于过去淘宝前端技术平台可以很快速的构建业务,这个过程也是阿里定义整个大前端落地实践的过程。
移动研发平台EMAS
我们把过去这套东西总结成一套解决方案,覆盖了移动APP开发的整个域,从项目域,到研发域、构建域、运维域、运营域,以及我们的工程理念(组件化、数据化、平台化、效率驱动、体验至上)把这样一整体技术和平台产品化给到业界。
这样一个企业级研发服务叫做EMAS,我们希望通过EMAS让大家做移动APP开发更简单,不要在研发效率上苦恼,不要在真机测试、性能优化、线上bug修复上痛苦,降低大家的投入成本,做出更好体验的应用,集中精力在业务和创新、数字化转型上,帮助大家在未来竞争中跑的更快。我们在这个事情上有自己使命感,我们认为只有阿里巴巴、只有手淘联合移动云才能够把这个东西比较扎实的打造出来给整个业界。
EMAS三个特点:
1、公有云和专有云全覆盖,满足企业多层次需求;
2、一站式快速研发、移动网了即服务、移动质量即服务;
3、目前立足移动研发PaaS,未来会从PaaS到SaaS;
移动质量即服务:
我们认为今天移动测试只是发现一些兼容性问题是远远不够的,今天国内的APP都在不断做加法里面塞了很多东西,质量保障是很有挑战的问题。移动质量我认为不仅仅要发现兼容性的问题,另外能不能发现性能、卡顿、闪退问题,能不能通过标准化的方案,通过端上数据采集做的自动分析哪一个代码有问题、甚至做对自动修复,这个才是我理解的移动质量服务。
从PaaS到SaaS:
今天我们把阿里内部移动研发PaaS产品化赋能给到企业,但我们也知道这个远远不够。未来我们也希望成为一个渠道,将企业需求跟阿里内部诸多构建在我们平台上的业务SaaS链接起来,让这些业务SaaS能够很方便甚至无缝输出到阿里经济体生态合作伙伴。帮助这些企业从业务生产解决开发问题,快速进化到具备数字化、智能运营能力,加速互联网数字化转型。
展望未来
Atlas是我们第一次定义超级APP研发框架,然后到Weex是一次升级,再到今天移动云EMAS–“我们定义符合云原生理念Cloud Native APP框架(不仅是端到端,还有云上的容器、微服务)”,再到未来是什么呢?是否是智能APP时代,一切需要大家去尝试探索、重新定义。
谈一下跟智能化APP相关移动AI,从年初F8 Caffe2开源到最近华为、苹果、寒武纪,大家都在搞这块,有芯片有框架有应用。端计算在低延时、隐私保护、离线运行确实有不少优势,更重要是DL从云端开始有往端上迁移的趋势,相信2018年这个方向业界会出来更多杀手级应用。
谈下技术,端AI对整个技术栈改变是全方位的,从底层芯片(计算机体系结构)、指令计算优化、编译器&链接器,上层编程语言、配套软件和工具、到更上层应用、应用场景和开发者生态都会被改变。未来已来,AI正在改变我们熟知的一切。
回顾移动这十年,其实是整个体系从底层芯片、OS、框架、语言、工具、应用生态不断完善成熟的十年。
未来充满不确定性,但确定的是有很多事情可以去做,我们看到一些框架、语言、工具,既有很多和以前不一样的东西,也有很多和过去一样的东西,行业在发生变化,我们会竭尽所能把工具也好、服务也好,在恰当的时候给业界,赋能整个业界的开发者。
精彩预告
3月29日,企业移动研发平台 EMAS 将乘着云栖大会一起来到物联网之都深圳,开启2018年的云栖之旅。
我们希望借云栖深圳大会向大家全盘呈现 EMAS 的完整能力及面向不同行业的场景解决方案,为万物互联的产业创新注入新的动能。诚挚的邀请大家来到
云栖大会(深圳站)EMAS专场-移动互联的进化论
现场,一起交流分享阿里巴巴最新的工程研发理念,更有机会获得 EMAS 抢先免费体验机会,让企业移动研发由难变易、化繁为简。
还等什么?
扫描二维码/点击阅读原文
立刻报名