写点什么

极客时间架构师训练营 - week11 - 作业 2

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

根据当周学习情况,完成一篇学习总结

这两周的课程主要讲解的是安全架构及高可用架构。安全架构对于每个系统来说都是至关重要的,安全方面一出问题,基本上是大问题,所以每个开发者都要注重,编写可靠的代码。常见的安全攻击手段有,XSS攻击(通过请求参数过滤解决),SQL注入攻击(通过SQL预编译参数绑定解决),CSRF攻击(通过表单token,短信验证码等解决),Error Code(此前项目中的全局捕获异常类,有打印完整的URL报错路径,在安全检查阶段被扫描出来,对于此问题印象比较深刻),HTML注释(Code Review可以避免,不该写的注释不要写),文件上传(限制可上传的文件的类型),路径遍历等。另外我了解到的一点是,目前比较主流的一款WEB应用防火墙ModSecurity,其采取的过滤规则,可以是安全架构设计的重要参考。

第二块主要的内容是敏感信息相关的。具体的技术包括散列加密,对称加密,非对称加密。安全这块,我还没完全弄明白,等后续再深入研究。

第二次课主要讲解的是高可用的系统架构,这一块是系统在落地的时候的重要实践指导依据。首先,全体成员都需要重视,可以将出错率与个人或小组部门的业绩挂钩。其次,业务代码在编写的时候,就需要做到高内聚、低耦合,采用面向对象的设计模式,领域驱动模型等。再者,如果采用的是目前主流的微服务架构,则可以做数据库与相关服务的冗余备份与负载均衡,失败隔离,失效转移,大公司可能还会做异地多活。这一块的相关概念非常多,包括重试与幂等,事务补偿,熔断,降级,限流,异步架构(这个课程自始至终一直有讲)等。有关幂等性,之前与三方合作的时候,对方要求我们提供的接口具备此特性,说起来实现也就是多几行代码的事,数据重复了就覆盖或者不进行任何操作直接返回成功。如果不做幂等,就会出现两条一模一样的数据,这显然会影响用户的判断力。最后一部分内容讲解的是高可用的运维系统,包括自动化发布,自动化测试,自动化部署。在我们的开发与运维过程中,我觉得一个是容器化的部署技术,另外就是服务器监控,自动化告警,比较重要。微服务架构下,服务太多,靠人工来维护成本太高。最后,每个人都要树立高可用的价值观,在潜意识里重视它!



发布于: 2020 年 08 月 26 日阅读数: 50
用户头像

jjn0703

关注

Java工程师/终身学习者 2018.03.26 加入

USTC硕士/健身健美爱好者/Java工程师.

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签,便于分类
2020 年 08 月 27 日 09:51
回复
没有更多了
极客时间架构师训练营 - week11 - 作业 2