架构师训练营第十一周总结
组件设计原则
降低软件复杂度,拆分成更小粒度的组件
内聚性原则
1.组件内聚原则
复用发布等同原则;复用粒度与发布粒度一致;版本号:主版本号.次版本号.修订号
2.共同封闭原则
同时修改、为同一目的而修改的类放到一个组件中
3.共同复用原则(接口隔离原则)
不要依赖不需要的功能
耦合原则
1.无循环依赖原则
2.稳定依赖原则;不应该依赖一个比自己更不稳定的组件
3.稳定抽象原则;稳定的组件时抽象的
组件的边界与依赖关系涉及技术、业务、人员的因素
安全架构
网络攻击
1.XSS 跨站脚本攻击
反射型XSS:用户自己去点击攻击链接才能触发XSS代码
存储型XSS:恶意代码存储在服务器中,每当有用户访问该页面的时候都会触发代码执行
防御手段:危险字符转义
2.SQL注入攻击
sql预编译参数绑定
3.CSRF 跨站点请求伪造
表单Token
Referer
验证码
4.其他问题漏洞
返回的错误码
html注释
文件上传
路径遍历
如何解决安全问题
WEB应用防火墙 ModSecurity
网站安全漏洞扫描
信息加密技术及密钥安全管理
1.加密算法
单向散列加密
明文->salt->密文
对称加密
明文->密钥-(加密算法)->密文->密钥-(解密算法)->明文
非对称加密
明文->加密密钥-(加密算法)->密文->解密密钥-(解密算法)->明文
2.密钥安全管理与加解密服务系统架构
密钥多人保管(多地存储)
3.反垃圾邮件
贝叶斯分类算法:特征值、概率
布隆过滤器黑名单
4.电子商务风控
规则引擎
机器学习
高可用
可用性指标
例子:99.99% 一年不可用时间大约53分钟
故障分管理
不同故障级别设置不同分数(先解决故障,再进行故障复盘,分析故障级别,确定责任者)
故障处理及考核
故障原因
网络攻击
硬件故障
软件BUG
系统发布
并发压力
外部灾害
高可用架构
解耦:设计原则、模式;建模
隔离:系统间隔离
异步:多线程、反应式、异步通信、事件驱动
备份:集群、数据库复制
失效转移:
幂等
事务补偿:ACID、BASE;代码逻辑逆操作
重试
熔断
限流:计数器、令牌桶、漏桶
自适应限流
降级
异地多活
高可用系统运维
发布:集群、负载均衡
自动化测试:selenium
自动化部署
持续部署
预发布验证
代码版本控制
自动化发布
灰度发布
网站运行监控
监控数据采集
用户行为日志收集
服务器性能监控
业务数据报告
监控管理
监控系统架构
评论