写点什么

架构师训练营 第 11 周总结

用户头像
Glowry
关注
发布于: 2020 年 08 月 26 日

本周内容:

  • 安全架构

  • 高可用系统的度量

  • 高可用系统架构

  • 高可用系统的运维

安全架构



攻击与防御

XSS攻击

攻击:前端注入恶意脚本

防御:转义HTML危险字符

SQL注入

攻击:提交sql语句

防御:过滤参数中的sql敏感信息;sql预编译;

CSRF

攻击:伪造用户请求

防御:token校验



安全保障的手段

  • 应用防火墙

  • 漏洞扫描

  • 信息加密:特别是密码加密后存储

  • 反垃圾邮件:贝叶斯分类

  • 业务流程安全:电子商务风险控制,有规则引擎、机器学习的方法;



高可用系统度量

  • 使用系统不可用时间评估系统高可用性;

  • 重点是要进行故障的管理,特别是故障的处理流程、故障review定级、确定责任人等;



高可用系统架构

引起故障的原因

  • 硬件故障:服务器、CPU、内存、网络等不可用;

  • 软件BUG:由于代码逻辑问题,或者代码本身设计不合理导致软件服务不可用;

  • 系统发布:发布流程不规范、不严谨,或者测试不完善,或者没考虑好迭代的依赖;

  • 并发压力:并发过大导致系统资源耗尽;

  • 网络攻击:存在安全漏洞;

  • 外部灾害:火灾、地震、战争等不可抗拒因素。



保障系统高可用的方案

  • 合理的代码设计:解耦、隔离,保证软件正常的维护和迭代;

  • 异步:异步编程、通信,提高响应性能;

  • 备份:服务集群化、数据备份;

  • 失效转移:数据库、负载均衡等策略,保证部分节点失效不影响整体服务可用性;

  • 幂等:敏感的操作保证幂等,避免数据异常;

  • 事务补偿:数据库事务;分布式的最终一致性;或者用业务逻辑逆操作,回滚到事务前的状态;

  • 重试:服务短暂不可用时可用来避免对正常流程的影响;

  • 熔断:某个服务故障时,调整服务状态(打开、关闭或半打开),进行保证服务可用;

  • 限流:限制进行服务的流量、并发等,保证服务并发在可控范围内;

  • 降级:服务资源紧张时,只保留核心功能,避免重要的服务不可用;

  • 异地多活:避免机房单点;



高可用系统的运维

  • 自动化测试

  • 自动化部署

  • 持续集成、持续交付、持续部署

  • 预发布验证

  • 代码版本控制

  • 自动化发布

  • 灰度发布

  • 服务监控

  • 服务告警

用户头像

Glowry

关注

还未添加个人签名 2019.02.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第11周总结