如何提高线上服务可用性
上一篇文章中我简单介绍了一次线上服务的可用性下降追查过程,今天我们接着上次的内容来学习如何保证服务的高可用性。
具体分为开发阶段、测试阶段、上线阶段、监控阶段等几大项。这些内容就像是一套组合拳,练好了你也是一个江湖高手了。哈哈!
一、开发阶段
- 遵循(公司/业界)代码编写规范,并通过git进行版本管理;代码git 合入前需要经过他人的code review;经过专业漏洞扫描工具的评估,不存在明显的注入漏洞
- 各种容错调度机制完善,有完整的重试机制(但不能无限重试)、超时时间、健康检测、心跳检测
- 功能解耦、上下游解耦,核心服务和非核心服务解耦
- 防攻击,如果是直接部署在外网环境下一定要开启服务器的防火墙功能。
二、测试阶段
- 代码规范测试,不仅关注与业务,还要关注于代码规范
- 模块级测试,前提是各个模块之间的耦合度较低
- 系统级测试
- 定好免测规范,对于免测需求,由RD直接上线
- 部署各种自动化测试脚本,这个是最主要的,原因你懂的。
三、上线部署阶段
- 明确上线的时间点,只在正常的时间点上线,避免出了问题无人力跟进。
- 分机房部署,灰度发布再到全量发布
- 逻辑服务单元拆分,分idc多机房部署
- 满足n+1的冗余,做好容错,快速切换故障机器
- 部署网段打散,如不要将一个机房的机器都部署在一个交换机下,如果交换机除了问题,会造成该机房整个服务的不可用
- 消除单点,这里的单点是广义,单机房部署也属于单点
四、线上运行阶段
- 规范运维操作,RD不具有线上机器写权限,机器由OP统一管理
- 做好流量规划,如流量预估、流量真实压测
- 监控完善,合理配置监控项,在收到服务报警时快速响应。
五、发现线上服务可用性下降
通过运营商或公司内部的监控快速定位服务,先通报,后止损,最后追查问题。
一定要保证自己第一时间收到报警。
六、止损
根据服务可用性下降应急预案,快速响应,大致有以下几种。
- 流量调度,如果某机房可用性整体下降,由OP将该机房的流量分散转发到其他机房
- 回滚发布操作,如果是通过git进行的代码管理,可以发布最近一次的无问题的代码
- 降级/流控,丢失非核心功能或者丢失低质流量
- 由OP紧急扩容/缩容机器
七、灾备恢复
备份永远是第一位的!备份永远是第一位的!备份永远是第一位的!重要的事情说三遍!!!
备份就是你的“后悔药”,不到事故出现的那一刻,你永远不知道备份的重要性。当然,一定要保证你之前的备份是有效的。
八、事故复盘
前事不忘后事之师,做好事故复盘。
如果是流程规范问题,加强完善流程规范;如果是机器流量等问题,扩充(下掉)机器;
以上总结的是本人日常工作中在实践运用的,分享出来希望对大家有帮助!
如何提高线上服务可用性相关推荐
- 线上服务可用性骤降追查
背景 下午五点多收到某线上服务可用性骤降的报警:499比例超阈值.查看监控发现服务可用性在各个idc均有下降:服务500错误码比例飙升. 问题追查 登上(刚开始还可以远程登录)单台机器查看PHP的Fa ...
- 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...
- 新零售背景下“农村淘宝“线下和线上服务
新零售背景下"农村淘宝"线下和线上服务 农村淘宝在做什么? 2019年对于农村淘宝(下文简称"村淘")来说是关键的一年,作为阿里巴巴集团新零售战略中的第六路大军 ...
- 一次线上服务CPU100%的排查过程
前言 突然收到线上服务cpu达到100%的报警短信,于是立即展开排查. 排查过程 理论步骤 一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p) ...
- AI+音视频双引擎驱动,保司线上服务能力全面升级 | 爱分析报告
报告编委 张扬 爱分析联合创始人&首席分析师 孙文瑞 爱分析高级分析师 廖耘加 爱分析分析师 外部专家(按姓氏拼音排序) 段磊 容联云音视频负责人 徐靖辰 声网数字化转型政企行业总监 特别鸣谢 ...
- java - JVM 线上服务的FGC问题排查
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...
- 线上服务的FGC问题排查,看这篇就够了!
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...
- 【转】线上服务的FGC问题排查,看这篇就够了!
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...
- JVM:线上服务的FGC问题排查
原文链接:https://blog.csdn.net/bestxianfeng163/article/details/107972060 线上服务的GC问题,是Java程序非常典型的一类问题,非常考验 ...
最新文章
- [导入]金山词霸2005精简版下载地址
- 案例驱动python编程入门-python ddt数据驱动实例代码分享
- 黑马lavarel教程---9、缓存操作
- overall error
- postman cookie设置_接口鉴权之cookie,session和token
- 功能Java示例 第3部分–不要使用异常来控制流程
- 《计算机算法设计与分析》题目汇总
- 信奥中的数学:计算几何
- 学习ActiveMQ(一):安装与启动
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述
- webpack中各个模块归纳总结图
- 【光学】基于Matlab实现二维光子晶体的能带图和场
- 吴松计算机学院,IT|“创青春”创业大赛计算机学院选拔赛成功举行!
- webbench1-5源码分析
- 关于三角形面积的公式与格点多边形面积计算算法的讨论
- 英文版SecureCRT显示乱码解决
- mount 中文man(转)
- Spark:利用tac+cellid基站定位
- 安卓的BP、AP、NV是什么意思
- 图文详解PowerDesigner安装
热门文章
- linux2007共享文件夹,Linux如何共享文件夹?
- 查看穿山甲sdk版本号
- 利用百度地图API进行根据ip定位城市
- 内网穿透---IPv6点对点【妈妈再也不用担心网速了】
- 智能车PID控制详细介绍(普通PID、串级PID、改进PID)——适用于四轮车、三轮车、平衡车
- Java实现阿里云短信发送功能(保姆级!!!搞懂短信功能,这一篇就够了!)
- numpy numpy.concatenate()函数
- Java Script(三)——onload事件、onclick事件、onsubmit事件、onchange事件、onblur事件
- 深圳嵌入式培训:嵌入式技术学习路线大纲分享
- Android如何获取当前连接wifi的信道?