本文为WOT2016互联网运维暨开发者大会现场干货。全新主题WOT2016企业安全技术峰会将于2016年6月24-25日在北京珠三角JW万豪酒店举行!我叫杨强,在阿里巴巴负责各种事情,从线下研发管理,发布流程,到质量保证,再到线上客户端监控,运维等等。今天想跟大家分享的是一些运营以及我们在手机淘宝端所做的相关维护优化工作。2012年加入手机淘宝后,发现APP端真的比PC端痛苦多了。第二,响应时间太慢,有时长达五六秒,这是用户无法接受的时间。还有功耗和流量消耗的问题。还有一些类似PC端的问题,比如页面加载异常或者一些安全问题。面对这么多需要解决的困难,解决的办法一定是发现,发现再解决,再看问题是否存在。说起来容易做起来难,但最终还是有很多复杂性。首先是模型的复杂性。据不完全统计,网上上市的机型有2万多种。如何保证我们的APP在这20000款机型上可用,对我们来说是一件非常困难的事情。我们收到用户反馈淘宝手机下单无法使用。我们离线试了一下。我们已经尝试了所有模型,它们可以离线使用。他们为什么不能使用它?***客户拿出黑莓手机说黑莓也可以用安卓APK。另一个问题是网络。对于网络的问题,所有的移动开发者可能会感到有点不知所措,因为这个网络第一是移动网络,第二用户使用的环境很多,比如在高铁上,在地下室或者在偏远山区等。在其他地方,我们必须保证这些场景下软件的高可用性。有了以上两个特点,再加上一些其他的原因,又产生了一个问题,而且还有很多小概率问题。因为我们的手机淘宝可能有几亿用户,但是有的时候会出现一些只有几百用户或者十几用户的问题。当发现问题时,需要重现定位。这种方法不像服务器。在服务器上弄个bug,看看服务器日志就够了。还要了解手机当时所处的环境。另一个问题是修复方法。客户端是通过应用市场发布和交付的,但是如果有问题怎么解决。现在一个APK可能是30M或40M,所以为了解决一个小bug而推一个30M或40M的包会花费很多。那么,我们如何应对和解决这些问题呢?首先是保证客户端的稳定性。我们做了几个:自定义各种聚类算法,多维度分析分发,按业务维度报警监控等,下面说说比较常见的错误监控。错误监控大致可以分为几类:第一肯定是网络层的,各种超时,各种检查失败等等。接口调用就是接口在网络上的调用,不管是网络层的故障还是业务层的故障,会有相应的监控。业务错误在最后。其实你这端有时候会有很多业务逻辑,所以我们会在这些逻辑上加一些监控点。数据错误是指有些数据本身可能是人为的,会因为代码的修改而造成格式改变或者数据量发生变化,所以我们还需要对数据本身进行分析和监控。本着节约成本,做大事的原则,我们把这些东西分出来。首先,实时告警可能是分钟级的,也可能是秒级的。就是保证这些关键的错误点,比如死机率,网络错误,一些业务错误,订单失败等等,各种这样的错误类型。那么我们可以利用阿里云的大数据计算服务来实现一小时或者半小时级别的监控,也就是每半小时或者每小时跑一个指标,然后和之前的数据进行对比。有了上面的监控、指标衡量等,就可以开始一些专项工作,推动一些问题的修复,甚至推动架构的改变。当然,我们会有一个主动监控系统,在功能层面、网络层面等,进行这种主动监控。说白了,我们会继续在线跑自动化案例,如果案例失败了,就会报警.说完技术监测,我想说的最重要的一点就是用户的反馈是非常非常重要的。举个简单的例子,假设APP在启动阶段最早出现问题。可能安装完之后根本就启动不了,什么感觉都没有。我应该怎么办?那只能通过用户的反馈,用户在主要市场上的反馈。我们在舆情系统做了几件事情,当然这只是为了用户反馈。首先,我们进行了分类标准,我们将其分为系统故障、体验问题、产品问题、客户咨询。我们通过舆情系统发现,然后进行干预、调查、修复。当你遇到一系列非常严重的业务逻辑错误时,你会怎么做?我们将进行动态部署。比较原来的旧包产生差异,然后发送到最后。***如果所有方法都失败,我们只能重新发布版本。当然,重新发布版本是有策略的。所以我们有一整套发布策略,可以用于发布、动态部署、Hotpatch配置等。智能化大规模人工管控,意味着在发布过程中,当APP体量非常大时,不可能一下子全部发布。先发一个版本,看指标,系统指标合格,再上传,不断加量,这是一个逐渐变灰的过程。***是全量,一种push和pull相结合的方式。pull是拉取接口,push是从channel中推送消息,然后接收消息。时效性高也可能会给服务器带来很大的压力,所以这种推拉结合的方式可以提高我们的到达率。综上所述,我们会有实时告警,离线分析,用户反馈分析,实时日志分析,服务端分布式调用链路分析,一整套故障解决方案。不断优化线下质保体系、发布策略、发布流程等,现阶段虽然做了一些工作,但可能还没有那么完善。我们一直在努力打造一套端到端的运维分析工具。我完成了,谢谢大家!本文整理自阿里资深技术专家杨强在自媒体主办的WOT2016互联网运维暨开发者大会上关于《移动APP质量保障工作》主题的精彩演讲。讲座视频:http://edu.51cto.com/lesson/id-100756.html讲师简介:杨强,2012年加入阿里巴巴,负责无线产品研发支持及无线在线监控相关工作运维平台。支持淘宝、天猫、聚划算、钉钉等阿里巴巴内部APP的研发支持和在线监控运维。
