架构师训练营第十一周总结
Web安全
常用攻击手段
XSS:跨站脚本攻击,利用网页漏洞注入恶意攻击脚本,让用户执行
SQL注入:在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以执行非法操作
CSRF:跨站伪造请求,攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作
防御手段
WAF:Web应用防火墙
网站安全漏洞扫描
加密与解密
单向散列加密:一般用于密码的加密,加密后无法还原成明文
对称加密:加密和解密是同一把密钥
非对称加密:公钥加密,私钥解密,或私钥加密,公钥解密(签名)
反垃圾邮件
贝叶斯分类算法
布隆过滤器:用减少的空间存放大量的黑名单,只会错判,不会漏判
高可用系统
可用性的度量
可用性指标=(1-网站年度不可用时间/年度总时间)*100%
两个9:基本可用
三个9:高可用
四个9:具有自动恢复能力的高可用
高可用系统的架构
解耦:减少逻辑上依赖,防止故障扩散
隔离:物理上隔离,防止故障扩散
异步:本质上是一种解耦的方式
备份:冗余,多个工作副本,只要有副本正常工作,就能保证系统整体可用
故障转移:当副本不工作时,需要将请求发送到其它正常副本
事务补偿:实现最终一致性
重试:通过多次尝试修复单次调用的故障
熔断:用断路器阻断对故障服务的调用,以避免出现服务的级联失效
限流:对进入系统的用户进行流量限制,保证系统整体可用,避免整个系统奔溃,常用限流岁啊饭:计数器法、令牌桶算法、漏桶算法
降级:在系统高并发的时候关闭一些非核心功能,以降低系统的负荷
异地多活:建设多个数据中心,砸钱。。
高可用运维
自动化测试
利用自动化测试工具实现回归测试,常用工具Selenium
自动化部署
持续集成→持续交付→持续部署
预发布验证
单独部署一台服务器在正式发布前对新的代码进行生产环境的测试
代码版本控制
主干开发,分支发布
分支开发,主干发布 √
灰度发布
生产环境中逐步发布新的代码,当出现故障时,可以快速回滚。
灰度发布也可用来测试新功能对产品运营的影响
网站运行监控
不想允许没有监控的系统上线
高可用的价值观
KISS:保持简单才能易于发现问题和快速解决问题,资深架构师是让复杂问题简单化,而非简单问题复杂化。
目标明确:具体问题具体分析
价值回归:成本收益要合理,要在可用性和投入成本之间找到一个合理的平衡点
评论