移动端应用运维管控方案_第1页
移动端应用运维管控方案_第2页
移动端应用运维管控方案_第3页
移动端应用运维管控方案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动端应用运维管控方案1方案概述1.1方案编制背景我做移动端应用运维快八年了,这些年眼看着大大小小的企业从只有网页服务,到都做了自己的移动端APP——不管是给外部客户用的服务、交易类APP,还是给内部员工用的办公协同类APP,运维管控这块一直是很多团队的短板。我自己也踩过无数坑:早些年我们公司对外的服务APP刚上线做拉新活动,开发说都测好了没问题,结果活动一上线流量翻了五倍,直接把服务器干崩了,三个小时都没完全恢复,客服电话被打爆,最后光给用户发补偿就花了不少钱,品牌口碑也受了影响。还有一次内部办公APP更新版本,开发只测了旗舰手机,没想到占用户量三成的中低端旧安卓机全都闪退,那天全公司报销、审批全停,差点耽误了大项目的付款流程。从那之后我就琢磨,移动端运维不能再是“上线之后出问题再救火”的被动模式,得做一套全流程覆盖的管控方案,把风险前置,出问题能快速解决,解决完还能避免再犯,这套方案就是我们团队踩了无数坑、改了四五次才整理出来的,适合绝大多数自有移动端应用的企业使用,不管是原生开发还是混合开发的APP都能套用。1.2方案总体目标这套方案的核心目标说直白点,就是三个:第一是把绝大多数问题消灭在上线之前,把APP的故障率降下来,别让我们运维天天加班救火;第二是真出了问题,能快速定位、快速解决,把对用户的影响降到最小;第三是沉淀运维经验,形成闭环的长效机制,让每一次出问题都能帮我们把体系补得更完善,越做越省心。说大点,最终就是要保障用户体验,不管是外部客户还是内部员工,打开APP就能稳定用,不用动不动就出问题闹心,我们做运维的也能睡个安稳觉。2事前运维管控体系搭建说完了整体目标,我先说说最基础也最重要的事前管控——我现在真的深信不疑,事前多花一天功夫,能省事后一个星期的加班,把该做的准备工作做在前面,百分之七八十的问题根本就不会发生。2.1开发阶段提前介入管控很多团队都觉得运维是上线之后的事,开发做完了扔给运维就行,这是大错特错的。我们现在的规则是,从需求评审阶段运维就要参与进去,从运维角度提要求。比如说做新功能,我们会提前问清楚:这个功能会不会占用过多的手机运行内存?会不会和已有的核心功能产生冲突?针对不同品牌、不同版本的系统有没有适配计划?安卓碎片化这么严重,从低版本到最新版,iOS各种大版本更新,这些都得提前说到明面上,要求开发预留适配的时间。另外还有一个很容易忽略的点,就是梳理第三方依赖,我们现在用的移动端APP,大多都会用到第三方的服务,比如消息推送、第三方支付、地图定位、实名认证这些,这些第三方出问题,我们的APP也用不了。所以开发阶段我们就会把所有第三方依赖一条一条列出来,每个依赖都提前准备好备用方案,比如常用的推送通道,我们会同时备两家,真的一家出问题了,十分钟就能切到另一家,不用手忙脚乱找不到替代方案。2.2上线前多维度预检管控开发做完功能测试,轮到我们运维做上线前的预检,这一步绝对不能省。我们现在的预检有三个核心维度:第一个是兼容性预检,我们不会只测开发手里的旗舰机,会把目前市场占比超过1%的所有手机型号、系统版本都覆盖到,不管是新出的折叠屏,还是用户手里用了三四年的旧安卓,都得测一遍,我有时候还会拿家里长辈用的旧手机测,很多旧手机的系统配置低,最容易出闪退、卡加载的问题,提前测出来提前改,比上线之后几百个用户投诉过来再改要好太多。第二个是性能压力预检,尤其是对外C端的APP,搞活动之前必须做压力测试,模拟比预期峰值流量高30%的并发量,测一测APP的响应时间、崩溃率,服务器能不能扛得住,我们要求必须留足30%的余量,就是防着活动突然爆火,流量超出预期,不至于直接崩盘。第三个是安全预检,移动端的安全问题真的出不起,我们每次上线前都会做一遍漏洞扫描,查一查会不会存在权限泄露、数据明文传输这些问题,还会找安全团队帮忙做一遍渗透测试,防止上线之后出数据安全事故,那可是得不偿失。2.3基础运维资源提前配置上线之前,所有监控、告警的资源都得提前搭好,不能等上线了再配置。我们现在会要求开发配合在APP里提前埋好监控点位,用户哪一步闪退、打开速度多少,后台都能实时拿到数据,不用出了问题全靠猜。服务器的带宽、存储资源也都提前扩容到位,告警规则提前设置好,比如说服务器CPU占用超过80%、APP崩溃率超过千分之一,就自动触发告警,不同级别的告警推送到不同的渠道,确保我们能第一时间收到。3事中运行监控与应急管控就算事前准备得再充分,也没法保证百分之百不出问题,所以运行过程中的事中管控,就是我们挡住问题的第二道防线,核心就是早发现、快处理,把影响降到最小。3.1全链路实时运行监控我们现在的监控不是只盯着后端服务器,是从前端用户到后端服务的全链路监控。前端这边,我们会监控不同地区、不同型号手机用户的打开速度、崩溃率、加载成功率,只要短时间内某个区域或者某个型号的崩溃率异常上升,后台立马就会提醒,我们还把用户的投诉反馈和运维后台做了对接,客服收到三个以上用户投诉同一个问题,我们运维这边立马就能看到,不用等客服整理完转过来再处理,耽误时间。后端这边,除了服务器的CPU、内存、带宽,我们还会实时监控所有第三方依赖的可用性,每隔一分钟就探测一次第三方接口能不能正常访问,只要接口超时率超过10%,立马告警,第三方出问题我们比用户发现得还早。3.2分级告警与响应机制我们把所有问题分成了三个等级,不同等级对应不同的响应要求,不会什么问题都喊所有人过来,也不会把大问题漏过去。一级问题就是重大问题,比如整个APP无法登录、核心功能不可用、大量用户闪退或者出现安全问题,这种要求运维人员10分钟之内必须到位,对应的开发、产品负责人半小时之内必须到岗协同处理,说句实在话,我现在手机永远开着振动,睡觉都放在枕头边,就怕一级告警漏了,晚十分钟处理,受影响的用户可能就多出去好几千。二级问题是一般问题,比如只有某个特定型号的手机出问题,不影响核心功能的使用,这种要求半小时内到位处理就行。三级问题是轻微问题,比如个别页面显示不对、非核心功能小bug,工作日两小时内处理就可以。告警渠道也分开,轻微问题发企业微信,重大问题直接发短信加打电话,保证不管你在吃饭还是睡觉,都能收到消息。3.3分级应急处置流程不同等级的问题有不同的处置顺序,核心就是先止损再修复。一级重大问题来了,第一步肯定是先止损:如果是流量太大服务器扛不住,就立马开启备用服务器,把首页广告、个性化推荐这些非核心功能暂时降级,把所有资源腾给登录、交易这些核心功能;如果是第三方接口出问题,就立马切到我们提前备好的备用接口,先保证核心功能能用。止损的同时我们就开始定位问题,从前端到后端一步步排查,找到根因之后快速出修复版本,修复完不会直接全量上线,先做灰度,给10%左右的用户更,观察两三个小时没问题,再全量推送给所有用户。问题解决之后第一时间给用户发公告说明情况,该道歉道歉该补偿补偿,别让用户摸不着头脑心生不满。二级和三级问题就按照正常流程定位修复,测试完再上线就可以,不用兴师动众,但也不能拖着不处理。我之前遇到过一次购物节期间第三方支付接口出问题,就是因为提前备了备用接口,两分钟就切完了,绝大多数用户都没感觉到异常,现在想想都觉得后怕,要是没提前准备,那天不知道要损失多少订单。4事后复盘优化与长效管控机制问题处理完不是就结束了,得把这次的教训变成我们体系的一部分,避免下次再出同样的问题,这才是运维管控能持续变好的关键。4.1问题全流程复盘不管问题是大是小,处理完之后三个工作日之内一定要拉上开发、产品、运维开复盘会,我们复盘不搞甩锅那一套,就是客观理清楚整个过程:问题什么时候发生的,我们什么时候发现的,什么时候解决的,影响了多少用户,然后找根因——是事前预检没覆盖到,还是监控有盲区,还是应急方案有漏洞?找完根因就出具体的整改措施,明确谁来做,什么时候做完,比如之前我们出过折叠屏适配的问题,复盘之后就直接把折叠屏适配测试加到了上线预检的必测项里,以后再更新版本就不会出同样的问题了。说真的,我们现在这套方案里的大部分规则,都是一次次复盘踩坑踩出来的,踩一次坑补一个漏洞,越补越完善。4.2迭代版本的持续管控移动端APP不是上线一次就一劳永逸了,基本上每个月都要更个两三次,所以每次迭代更新我们都得按这套流程走,哪怕就是改个文字、调个按钮位置,我们都不会直接全量上线,一定要先做灰度,放10%的用户更,观察个一两天,确认没有异常再全量推送,就是怕一点点小改动引发意想不到的冲突,小心驶得万年船,这句话在移动端运维真是太对了。4.3运维能力的持续升级我们团队每个季度都会整理一次常见的问题,更新运维手册,还会组织内部分享,把处理问题的经验分享给新来的同事,大家一起避坑。只要iOS或者安卓发了新的大版本系统,我们都会提前下载测试包,提前适配,不用等用户都更了新系统,出了一堆问题我们才动手改。监控工具、告警机制我们也会定期调整,哪里不好用就改哪里,不断适配我们APP的发展情况,不会一套东西用好几年不变。方案总结这套移动端应用运维管控方案,不是什么凭空想出来的高大上理论,全是我们团队这么多年实际干活攒出来的经验,核心就是把被动的救火式运维,变成主动的全流程管控,从事前开发到上线运行,再到事后复盘,形成一个完整的闭环,既能降低故障率,也能减少出问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论