《系统稳定与信息安全——体系建设与实战经验 刘向阳.pdf》由会员分享,可在线阅读,更多相关《系统稳定与信息安全——体系建设与实战经验 刘向阳.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、系统稳定与信息安全体系建设与实战经验刘向阳美的集团首席信息安全官(CISO)兼软件工程院院长欧洲科学院院士IEEE Fellow、IET Fellow、AAIA FellowACM Distinguished ScientistCIO最怕什么:稳定爆雷、安全爆雷稳定性度量吾?=?+?MTTF(Mean Time To Failure):平均无故障时间MTTR(Mean Time To Repair):平均修复时间容灾系统度量指标:RTO(Recovery Time Objective):业务系统恢复运行所需时间的目标RPO(Recovery Point Objective):业务数据丢失的最大
2、时间窗口故障=风险+触发必然性偶然性预防故障减少影响稳定性建设十板斧预防故障预防故障 架构梳理 风险矩阵 变更预案 日常巡检 代码防御减少影响减少影响 全面监控 应急预案 一键逃生 故障演练 管理制度面向失败的架构设计高可用:部署冗余架构,消除单点风险单点消除:硬件单点、存储单点、网络单点、机房单点、依赖单点、注册单点冗余设计:数据冗余(数据多份副本,DB 一主多备),计算冗余,网络冗余,存储冗余弱化依赖:避免强依赖(依赖服务挂掉会导致自己服务挂掉)分库分表:避免热点流量管理:限流、降级、熔断容量管理:动态扩缩容链路分析:同步调用链路分析,系统拆分粒度,同步调用vs.异步调用高性能:数据尽量索
3、引,网络带宽延迟CDN,冷热数据分离高质量:纵向技术分层,横向业务分区灾备设计冷备、热备数据级别容灾、应用级容灾、业务级容灾异地多活:两地三中心,三地五中心系统稳定性建设十板斧之一:架构梳理软硬件系统的老旧是造成故障的常见根因用机械盘存索引的对象存储集群老旧版本的k8s容器集群技术升级软件升级:坚决避免原地升级硬件升级:做好预案随时回滚系统稳定性建设十板斧之一:架构梳理死法理全:直接死法有限,树状逐层分析风险矩阵模版:风险信息故障预防故障发现应急预案系统稳定性建设十板斧之二:风险矩阵变更种类:软件变更,配置变更,数据库变更,硬件变更,主机变更,网络变更变更原则:走灰度,备回滚,盯监控变更流程:
4、变更方案评审、变更效果验证、业务检查清单变更影响面,联合上下游团队提前做好所有可能变更的预案系统稳定性建设十板斧之三:变更预案传统的航空、电力、汽车行业都有巡检机制,保障设备系统正常运转,软件系统也同样需要巡检机制保障业务健康发展,如果优化不及时就很可能导致故障。巡检内容基础信息:CPU利用率、磁盘利用率、内存利用率、服务器时间同步、日常数据备份文件检查=关注趋势变化集群状态:证书过期检查、API通信是否正常、各名称空间下的pod运行状态、ceph共享存储是否正常业务状态:业务平台登录是否正常、kafka是否积压、kafka消费速率人工巡检=自动巡检=巡检平台系统稳定性建设十板斧之四:日常巡检
5、防御性编程(Defensive programming):不仅自己的代码不要有bug,还要防止别人的代码有bug;对每一个软件模块,不仅这个模块不要有bug,还要防止上游的模块有bug。输入检查:检查所有来自系统外部的数据,根据业务逻辑进行检查在Domain Driven Design中Specification Pattern:用于对对象的属性进行检查,从而保证对象的逻辑正确性。安全检查,如SQL注入,XSS攻击等异常处理:通过异常处理Java try-catch,处理所有可能的错误,包括系统错误和用户错误自愈代码:在coding过程中,在任何关键环节都要具备稳定性意识。数据校验:实时校验-
6、实时防止bug发作;离线校验:发现脏数据其它问题:日志打印(日志规范要统一)、幂等问题、资源泄露、事务问题自动化测试:流量回放,Fuzzing平台系统稳定性建设十板斧之五:代码防御系统监控主机监控:cpu使用率,disk使用率,SWAP使用率,mem使用率,磁盘剩余空间等等网络监控:ICMP loss,ICMP response time,High bandwidth usage,端口带宽使用率,设备端口状态,设备端口错误包等等中间件监控:ES集群服务器cpu使用率、GC次数、内存使用率,kafka/rocketmq消费积压数量、消费积压数量等等数据库监控:mysql 活跃线程数、最近2分钟Q