架构即未来-阅读笔记3

Posted on 2020-04-28 13:43  咳咳你  阅读(125)  评论(0编辑  收藏  举报

   架构原则:

   好的架构原则应该影响团队的行为和文化,它们应该帮助指导设计,并以此测试和确定这些设计是否符合公司的目标和需求。有效的架构原则与公司的目标、愿景和使命紧密地结合在一起,它们具备以下特点:

 

   作者在书中将AKF公司客户最常用的架构原则写了出来:

 N+1 设计
     确保任何你所开发的系统在发生故障时,至少有一个冗余的实例。

     永远不少于两个,通常为三个

 回滚设计
     确保向后兼容。确保系统可以回滚到以前发布过的任何版本。

 禁用设计
     与其他系统或服务通信的高风险系统时,确保这些系统能够通过开关来禁用

     能够关闭任何发布的功能

 监控设计
    监控做的好,不仅能发现服务的死活,检查日志文件,还能收集系统相关的数据,评估终端用户的响应时间。如果系统和应用在设计和构建时就考虑好监控,那么即使不能自我修复,也至少可以自我诊断。        

    在设计阶段就必须要考虑监控,而不是在实施完成后补充

设计多活数据中心
    必须拥有多个数据中心,在设计数据中心的时候,考虑数据中心运维策略

    不要被一个数据中心的解决方案把自己限制住

使用成熟的技术
    降低开发成本,提高开发效率,提高可扩展能力,减少终端用户的响应时间。考略新技术故障问题

    只用确实好用的技术

异步设计
     只有在绝对必要的时候才进行同步调用

 无状态系统
     只要有可能,就要避免开发需要状态的产品,在必要的情况下,可以考虑存储在用户端,而不时在系统里。如果这是不可能的,考虑一个几种的状态缓存机制避免把状态数据分散存储在多个服务器上。

     只有当业务确实需要的时候,才使用状态

水平扩展非垂直升级
     永远不要依赖更大,更快的系统

 设计至少要有两个步骤的前瞻性
    在扩张性问题发生前考虑好下一步的行动计划

 非核心则购买
     如果不是你擅长的,也提供不了差异化的竞争优势则直接购买

 使用商品化硬件
    在大多数情况下,便宜的是最好的

小构建,小发布,快试错
    全部研发要小构建,不断迭代,让系统不断地成长

隔离故障
     故障隔离的原则类似于建立一个有断路器的电器系统,细分产品,服务,或子服务,确保服务或者子服务的故障不会影响其他的服务

    实现故障隔离设计,通过断路保护避免故障传播和交叉影响

 自动化
     人常犯错误,更令人沮丧的是,他们往往会以不同的方式多次犯同样的错误。

     所有系统都应该在开始设计的阶段就要考虑自动化。自动部署,构建,测试,监控甚至报警

     设计和构建自动化的过程。如果机器可以做,就不要依赖于人
   我们应该根据公司的目标制定架构原则,要与系统的实现紧密联系起来。对于原则应该要最大程度的包含到系统目标,用于减少后期修改费用