写点什么

第十一周学习总结

用户头像
菲尼克斯
关注
发布于: 2020 年 08 月 27 日

一、安全

👉常见攻击:XSS攻击,防御手段——对html危险字符转义;SQL注入,防御手段——正则匹配,过滤请求数据中可能注入的SQL;CSRF攻击,防御手段——表单token、验证码、Referer check检查请求来源。

👉其他需要关注的:Error Code、HTML注释、文件上传、路径遍历

👉防火墙

👉安全漏洞扫描

👉加密:单向散列加密、对称加密、非对称加密

👉反垃圾邮件,常用贝叶斯分类算法、布隆过滤器黑名单

👉规则引擎

二、高可用

👉可用性指标:

网站年度可用性指标=(1-网站不可用时间/年度总时间)✖100%

网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点

99%--基本可用;99.9%--较高可用;99.99%--高可用;99.999%--极高可用性

👉故障分

👉引起故障的原因:硬件故障、软件bug、系统发布、并发压力、网络攻击、外部灾害

👉高可用架构思路/策略:

1、解耦:高内聚、低耦合的设计原则;面向对象基本设计原则;面向对象设计模式;领域驱动设计建模

2、隔离:业务与子系统隔离、微服务与中台架构、生产者消费者隔离、虚拟机与容器隔离

3、异步:多线程编程、反应式编程、异步通信网络编程、事件驱动异步架构

4、备份:集群设计、数据库复制

5、失效转移:数据库主主失效转移、负载均衡失效转移

6、幂等:服务重复调用有时候无法避免,要求服务具有幂等性

7、事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前状态

8、重试:调用者可以通过重试的方式修复单次调用的故障

9、熔断:服务出现故障,使用断路器阻断对故障服务的调用

10、限流:系统访问量超过了系统的承载能力,通过限流对系统进行保护

——计数器算法(固定窗口:在一个周期内累加访问次数)(滑动窗口:将时间窗口进行划分,优化固定窗口面临的临界问题)

——令牌桶算法(以固定速度增加令牌,直到桶满;请求会获取令牌,无令牌可取,会触发限流)

——漏桶算法(请求不限,到达限流值后,以固定速率释放请求)

11、降级:在系统高并发的时候,将非核心功能关闭

12、异地多活:将数据中心分布在多个不同地点的机房里

👉运维:

1、发布:发布过程事实上和宕机效果相当,用宕机高可用方案应对。

2、自动化测试

3、自动化部署

4、持续部署三步走:持续集成、持续交付、持续部署

5、预发布验证

6、代码版本控制:(主干开发,分支发布)、(分支开发,主干发布)

7、自动化发布

8、灰度发布(服务器一小批一小批发布)

9、网站运行监控

——监控数据采集:用户行为日志收集;服务器性能监控;业务运行数据报告;

——监控管理:报警、自动控制(自动失效转移、自动扩容、自动限流)

👉高可用价值观

保持简单,使问题易于发现,快速解决;

目标明确,解决特定环境下的具体问题;

价值回归,成本收益要合理。

👉总结:身处在小公司,安全的根基还是制定完善开发规范,让代码安全;对于高可用而言,还是一个远景,即便采用了分布式架构,很多应用服务仍然采用单体在运行,需要在技术进步的道路上读万卷书,行万里路。



用户头像

菲尼克斯

关注

还未添加个人签名 2018.05.14 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签
2020 年 08 月 27 日 09:49
回复
没有更多了
第十一周学习总结