2016年4月14-15日,由51CTO传媒主办的WOT2016互联网运维与开发者大会在北京珠三角JW万豪酒店召开。秉承专注技术、服务技术 人员的理念,自2012年以来,WOT品牌大会已经成功举办了八届,积累了大量的技术专家资源,获得了广大IT从业者和技术爱好者的一致认可,成为了业界重要的技术分享交流平台以及人脉拓展平台。
在会上,51TO记者采访了阿里巴巴高级技术专家杨强。杨强2012年加入阿里巴巴,负责无线产品的研发支撑与无线线上监控运维相关平台相关工作。支持了手淘、天猫、聚划算、钉钉等阿里巴巴内部APP的研发支撑和线上监控运维相关工作。工作初期是一些质量保证平台工具的开发,进而构建了一套线下研发支撑以及发布流程的体系,再往后扩展,可以对端上进行一些运维以及专项优化的工作等等,从而形成一个闭环。
移动质量保障和传统PC运维的差异性
随着移动互联网的大发展,在手机等小屏设备上的应用体验和PC互联网彼此之间的差异正变得越来越大,那么从事移动质量保障工作和传统PC运维之间有什么差异呢?杨强告诉记者其实从代码角度来看差距并不大,最重要的差距就是在环境上,用户的环境在移动端上是非常多样化的,比如它的机型、它的网络环境,以及机器内部装的各种软件的情况,环境的复杂度提高了,对我们开发代码的质量可能有一定的要求,来保证APP的稳定性。
研发到交付的流程
提到流程为题,杨强表示阿里巴巴APP研发到交互和传统服务端是非常相似的,但是唯一一点,像手机淘宝这一块,它可能是非常大的一个APP,传统小的APP有一套单独的功能,一个APP开发完了就发布出去。手机淘宝可能是五六十个APP在同时开发,最终汇总到一个APK上,或者一个LSIPA上进行发布出去,所有业务团队线最终会聚集到一个点上进行发布,这可能是***的区别,而且它的回滚策略以及故障修复的策略也有很大的不同。
难点与如何克服
当然在具体工作上,一些困难也是必不可免的。杨强举例说:比如有一次我做了一个月的项目,进行大量的测试工作,到***发出去,发现在某一款热门机型上,它的某一个重要功能不能用,这个时候我就要重新组织很多很多的人力进行恢复,然后打出来新的APK包,进行回归测试等等要走非常长的流程,然后再进行发布。
当然,吃一堑长一智。为了应对这些流程上的问题,后期在架构上进行了优化。之前只能由APK发布出去解决问题,现在有多种方案,有推patch、hotpatch来部署等等这种策略,极大的轻量化了修复bug的成本。最近又推WEEX,业务都写在JS上,APK端的功能也像服务端一样在服务端发布,这样就避开了移动端的问题。
注重用户体验
阿里巴巴是一家重视用户体验的公司,从app的开发和维护来说,会有一套非常严格的测试流程,会有非常多的测试工具。比如说有代码扫描工具、自动化平台,有试配的平台,还有一些内存的专项、性能的专项,各种方面的专项的保证工作。接下来我们会进行一种内部的体验测试,内部用户会反馈给我们问题,然后我们会针对阿里巴巴3万多名员工进行内部的灰度测试,在3万量级上看这个APK到底是怎么样的情况,然后分阶段进行不同批次的灰度,最终进行发布。
当然技术和流程上的优化及提高,也进一步提升了用户体验。杨强举例道,比如我们之前可能就是说五六十个APP打到一个包里面,随着我们配置文件hotpotch,或者其他的业务迭代的需求,现有框架不能满足,这个时候就要动态部署技术发挥作用了。我们把单个的APP进行生成一个差量文件推动下去,在本地进行默置,然后再启动起来,就达到了非常高效的netive代码部署的策略。
采访***
记者问及传统IT运维应该如何做才能跟上新型业务的步伐的问题。杨强认为,在现在业务发展非常快速的情况下,各个部门应该是紧密合作的,所以运维、测试和开发之间的关系,应该是没有隔阂的。在他看来,开发和测试是不是应该更多的关注运维相关的工作,可能是需要解决的一个问题。
“而在阿里内部,平台也好,专项优化也好,都是和研发团队紧密结合起来的,所以发现问题、解决问题,以及提出来新的解决方案的效率是非常高效的。”杨强说道。