课程简介
课程可以掌握基本的架构思维和架构原则,以及常用的架构模式,能够根据特定的场景和问题进行合理的架构设计,在防止过度设计的同时,还能保持架构的可持续演进;学员在掌握真正高可用架构的思维和实战方法的同时,更能清晰的知道一个架构从高可用到不可用的路径上都发生了什么,以及如何防范,如何在实践中进行架构的防腐;为学员展示当前一线大厂好的设计和不好的设计的真实案例,并能够从案例中去映射高可用和不可用的场景,并总结出实战经验和教训的规范指导。
目标收益
1、掌握基本的架构思维和架构设计原则,同时洞悉高可用架构的本质,并可以掌握设计高可用架构的能力,以及掌握最优代码落地的能力;
2、能够根据特定的场景和问题进行合理的架构设计,掌握如何拉近问题和架构方案的距离的能力,以及在防止过度设计的同时,还能保持架构可以持续演进;
3、能清晰的知道一个架构从高可用到不可用的路径上都发生了什么,以及如何防范,如何防腐,最后还可以洞悉当前一线大厂的真实案例。
4、能理解组织和人的因素对架构及线上环境的影响,以及如何在现有的组织架构下有效的让价格设计发货最大的作用;
培训对象
3-5年工作经验以上高级开发人员和架构师;
课程大纲
一、高可用设计:架构设计后如何一步步落地 1.1、架构的智慧 |
架构的价值 架构的终极目标是什么 架构的质量受哪些因素影响 如何缩短问题和解决方案的距离 如何做到整洁架构的向内设计 架构设计时不要忘记业务-不要让架构绑架业务 架构老化与重构 到底哪些工作是架构师的职责 研发团队在企业组织中的价值是什么 |
1.2、宏观:如何实践微服务 |
服务拆分的四大时机 服务拆分的六大规范 服务拆分的四大阻碍 不能忽视的越权访问 如何利用测试金字塔模型 如何利用消费者驱动契约测试 如何利用数据库优化金字塔模型 如何做服务治理 |
1.3、微观:代码落地保障 |
设计模式和设计原则如何选 如何应用SOLID原则 如何应用KISS原则 不能只做结构化编程 什么情下你没有在执行OO思想 依赖倒置不止于面向抽象 代码分层的逻辑 如何做接口设计 如何做缓存设计 如何写出一份优雅的设计文档 如何让别人舒服的阅读自己的代码 如何让自己舒服的阅读别人的代码 |
二、架构腐化:高可用架构又如何一步步变的不可用了 2.1、高可用的本质 |
主从结构的逻辑 扩展立方体要指导我们做什么 如何做到变更速度和变更原因的分离 如何划分服务之间的边界 同步和异步如何选 一次RPC调用时间都去哪儿了 案例:一个可扩展的架构演变 |
2.2、架构的熵增 |
是什么让架构变的无序 如何执行演进式架构 如何落地六边形架构 如何做无状态的架构 你必须要知道的脑裂问题 空间与时间维度的解耦 如何最大化利用MQ集群性能 混沌工程实践 |
2.3、线上常见问题解析 |
线上故障画像 故障TOP场景 系统常用容错方法 不可用案例: 一味的向上扩展 未分清变更速度和变更原因 软件工程师的自我欺骗 进行向外依赖的设计 API业务组合放到了网关内部 状态阻碍了扩展 理想化的一步到位拆分 忽略了越权访问 未遵循测试金字塔模型 敏捷型组织错位 忽略了故障神经线 人造肉鸡:客户端重试 局部故障:快速失败失效 局部故障:未做线程池隔离 未遵循数据库优化金字塔模型 热点KEY触发单点限流 分布式流控失效 未把故障和问题区分开 未区分部署和上线 认为异步是万能的 |
一、高可用设计:架构设计后如何一步步落地 1.1、架构的智慧 架构的价值 架构的终极目标是什么 架构的质量受哪些因素影响 如何缩短问题和解决方案的距离 如何做到整洁架构的向内设计 架构设计时不要忘记业务-不要让架构绑架业务 架构老化与重构 到底哪些工作是架构师的职责 研发团队在企业组织中的价值是什么 |
1.2、宏观:如何实践微服务 服务拆分的四大时机 服务拆分的六大规范 服务拆分的四大阻碍 不能忽视的越权访问 如何利用测试金字塔模型 如何利用消费者驱动契约测试 如何利用数据库优化金字塔模型 如何做服务治理 |
1.3、微观:代码落地保障 设计模式和设计原则如何选 如何应用SOLID原则 如何应用KISS原则 不能只做结构化编程 什么情下你没有在执行OO思想 依赖倒置不止于面向抽象 代码分层的逻辑 如何做接口设计 如何做缓存设计 如何写出一份优雅的设计文档 如何让别人舒服的阅读自己的代码 如何让自己舒服的阅读别人的代码 |
二、架构腐化:高可用架构又如何一步步变的不可用了 2.1、高可用的本质 主从结构的逻辑 扩展立方体要指导我们做什么 如何做到变更速度和变更原因的分离 如何划分服务之间的边界 同步和异步如何选 一次RPC调用时间都去哪儿了 案例:一个可扩展的架构演变 |
2.2、架构的熵增 是什么让架构变的无序 如何执行演进式架构 如何落地六边形架构 如何做无状态的架构 你必须要知道的脑裂问题 空间与时间维度的解耦 如何最大化利用MQ集群性能 混沌工程实践 |
2.3、线上常见问题解析 线上故障画像 故障TOP场景 系统常用容错方法 不可用案例: 一味的向上扩展 未分清变更速度和变更原因 软件工程师的自我欺骗 进行向外依赖的设计 API业务组合放到了网关内部 状态阻碍了扩展 理想化的一步到位拆分 忽略了越权访问 未遵循测试金字塔模型 敏捷型组织错位 忽略了故障神经线 人造肉鸡:客户端重试 局部故障:快速失败失效 局部故障:未做线程池隔离 未遵循数据库优化金字塔模型 热点KEY触发单点限流 分布式流控失效 未把故障和问题区分开 未区分部署和上线 认为异步是万能的 |