课程背景
随着移动互联时代的到来,数据量急剧增加,并发量也变得越来越有挑战, 企业在规划和设计分布式系统的总体架构,涉及到方方面面的知识点,可选的方案也很多,如何在各种各样,纷繁复杂的技术中构建最适合企业的分布式系统架构(Distributed Architecture),变成了一件极具挑战的事情。一个好的分布式架构可以以最低的成本、更灵活的方式,满足企业用户需求。相反,糟糕的架构,不但花费了重金,而且架构过于复杂、过于笨重,线上故障不断,架构灵活性差,阻碍业务的发展。传统的 Monoliths 等架构已无法满足业务持续快速创新的需求, 分布式系统架构(Distributed Architecture)应运而生。相信大家对分布式系统架构都有一定的认识,但对分布式系统架构如何在项目中落地实践,缺乏一些经验。
软件架构是软件业的一个重要研究领域,正受到越来越多的关注,其地位也日益明显地体现出来.而架构设计师——也就成为软件系统的最高设计者。此课程就是为有志成为卓越架构师的人准备的培训课程。作为架构设计师,需要具备统观全局、分而治之的能力,从子系统的划分到组件的定义,从系统设计能力到沟通、协调,表达能力. 我们系统的组织课程,并由20年经验丰富的讲师传授,为您成长为架构设计师打下坚实的基础。
本课程通过介绍软件架构视图和软件文档,软件架构设计过程,软件架构应用与常用的架构模式/策略/原则等诸多架构实际问题,透视软件架构是如何设计和实现的? 并且介绍应该如何应用系统架构设计为后期的详细设计和应用开发提供指导。针对大多数企业目前是维护遗留系统, 该课程介绍了软件架构的监控,架构的坏症状和重构方法,因为架构设计的前期不能考虑到所有的问题,设计包容一切的完美架构. 还针对软件架构常见设计技术专题等问题进行了分析并提出了解决方案,并结合众多大型软件项目架构案例进行更深入的剖析!
课程对象
软件架构师/技术总监/资深技术人员/高级软件设计师
课程时长
3天(6小时/天)
课程大纲
(该内容为多天版本,实际课程根据课前沟通进行定制)
第一篇: 分布式软件架构核心原理和设计过程 | ||
主题 | 培训内容 | 备注 |
第1单元 软件架构文档和架构视图-如何有效描述架构蓝图
| 内容一:软件架构的视图 1. 软件架构的视图原理 2. 软件架构视图的意义, 软件架构师的多维思考 3. 逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图 4. 如何和怎样绘制软件架构视图 5. UML建模工具在架构视图的应用 6. 典型案例分析:结合多个电信,金融行业项目案例,分析真实项目软件架构视图 内容二: 软件架构的文档编写 1. 软件架构文档的意义 2. 软件架构模板(根据实际项目情况选择合适内容) 3. 软件架构文档的结构(避免出现不必要的重复和缺少关键信息) 4. 软件架构文档必须包含的内容(通过多个项目,分析不同系统包含系统内容不同) 5. 文档的后期管理(使文档保持更新) 6. 软件架构文档的评审 7. 典型案例分析:结合多个电信项目案例,进行分析和评审软件架构文档 8. 典型案例分析:结合多个电信项目案例,进行分析和评审软件架构文档 | |
第2单元 软件架构设计关注点(哪些因素驱动架构设计,是架构开始设计之前必须知道的?)和架构最佳策略 | 内容一:软件架构设计关注点(软件架构师在架构设计之前必须考虑的要素) 1. 架构设计的关注是什么 2. 软件架构的驱动因素(改变传统以功能实现和新技术为驱动的策略) 3. 软件质量需求对架构的影响(质量属性场景定义和对应架构策略) 4. 软件功能需求对架构的影响(分析功能需求变化点和进化点) 5. 软件约束条件与架构的影响(业务,运行环境,开发团队,实现技术等约束) 6. 如何使功能性需求,非功能性需求和平台细节在架构中能保持分离,从而改善可维护性和可扩展性 7. 处理功能需求,非功能性需求,平台细节.制定架构目标 8. 典型案例分析:结合项目,因为分析驱动因素的错误,导致项目不能如期验收的失败案例 内容二:软件架构最佳策略 1. 重新认识系统质量属性,如何定义质量属性和相应的架构策略 2. 系统架构的可扩展性设计策略 3. 系统架构的可靠性设计策略 4. 系统架构的高性能设计策略 5. 系统架构的可维护性设计策略 6. 系统架构的易用性设计策略 7. 系统架构质量属性和架构模式的应用 8. 通过分析案例,了解基本架构策略如何应用 | |
第3单元 软件架构应用 | 内容一、架构设计的评估和验证 1. 软件架构的验证(软件架构风险验证) 2. 软件架构的验证方法和指标(基于问题检查表和质量属性树) 3. 软件架构的验证注意事项 4. 软件架构的评估方式 5. 软件详细设计和实现时期,架构师的职责和架构的监控 6. 典型案例分析:结合项目实例,分析如何进行验证架构和架构设计的后期重构技巧 内容二、架构设计重构和复用 1. 软件架构重构概述 2. 软件架构常见的坏症状 3. 软件架构的重构手段 4. 软件架构的复用 5. 结合某著名公司全球架构师团队架构实例,分析架构重构和架构复用技巧 | |
第二篇: 微服务架构最佳实践 | ||
第4单元 微服务架构 | 内容一:微服务架构概述 1. 什么是单体地狱 2. 单体架构的好处 3. 拯救之道:微服务架构 4. 微服务架构与SOA的异同 5. 微服务架构的好处和弊端 6. 微服务的流程和组织 内容二:微服务架构中的业务逻辑设计 1. 微服务架构中的业务逻辑设计 2. 使用事务脚本模式设计业务逻辑 3. 使用领域模型模式设计业务逻辑 4. 业务逻辑组织模式 5. 使用聚合模式设计领域模型 6. 发布领域事件 / 7. 为什么需要发布变更事件 8. 使用事件溯源开发业务逻辑概述 | |
第5单元 微服务架构—服务分解和建模 | 内容一:微服务分解和服务颗粒度 1.微服务架构构成(服务拆分、服务拓扑关系图); 2.微服务架构设计原则; 3.微服务架构服务粒度设计; 4.微服务架构之我们的实践案例; 5.通过大量项目案例分析,什么是好的服务,服务的分解和服务颗粒度 内容二:微服务建模 1. 如何建模服务 2. 什么样的服务是好服务 3. 微服务的松耦合和高内聚 4. 微服务限界上下文 5. 微服务的业务功能 6. 逐步划分服务上下文 7. 微服务与业务概念 8. 微服务技术边界 9. 通过案例分析微服务建模 | |
第6单元 微服务架构最佳实践 | 内容一:微服务架构最佳实践 1. 微服务架构设计之微服务无状态化设计; 2. 微服务架构设计之负载均衡设计; 3. 微服务架构设计之分级管理; 4. 微服务架构设计之异步调用(状态机等方式); 5. 微服务架构设计之设置合理超时; 6. 微服务架构设计之服务降级; 7. 微服务架构设计之幂等设计; 8. 微服务架构设计之我们的实践案例; 内容二:微服务架构 高可用性最佳实践 1. 微服务架构之服务高可用概念; 2. 微服务架构之服务高可用使用业务场景; 3. 微服务架构之服务高可用设计环节; 4. 微服务架构之服务高可用之原则篇、架构篇、框架篇、业务篇; 5. 微服务架构之移动时代高可用打造; 6. 微服务架构之我们的实践案例; 内容三:微服务架构 监控最佳实践 1. 微服务架构监控重要性; 2. 微服务架构监控数据采集方法; 3. 微服务架构监控设计; 4. 微服务架构之进程监控; 5. 微服务架构之语义监控; 6. 微服务架构之错误日志监控; 7. 微服务架构之机器资源监控; 8. 微服务架构之数据波动监控; 9. 微服务架构之优秀监控框架选择(open-falcon); 10. 微服务架构设计之我们的实践案例;; 内容四:微服务架构 高性能最佳实践 1. 微服务架构之服务高性能评估目的; 2. 微服务架构之服务高性能相关环节; 3. 微服务架构之服务高性能评估工具; 4. 微服务架构之服务高性能评估方法; 5. 微服务架构之服务扩容; 6. 微服务架构之我们的案例; 内容五:微服务架构 分布式事物 1. 分布式问题的场景: 2. DB与DB的分布式事务,DB与服务的分布式事务,服务与服务的分布式事务 3. 常用的分布式问题解决方案与框架: 4. 2PC, TCC, 最终一致性,1PC,对账 内容六:微服务架构 未来 1. 什么是Service Mesh 2. Service Mesh的架构解析 3. Service Mesh架构设计思考 | |
第7单元--使用微服务架构改造遗留系统 | 内容一:使用微服务架构改造遗留系统 1. 背景与挑战 2. 改造策略 3. 逐步替换微服务 4. 功能剥离和封装 5. 依赖数据解耦和基础数据共享 6. 通过案例分析微服务架构改造 | |
第三篇: 分布式系统架构设计与实践 | ||
第8单元 大型分布式架构设计最佳实践 | 内容一:大型分布式架构核心概念 1. 无状态化设计; 2. 冗余设计; 3. 负载均衡设计; 4. 分级管理设计; 5. 纯异步调用(状态机等方式)设计; 6. 调用合理超时设计; 7. 服务降级设计; 8. 幂等设计; 9. 我们的实践案例; 内容二:大型分布式系统服务降级设计与实践 1. 服务限流降级概念; 2. 服务限流降级使用业务场景; 3. 服务限流降级设计环节; 4. 服务限流降级之原则篇、架构篇、框架篇、业务篇; 5. 移动时代服务限流降级如何打造; 6. 我们的实践案例; 内容三:大型分布式系统缓存设计与实践 1. 互联网使用缓存类型有哪些?各自作用是什么? 2. 分布式缓存冗余如何设计? 3. 高可用架构缓存一致性如何保证? 4. 高可用架构缓存高性能如何保证? 5. 我们的实践案例; 6. 缓存系统在大型网站架构中发挥的作用 7. 单机缓存系统自研与选型 8. Memcached与Redis的异同及应用场景 9. 深入剖析Redis技术 10. Redis主要数据结构剖析 11. Redis性能优化及配置优化 12. Redis复制机制与持久化机制 13. Redis缺陷与陷阱 14. 分布式缓存技术剖析 15. 扩展Redis集群,如何实现集群弹性伸缩,无缝扩容 16. Redis Cluster官方集群扩展方案及缺陷 业界主流Redis集群方案剖析 内容四:大型分布式系统性能优化 1. 系统性能优化的模式都有哪些; 2. 系统性能优化常用的步骤是什么; 3. 系统性能优化的环节都能哪些; 4. 我们的实践案例; 内容五:分布式系统数据库架构设计与实践 1. 数据库架构设计基本概念; 2. 高可用性设计与实践; 3. 高并发设计与实践; 4. 读性能设计与实践; 5. 一致性设计与实践; 6. 扩展性设计与实践; 7. 我们的实践案例; 内容六:分布式系统数据库架构设计与实践 1. 数据库架构设计基本概念; 2. 高可用性设计与实践; |