架构师训练营第十一周
安全架构
Web应用防火墙(网关里)
开源的防火墙: ModSecurity (可以参考里面的正则表达式)
信息加密技术及密钥安全管理
1)单向散列加密
明文加密成密文,不可逆。
取回密码在这里是不可能的,只能重新设置密码。
2)对称加密
加密算法&解密算法 加密密钥解密密钥是同一个密钥
3)非对称加密
加密密钥解密密钥是不同的密钥
密钥存储设备:密钥文本串切成多个段,分段输入密钥,存到多个地方,服务器管理人是不同的。(保证密钥的安全性)
密钥管理者:分多段输入密钥。
密钥服务器:加解密服务本身集成在服务系统里, 密钥向应用程序隔离起来。
应用程序不知道算法&密钥。
系统可用性
故障分管理让团队关注可用性,与绩效挂钩。
架构策略:
1) 解耦 (高内聚,低耦合的组建设计;OOD;design pattern, DDD)
2) 隔离 (微服务中台架构,producer-consumer, 业务与子系统, 虚拟机与容器隔离)
3) 异步 (事件驱动异步架构,多线程编程,异步通信网络编程,反应式编程)
邮件发送失效,其他功能还可以。发消息给日志系统 and/or 补偿系统就好了。
4) 备份 (集群,任何服务(微服务也是)部署在多个服务器上,负载均衡,数据库复制)
5)失效转移 (如何确认失效,需要转移?Doris架构可参考, 使用zookeeper或者服务中心管理器)
6) 幂等 (对于交易操作,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才可以继续执行)
7)事务补偿 (通过执行业务逻辑你操作,回滚到事务前状态)
8)重试
9) 熔断 (当某个服务出现故障,响应延迟,使用断路器阻断对故障服务的调用)关闭,打开,半开。
10)限流 (计数器滑动窗口算法,漏桶算法,自适应限流(根据指标调节流量大小))
11)降级 (在系统高并发的时候,将非核心的功能关闭)
高可用系统的运维
1)发布
2)持续部署
3)预发布验证
测试环境和线上环境有时候并不相同。特别是应用需要依赖的其他服务,如数据库,缓存等,以及一些第三方服务。预发布服务器是一种特殊用途的服务器,它和线上的正式服务器唯一的不同就是没有配置在负载均衡服务器上,外部无法访问。
4)自动化发布(大团队,单体)
5)灰度发布
将集群服务分成若干部分,每天只发布一部分服务器,观察运行稳定没有故障,第二天继续发布一部分服务器。期间有问题则回滚发布的一部分服务器。
6)网站进行监控
评论