上一篇文章中我简单介绍了一次线上服务的可用性下降追查过程,今天我们接着上次的内容来学习如何保证服务的高可用性。

具体分为开发阶段、测试阶段、上线阶段、监控阶段等几大项。这些内容就像是一套组合拳,练好了你也是一个江湖高手了。哈哈!

一、开发阶段

  1. 遵循(公司/业界)代码编写规范,并通过git进行版本管理;代码git 合入前需要经过他人的code review;经过专业漏洞扫描工具的评估,不存在明显的注入漏洞
  2. 各种容错调度机制完善,有完整的重试机制(但不能无限重试)、超时时间、健康检测、心跳检测
  3. 功能解耦、上下游解耦,核心服务和非核心服务解耦
  4. 防攻击,如果是直接部署在外网环境下一定要开启服务器的防火墙功能。

二、测试阶段

  1. 代码规范测试,不仅关注与业务,还要关注于代码规范
  2. 模块级测试,前提是各个模块之间的耦合度较低
  3. 系统级测试
  4. 定好免测规范,对于免测需求,由RD直接上线
  5. 部署各种自动化测试脚本,这个是最主要的,原因你懂的。

三、上线部署阶段

  1. 明确上线的时间点,只在正常的时间点上线,避免出了问题无人力跟进。
  2. 分机房部署,灰度发布再到全量发布
  3. 逻辑服务单元拆分,分idc多机房部署
  4. 满足n+1的冗余,做好容错,快速切换故障机器
  5. 部署网段打散,如不要将一个机房的机器都部署在一个交换机下,如果交换机除了问题,会造成该机房整个服务的不可用
  6. 消除单点,这里的单点是广义,单机房部署也属于单点

四、线上运行阶段

  1. 规范运维操作,RD不具有线上机器写权限,机器由OP统一管理
  2. 做好流量规划,如流量预估、流量真实压测
  3. 监控完善,合理配置监控项,在收到服务报警时快速响应。

五、发现线上服务可用性下降

通过运营商或公司内部的监控快速定位服务,先通报,后止损,最后追查问题。

一定要保证自己第一时间收到报警。

六、止损

根据服务可用性下降应急预案,快速响应,大致有以下几种。

  1. 流量调度,如果某机房可用性整体下降,由OP将该机房的流量分散转发到其他机房
  2. 回滚发布操作,如果是通过git进行的代码管理,可以发布最近一次的无问题的代码
  3. 降级/流控,丢失非核心功能或者丢失低质流量
  4. 由OP紧急扩容/缩容机器

七、灾备恢复

备份永远是第一位的!备份永远是第一位的!备份永远是第一位的!重要的事情说三遍!!!

备份就是你的“后悔药”,不到事故出现的那一刻,你永远不知道备份的重要性。当然,一定要保证你之前的备份是有效的。

八、事故复盘

前事不忘后事之师,做好事故复盘。

如果是流程规范问题,加强完善流程规范;如果是机器流量等问题,扩充(下掉)机器;

以上总结的是本人日常工作中在实践运用的,分享出来希望对大家有帮助!

如何提高线上服务可用性相关推荐

  1. 线上服务可用性骤降追查

    背景 下午五点多收到某线上服务可用性骤降的报警:499比例超阈值.查看监控发现服务可用性在各个idc均有下降:服务500错误码比例飙升. 问题追查 登上(刚开始还可以远程登录)单台机器查看PHP的Fa ...

  2. 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践

    线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...

  3. 新零售背景下“农村淘宝“线下和线上服务

    新零售背景下"农村淘宝"线下和线上服务 农村淘宝在做什么? 2019年对于农村淘宝(下文简称"村淘")来说是关键的一年,作为阿里巴巴集团新零售战略中的第六路大军 ...

  4. 一次线上服务CPU100%的排查过程

    前言 突然收到线上服务cpu达到100%的报警短信,于是立即展开排查. 排查过程 理论步骤 一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p) ...

  5. AI+音视频双引擎驱动,保司线上服务能力全面升级 | 爱分析报告

    报告编委 张扬 爱分析联合创始人&首席分析师 孙文瑞 爱分析高级分析师 廖耘加 爱分析分析师 外部专家(按姓氏拼音排序) 段磊 容联云音视频负责人 徐靖辰 声网数字化转型政企行业总监 特别鸣谢 ...

  6. java - JVM 线上服务的FGC问题排查

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  7. 线上服务的FGC问题排查,看这篇就够了!

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  8. 【转】线上服务的FGC问题排查,看这篇就够了!

    线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...

  9. JVM:线上服务的FGC问题排查

    原文链接:https://blog.csdn.net/bestxianfeng163/article/details/107972060 线上服务的GC问题,是Java程序非常典型的一类问题,非常考验 ...

最新文章

  1. [导入]金山词霸2005精简版下载地址
  2. 案例驱动python编程入门-python ddt数据驱动实例代码分享
  3. 黑马lavarel教程---9、缓存操作
  4. overall error
  5. postman cookie设置_接口鉴权之cookie,session和token
  6. 功能Java示例 第3部分–不要使用异常来控制流程
  7. 《计算机算法设计与分析》题目汇总
  8. 信奥中的数学:计算几何
  9. 学习ActiveMQ(一):安装与启动
  10. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述
  11. webpack中各个模块归纳总结图
  12. 【光学】基于Matlab实现二维光子晶体的能带图和场
  13. 吴松计算机学院,IT|“创青春”创业大赛计算机学院选拔赛成功举行!
  14. webbench1-5源码分析
  15. 关于三角形面积的公式与格点多边形面积计算算法的讨论
  16. 英文版SecureCRT显示乱码解决
  17. mount 中文man(转)
  18. Spark:利用tac+cellid基站定位
  19. 安卓的BP、AP、NV是什么意思
  20. 图文详解PowerDesigner安装

热门文章

  1. linux2007共享文件夹,Linux如何共享文件夹?
  2. 查看穿山甲sdk版本号
  3. 利用百度地图API进行根据ip定位城市
  4. 内网穿透---IPv6点对点【妈妈再也不用担心网速了】
  5. 智能车PID控制详细介绍(普通PID、串级PID、改进PID)——适用于四轮车、三轮车、平衡车
  6. Java实现阿里云短信发送功能(保姆级!!!搞懂短信功能,这一篇就够了!)
  7. numpy numpy.concatenate()函数
  8. Java Script(三)——onload事件、onclick事件、onsubmit事件、onchange事件、onblur事件
  9. 深圳嵌入式培训:嵌入式技术学习路线大纲分享
  10. Android如何获取当前连接wifi的信道?