一文纵览EMAS 到底内含多少阿里核心技术能力

申请阿里云EMAS,体验一站式移动研发平台,更多精彩尽在开发者会场后端

EMAS的总体定位是阿里巴巴移动技术对外输出的主窗口,沉淀了阿里巴巴近10年在移动互联网技术架构上的积累以及在一系列垂直场景中所实践的核心技术能力。一方面,EMAS但愿为广大开发者提供安全、稳定、快速、弹性的移动应用基础设施,另外一方面也但愿帮助广大中小企业、初创团队以及处于“互联网+”转型阶段的传统企业构建工程化、系统化、智能化的企业级移动互联网研发体系,并将近十年来阿里巴巴在移动互联网总结和沉淀的一系列方法论分享给业界。浏览器

从2015年第一个产品公测开始,到目前为止EMAS总共服务了近14亿移动终端设备、20万App以及10万移动开发者,在必定程度上也影响了整个国内移动开发生态的发展。缓存

随着技术形态的不断演进,移动互联网已经成为全球商务生态系统当中不可或缺的一部分。用一句话形容EMAS的愿景就是“30天和你一块儿再造一个手机淘宝”。这背后的含义就是不管规模多小的创业团队均可以基于EMAS的服务快速便捷地拥有像手机淘宝、支付宝同样完善的基础设施,能够低成本地拥抱移动互联时代。当前EMAS处在快速向前迭代发展的阶段,将来也会有愈来愈多的阿里巴巴集团内部优秀的移动基础服务经过EMAS平台对外开放。目前EMAS开放了一个研发支撑平台、九大公共云产品服务、五种场景解决方案以及两种专有云产品服务。安全

EMAS将整个移动应用开发划分红了5个职能域:项目域、工程域、构建域、运维域和运营域,而且面向这5个职能域造成了移动中间件基础解决方案。微信

在解决方案环节,阿里巴巴已经开源了面向Android的应用容器Altlas以及跨平台的UI开发框架Weex,围绕这些开发框架也会提供相应的商业化版本解决方案,帮助开发者更便捷地完成App的建立和管理。经过端+云的紧密配合为移动开发者提供全链路端到端的移动研发解决方案。在专有云环节提供了面向传统企业开发企业级应用研发服务EMAS,但愿打包整个阿里巴巴集团近10年移动互联网研发体系的积累,并以SaaS化的服务形态一键复制咱们的能力、经验,咱们的流程、机制和方法论,但愿帮助更多的传统企业快速地完成业务移动化的转型升级目标。网络

基于上述提到的这一套端到端的全链路移动应用研发体系,阿里巴巴也提出了一种新的移动App研发范式——Cloud Native App。架构

传统的Cloud Native概念主要是面向后端应用的,利用容器、微服务、持续集成、持续构建以及DevOps这一套云化的架构来构建应用,其本质则是一套应用构建的方法论,怎样充分地利用云计算服务模型的优点来低成本、快速地构建弹性的应用,这样一套方法论在移动App场景中一样适用。好比基于面向移动端Serverless的架构实现App运行环境的透明化和按需扩展,基于云上开放的移动App DevOps实现研发流程流水化,支撑应用的高效交付,基于云上的移动中间件体系实现全部的基础设施服务化,按量付费,基于Weex/Atlas赋能应用,真正实现大型App组件化和跨平台的能力。这样一套Cloud Native App研发范式可以真正帮助开发者去下降业务自己的技术风险,把本身有限的资源投入在和自己业务快速增加的工做上。框架

接下来分享阿里巴巴在移动App的研发关键路径上所开放出来的一系列的核心能力,主要分为了几个关键环节:网络、消息与数据、应用质量和高可用以及企业级移动应用研发服务EMAS。less

(一)网络运维

网络是全部移动App很是关键的基础模块。Google以前对搜索系统有作过相应的统计评测,搜索系统延迟每上升400毫秒,搜索量业务量就会下降0.59%,虽然这一相对值看似比较低,可是在Google搜索体量背后也是很是大的损耗。雅虎总体Web系统的延迟每上升400毫秒,流量就会降低5%到9%;Bing延迟每上升2秒,总体收入降低4.3%;而对于Mozilla,延迟每下降2.2秒,下载量就会提高15.4%。因此说网络这个环节不只仅和移动端体验息息相关,同时也直接决定着产品的核心商业指标状况。

在网络环节,阿里巴巴也有很是深厚的沉淀。首先从网络最开始的阶段、最前置的环节来看就是流量调度和域名解析。传统DNS解析体系存在不少问题,好比域名劫持的问题,以及因为自己的调度精准性带来的网络访问质量下降的问题,还有在移动场景自己域名解析的延迟有200毫秒左右,而这样的延迟对于自己用户网络访问也会带来必定的体验上的损耗。传统基于B/S架构浏览器的Web应用,对于开发者而言都是黑盒,很难针对网络环节进行优化,到了移动互联网时代,移动App基本上以C/S架构形态构建的,这样一个形态和架构特性意味着有更多的针对客户端的定制和优化的空间。在这样的背景下,HTTPDNS应运而生,它替代了传统DNS解析路径的服务质量最不可控的LocalDNS环节。

HTTPDNS有如下几个特性:

• 防劫持,由于LocalDNS环节每每没有商业化的SLA保障,而经过这样的方式能够完全地规避域名劫持问题。同时基于全网的BGP Anycast的部署能够实现全网客户端就近接入的能力,同时经过遍布全网的多机房的容灾能够保障商业化的服务SLA。另一方面,HTTPDNS和权威DNS之间也是经过EDNS进行直连的,这意味着能够基于客户端IP进行精准调度。在传统的DNS体系中,通常权威DNS进行调度的时候是基于LocalDNS代理节点进行调度的,一旦LocalDNS的分布不是很均匀,就会下降CDN域名解析等的精准性。

• 0延迟解析,由于移动App是C/S架构的,因此在端上会提供SDK,能够经过像预解析、智能缓存、懒加载等特性把每一次DNS解析延迟从用户网络请求当中抽离出来异步地在后台进行实现,这样能够在真正意义实现零延迟解析,进而下降每次网络请求的延迟开销。

• 解析变动秒级生效,因为HTTPDNS和权威DNS之间是存在相应的交互的,解析域名的实时变动能够同步到HTTPDNS这边,这样全网变动秒级生效在传统DNS体系下是没法实现的,这是由于LocalDNS自己会进行IP缓存,不少时候对于IP缓存并不遵循标准TTL协议,因此会致使了变革在全网生效有很大的延迟。

• 软件定义解析能力,经过这个能力用户能够基于本身业务诉求来进行自定义的流量调度,这样的能力在A/B Test、版本灰度以及安全流量调度等场景下都有很大的利用空间。

• 基于如今对于网络流量数据的评测,HTTPDNS已经成为整个移动互联网中很是重要的域名解析和流量调度的基础设施。

域名解析以后就是网络请求的主体环节。对比有线网络,移动网络一个很重要的特色就是多了一个移动链路环节,其总体丢包率、稳定性以及延迟对于有线网络都有所不足。一般称这个链路为Lastmile,如何解决Lastmile通讯效率的问题也是移动网络优化最为核心的课题。对于普通的开发者而言,整个网络链路是以黑盒形态存在的,因此开发者针对网络形态所能作的网络优化的空间是很是有限的,若是须要专门针对移动网络进行优化则须要聘请相应的专家针对协议层面进行相应的优化,因此总体资源的投入和维系的成本以及门槛也是比较高的。基于此,阿里巴巴也会开放内部的网络优化体系——移动加速服务,但愿可以从端、管、云三个层面帮助开发者完成App网络总体立体式优化。

传统的App网络访问链路从客户端发出请求是经过公网路由进行原站访问的,而经过移动加速,App发出网络请求首先会就近接入遍布全网的加速节点,经过加速网络进行快速的路由选择再回原站访问。这样的总体收益就来自如下三个方面:

• 在“端”方面,移动云会提供网络托管SDK,经过托管SDK和加速节点配合,真正意义上构建双端加速模型。传统CDN是典型的单端加速模型,而双端加速模型的一个很重要的优点就是从客户端到加速节点之间的链路因为双端都有控制,能够进行传输协议的协商和实现。在这样一个双端加速模型上能够针对传统四层的TCB协议的一些缺陷进行深度优化定制。

• 在“管”方面,移动云拥有遍及全网的海量就近接入节点,在带宽以及链路等方面质量都是很是优异的。同时,传统CDN是短链接的形态,每次发起的业务请求在结束以后可能就被释放掉了。而在移动加速场景下,从客户端到加速节点到原站之间实现了全链路的长链接,能够大幅度削减在网络通讯过程当中的三次握手以及安全握手等冗余的开销。另外在动态路由方面,全网会有海量的加速节点,经过这些加速节点能够实时地、智能地去计算从就近加速节点到用户原站之间应该经过怎样的路由使得总体的延时更优化,进而下降每次网络访问的延迟。

• 在“云”方面,传统CDN实现的功能是静态资源的缓存、分发能力,一样的移动加速会继承传统CDN静态资源缓存分发能力,同时对于像HTML、JS、CSS等面向Web化的资源也会进行动态的资源优化,进一步压缩链路上网络带宽的诉求,提高网络访问的效率。

对比于传统的CDN,移动加速就是CDN面向移动场景的解决方案。在双端加速模型,的背景下,能够针对访问链路进行协议定制优化,同时在链接层面能够实现真正意义上的全链路的长链接,大幅削减安全握手、三次握手等冗余开销。加速网络内部在端上引入机器学习的元素,能够经过智能判断分析对于当前的客户所处的当前环境到底应该选择使用加速链路仍是公网路由。基于双端加速模型,能够进行优化定制,对于HTTPS的加密协议也能够进行深度定制,能够实现效率上的提高。

除了域名解析和网络优化以外,移动网络还有很是多的场景诉求,好比说网络拨测、网络体系监控、资源上传、远程调用、网络诊断等,移动网络自己是内聚性很是强的闭环场景。App对网络诉求能够用四个关键词归纳:高速、稳定、可控,可视。

(二)消息与数据

移动互联网进入到下半场,人口流量红利也在慢慢退去,如何实现更精准的客户触达和留存成为每个产品最核心的运营指标。若是说你们以前有关注过手淘的“双11”会场页面会发现手淘已经实现了“千人千面”能力,同时基于数据智能消息推送系统在线上运转多年而且取得了很是好的成绩。如今阿里巴巴也会把这些产品能力背后的核心技术开放出来,帮助你们实现对于客户的拉新、促活、留存和转化。

面向运营域,阿里巴巴会开放经历多年“双11”历练的消息推送系统。在送达方面开放整个阿里系共享的消息推送通道,结合厂商合做伙伴提供的基于多消息推送通道的通送解决方案保障总体送达效果。延迟方面,会针对移动网络场景进行深度优化和定制,同时面向IOS推送场景提供相应的中美高速通道专线,保障每一次任务的及时下发和网络秒级应答。在流量方面,每秒百万级别消息设备的吞吐率意味着在面对相似“双11”这样的强脉冲计算的场景下,也可以及时地对于推送业务进行应答。

除了传统PaaS层推送通道以外还会进一步开放复合推送的能力,基于移动推送+短信推送组合面向客户提供更弹性的触达终端用户的解决方案。在复合推送的模型下,优先经过应用链的消息推送进行客户触达,在消息推送没有办法触达客户的状况下就经过短信推送进行补偿。一方面能够利用短信推送的高触达率保障营销任务的触达效果,另一方面也能够利用消息推送自己的低成本进一步地下降营销任务背后的成本开销。

阿里巴巴也会进一步开放集团内部的基于大数据的智能推送的能力,基于个性化推荐引擎能够构建企业完整的用户画像,基于用户画像标签、终端用户地理位置信息、终端状态信息以及每一次推送具体的内容等多个输入源进行智能的设备圈选,有效地提高推送的精准度,可以帮助客户实现真正意义上基于大数据的精准定向营销。

(三)应用质量和高可用

移动互联网发展到今天已经累积了几万款移动终端设备,海量的机型和操做系统以及分辨率构成的配置组合给移动应用自己的质量保障带来很是大的挑战。

传统测试模式基于人工,无论在测试覆盖度、测试效率,仍是Bug检出率方面已经没法彻底应对测试自己复杂度的指数级增加。基于这样背景阿里巴巴开放了内部的真机测试服务平台——移动测试服务,其包括了真机适配、功能自动化、云端调试、在线录制、性能测试以及H5测试等方面的能力,但愿可以从公共云和专有云两个渠道帮助不一样诉求的客户一块儿保障移动App高质量的交付。

移动云面向移动App还推出了线上问题一键热修复的解决方案Sophix,针对Native App发版节奏慢,更新周期长的问题提供端到端一体化的热修复解决方案,Sophix能够面向代码、资源、SO文件三个维度进行修复,接入成本很是低廉,对应用没有侵入,几行代码能够完成总体接入,补丁包采用差量技术进行更新,从Patch生成、灰度、线上发布和统计可以帮助开发者实现一站式线上故障应急处理的解决方案。

移动应用质量管理高可用这个体系相似于上述的移动网络体系,也是内聚性很是强的闭环场景,在这样的场景内阿里巴巴沉淀了很是多的能力,好比数据挖掘、分析梳理、面向终端日志采集分析处理等等。

(四)企业业务移动化

除了上述提到的公有云开放的几个场景能力以外,面向专有云、传统企业、面向企业移动化浪潮,阿里巴巴也会开放相应的解决方案。

传统企业进行业务移动化过程当中会面对各类各样的研发协同挑战,存在着不少面和点的问题,为了应对这些问题,阿里巴巴开放了企业级移动应用研发服务EMAS。对于传统企业而言企业“互联网+”的标志是研发体系的互联网化,单纯在资源层面经过云上虚拟机替换传统的物理机并不能带来本质的变革,只有真正实现了传统体系内部研发体系的“互联网+”的升级,才可以真正为传统企业内部研发效能的提高带来质的变化。EMAS但愿打包整合阿里巴巴近十年研发体系以及能力、经验的积累,但愿帮助更多的传统企业快速构建工程化的移动应用研发体系,完成企业业务移动化的转型升级目标。

EMAS研发支撑平台覆盖从研发管理到持续集成、自动化测试、版本管理、灰度发布、监控大盘、系统运维、用户运营等完整的全流程生命周期管理,是移动互联网沉淀的这套流程、机制、方法论很重要的载体。同时配合在云上提供的移动中间件基础服务体系,能够从真正意义上面向开发者提供移动应用研发全栈解决方案。

上图所示的就是完整版的EMAS能力交付的全景图,除了刚才介绍的传统从端+云+数据这样一套能力栈中轴以外,也会开放阿里巴巴沉淀的软能力,帮助研发者构建软硬一体化完善的研发体系。

 

原文连接 更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

相关文章
相关标签/搜索