4006-998-758
3000+课程任你选择
软件架构案例分析与最佳实践 -大型分布式架构
研发学院 开课时间:2021-07-02
刘兵

曾就职于 IBM 中国研发中心,任 WebSphere 软件架构师。

后加入 BEA 中国区专业服务部,任高级技术顾问、首席顾问、项目经理

主要负责 BEA 客户项目的架构设计和项目开发、技术支持,保证项目的成功实施、运行及维护。参加过全省、全国多个大型的计算机应用项目,涉及的行业领域包括电信、银行、 税务、社保等。 


查看老师详情
课程内容


为什么需要该课程


随着移动互联时代的到来,数据量急剧增加,并发量也变得越来越有挑战, 企业在规划和设计分布式系统的总体架构,涉及到方方面面的知识点,可选的方案也很多,如何在各种各样,纷繁复杂的技术中构建最适合企业的分布式系统架构(Distributed Architecture),变成了一件极具挑战的事情。一个好的分布式架构可以以最低的成本、更灵活的方式,满足企业用户需求。相反,糟糕的架构,不但花费了重金,而且架构过于复杂、过于笨重,线上故障不断,架构灵活性差,阻碍业务的发展。传统的 Monoliths 等架构已无法满足业务持续快速创新的需求, 分布式系统架构(Distributed Architecture)应运而生。相信大家对分布式系统架构都有一定的认识,但对分布式系统架构如何在项目中落地实践,缺乏一些经验。

软件架构是软件业的一个重要研究领域,正受到越来越多的关注,其地位也日益明显地体现出来.而架构设计师——也就成为软件系统的最高设计者。此课程就是为有志成为卓越架构师的人准备的培训课程。作为架构设计师,需要具备统观全局、分而治之的能力,从子系统的划分到组件的定义,从系统设计能力到沟通、协调,表达能力. 我们系统的组织课程,并由20年经验丰富的讲师传授,为您成长为架构设计师打下坚实的基础。

本课程通过介绍软件架构视图和软件文档,软件架构设计过程,软件架构应用与常用的架构模式/策略/原则等诸多架构实际问题,透视软件架构是如何设计和实现的? 并且介绍应该如何应用系统架构设计为后期的详细设计和应用开发提供指导。针对大多数企业目前是维护遗留系统, 该课程介绍了软件架构的监控,架构的坏症状和重构方法,因为架构设计的前期不能考虑到所有的问题,设计包容一切的完美架构. 还针对软件架构常见设计技术专题等问题进行了分析并提出了解决方案,并结合众多大型软件项目架构案例进行更深入的剖析!


适合哪些人员


软件架构师/技术总监/资深技术人员/高级软件设计师


谁已经选择了我们的咨询和培训



我们已经为几十家企业提供了多次培训和咨询服务,以下企业已经选择了我们的内训课程

互联网研发企业,比如百度研发中心,阿里巴巴, 腾讯 ,畅唐科技, 猎豹移动(原金山移动)

电信研发企业,比如思科研发中心,阿尔卡特-朗讯研发中心,华为研发中心,摩托罗拉研发中心,大唐电信研发,广州从兴电子,亿阳通信 , 爱立信研发中心,鼎桥通信技术, 艾默生研发中心,中兴通讯研发中心,

广州诚毅科技研发中心,神州数码网络通信研发中心,北京全路通信信号研究设计院,上海贝尔电信

企业软件研发企业,比如Adobe中国研发中心,北京久其研发中心,博古中国研发中心,金蝶深圳研发中心, EMC中国研发中心(北京和上海),VMware中国研发中心,珠海远光,爱德万测试有限公司advantest

嵌入式软件企业,比如阿尔卑斯中国研发中心,德国M&M Software,西门子研发中心, Sony研发中心,金立智能研究院,南车研发中心,德塞西威,霍尼韦尔研发中心, 东芝中国研发中心, 汇川科技, 霍尼韦尔

外包类企业,联盟计算机服务

金融行业:恒生电子,华腾,中国人民银行研发中心,工商行研发中心,平安科技研发中心,建行研发中心,深圳登记结算研发中心,花旗银行中国研发中心


课程内容安排

 

第一篇: 软件架构核心原理和设计过程

主题

培训内容

备注

第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. 如何应对系统内部紧耦合、高内聚

7. 软件系统关键质量属性树和可行性分析

8. 软件系统部署架构(分布式/数据分布/通信/安全)

9. 软件系统部署容量评估(主机/中间件/数据库等资源容量评估)

10. 应用系统的类型和架构风格

11. 架构模式在实际项目的应用

12. 软件架构立方体图(软件架构的分层,分区和基础服务)

13. 软件架构通用机制的分析(如何处理基础设施扩展和具体有什么方法做基础设施扩展, 掌握如何分离这些基础设施用例)

14. 使用质量场景属性进行迭代架构设计

15. 软件架构各层的架构策略(针对企业应用分层,每层的架构策略)

16. 软件系统线程架构策略(结合Apache HTTP Server分析线程和进程的架构)

17. 数据架构(数据模型/数据分布/数据存取,以及核心数据流)

18. 用例视图(抽取典型,有分险和客户最关心用例进行分析,结合架构进行设计)

19. 实现视图(架构,设计和开发,实现原则和指南)

20. 完成架构文档,对架构文档进行评估

21. 典型案例分析:结合3G增值服务项目,分析物理架构设计


第4单元:软件架构应用

内容一、架构设计的评估和验证

1. 软件架构的验证(软件架构风险验证)

2. 软件架构的验证方法和指标(基于问题检查表和质量属性树)

3. 软件架构的验证注意事项

4. 软件架构的评估方式

5. 软件详细设计和实现时期,架构师的职责和架构的监控

6. 典型案例分析:结合项目实例,分析如何进行验证架构和架构设计的后期重构技巧

 

内容二、架构设计重构和复用

1. 软件架构重构概述

2. 软件架构常见的坏症状

3. 软件架构的重构手段

4. 软件架构的复用

5. 结合某著名公司全球架构师团队架构实例,分析架构重构和架构复用技巧


第二篇: 软件架构分层架构和每层核心策略

第5单元:软件架构核心策略

内容一:领域模型层架构

1. 领域模型架构策略

2. 领域模型建模(关联,属性)

3. 多个系统数据模型不一致和领域模型的同步

4. 公共数据模型(CDM)

5. 领域模型分析模式(模型的选择会影响最终产生系统的灵活性和可重用性)

6. 根据电信计费系统和网络资源管理案例分析领域模型的架构

 

内容二:业务逻辑层

1. 业务逻辑架构模式(事务脚本/领域模型/服务层模式)   

2. 业务流程架构策略

3. 基于容器的业务逻辑架构(EJB和轻量级,以及容器提供的基础服务)

4. 面向方面的业务架构和AOP技术在业务逻辑架构的应用

5. 状态管理架构策略(有状态和无状态服务,以及对可扩展性的影响)

6. 业务逻辑的分布式架构策略(远程或本地/同步或异步)

7. 并发和同步架构模式(Half-Sync/Half-Async和Leader/Followers和Active Object和Monitor Object)

8. 基于中间件的业务逻辑架构(Corba/Tuxedo/MQSeries/J2EE/.net)

9. 典型案例分析:结合某银行交易系统分析业务逻辑架构

 

内容三:数据存取(持久性)层架构

1. 数据存取架构策略(对象和关系数据库的映射)

2. 对象关系阻抗/ORM技术/数据映射SQLMapper

3. 缓存技术在存取层的应用/缓存数据和数据库数据一致性

4. 分布式数据存取策略(读写分离/分布数据/异构数据存取)

5. 数据同步和一致性策略

6. 数据访问层的性能考虑

7. 事务管理(本地事务和分布式事务,以及事务补偿)

8. 数据锁管理(悲观锁和乐观锁)

9. 典型案例分析:结合零售行业POS项目分析数据访问层的架构设计

 

内容四:数据架构

1. 数据架构概述

2. 数据建模原则和优化策略

3. 数据复制和同步策略

4. 数据一致性和分布式事务 

5. 大数据量数据库可扩展性(水平和垂直扩展,读写分离)以及单表记录过大拆分策略

6.  数据库集群规划

7. 分布式数据存取策略(跨多个库, 可能数据库异构类型)

8. 数据备份与恢复

9. 数据库性能规划

10. 数据安全策略

11. 与遗留系统的数据库兼容性考虑

12. 结合电信,金融,零售POS项目实例分析,系统数据架构设计策略

 

内容五:系统基础服务组件架构

1. 系统基础服务组件架构策略

2. 系统通用服务层与业务逻辑分离

3. 系统必备13种基础服务架构(异常处理/事务管理/缓存/工作流/校验/通信/安全/日志/定时触发/状态/消息通信/系统监控/配置管理)

4. 业务通用服务架构实现策略

5. 结合多个项目实例分析,架构师如何萃取基础服务组件和怎样设计实现


   第三篇:大型高可用高并发分布式系统架构设计与实践

第6单元  大型分布式架构设计最佳实践

内容一:大型分布式架构核心概念

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. 高可用性设计与实践;


第四篇:微服务架构 

第7单元 微服务架构

内容一:微服务架构诞生—为什么出现微服务架构

1. 单块架构及其面临的挑战

2. 分层应用架构

3. 单块架构特点

4. 单块架构面临的挑战

5. 通过某传统ERP系统为案例分析上线后问题

 

内容二:微服务架构与SOA架构

1. SOA的基本概念

2. SOA方法学和其他方法学的比较

3. 面向服务的分析和设计概述

4. SOA概念层次

5. SOA参考架构

6. SOA基础架构设施

7. ESB基础概念和职责

8. 协议驱动和API驱动的ESB

9. BPM概念和SOA

10. 业务流程建模和基于服务的BPM

11. 软件体系结构的演变和面向服务的设计原则

12. 通过多个SOA架构案例分析

 

内容三:微服务架构

1. 为什么需要微服务架构

2. 如何解决传统应用架构的问题

3. 微服务架构是什么

4. 微服务架构概念

5. 微服务架构参考架构模式

6. 通过分析多个微服务架构案例,了解微服务架构的参考模式

 

内容四:微服务架构开发实现---SpringBoot

1. Spring Boot概述

2. 运用Spring Boot

3. Groovy与Spring Boot CLI

4. 在Spring Boot中使用Grails

5. 深入Actuator

6. 部署Spring Boot应用程序

7. Spring Boot 的数据访问

8. Spring Boot 企业级开发

9. Spring Boot 开发部署与测试

10. 多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑)

 

内容五:微服务架构与云架构--Spring Cloud平台

1. 云计算平台架构

2. 为什么选择Spring Cloud

3. Spring Cloud

4. 服务治理:Spring Cloud Eureka

5. 客户端负载均衡:Spring Cloud Ribbon

6. 服务容错保护:Spring Cloud Hystrix

7. 声明式服务调用:Spring Cloud Feign

8. 分布式配置中心:Spring Cloud Config

9. 消息总线:Spring Cloud Bus

10. 多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构

 

内容六:微服务注册

1. 为什么要服务注册

2. 服务注册实现方式

3. 使用NetflixEureka/SpringCloud实现服务注册

4. 使用NetflixRibbon/SpringCloud实现客户端负载均衡

 

内容七:微服务发现

1. 为什么要服务发现

2. 服务发现的实现方式


              第五篇: 基于云与容器架构

第8单元: 基于云与容器技术架构

内容一、软件架构师成长

1. 云原生架构设计理念

2. 容器技术介绍与传统虚拟机对比

3. Docker与Kubernetes原理解析

4. 容器云化场景下的运维变化

5. 微服务与容器的优雅集成

6. Docker快速入门

7. Docker镜像生产构建实战

8. 容器技术概述

9. Kubernetes概述

10. Kubernetes集群组件

11. Kubernetes网络模型


           第六篇: 案例分析

第9单元:软件应用类型和参考架构(不同应用类型,必须采用不同架构风格)

内容一:软件应用类型和参考架构

1. 联机交易类架构

2. Web应用系统/大规模高并发Web2.0互联网系统

3. Client/Server系统(银行交易系统)

4. 连接分析分析系统(移动经营分析系统)

5. 大规模实时并发系统(电信计费系统)

6. Portal系统(个性化和页面集成系统 )

7. EAI企业集成系统(基于大规模消息集成系统)

8. 基于WAP系统(多渠道/多种手机接入系统)

9. 后台批处理系统(高并发后台批处理类型 银行后台系统)

10. 基于SOA架构系统

结合多个项目案例分析每种应用类型的架构风格特点,主要架构挑战和相应对策


第10单元:大型软件系统架构实践与剖析

(该案例分别在以上各单元,结合主题进行介绍)

综合软件架构实践与剖析(以实际项目案例为背景)

(1)电信行业(电信97/移动BOSS/电信MBOSS/经营分析)软件架构案例研究

(2)金融行业(XXX银行企业信贷和XXX银行)软件架构案例研究

(3)政府行业(XXX社保和XXX税务)软件架构案例研究

(4)电力行业(SG168和XXX电网门户系统)软件架构案例研究

(5)大型互联网系统架构案例研究

(6)邮政行业(***邮政项目)案例研究


 

返回上一级