软件架构案例分(fēn)析与最佳实践

软件架构案例分(fēn)析与最佳实践
    马上咨询

    刘捷  曾任BEA中國(guó)专业服務(wù)部 高级架构师顾问    

    现任职Oracle架构咨询顾问,帮企业诊断架构性能(néng)问题,曾任职BEA(中國(guó))资深软件架构师,十余年的企业软件架构、开发和管理(lǐ)经验,侧重于企业应用(yòng)软件架构设计.主要负责客户大型项目的架构设计和研发,作為(wèi)技术专家保证项目的成功实施,运行和维护。参加过全國(guó)/全省多(duō)个大型的计算机应用(yòng)项目,擅長(cháng)的领域包括電(diàn)信,金融、税務(wù),大型互联网web2.0应用(yòng)等。此前就职于IBM,任软件架构师。 在此之前曾任日本东京一家软件企业的资深技术顾问。

    為(wèi)什么需要该课程 

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

    软件架构是软件业的一个重要研究领域,正受到越来越多(duō)的关注,其地位也日益明显地體(tǐ)现出来.而架构设计师——也就成為(wèi)软件系统的最高设计者。此课程就是為(wèi)有(yǒu) 志(zhì)成為(wèi)卓越架构师的人准备的培训课程。作為(wèi)架构设计师,需要具备统观全局、分(fēn)而治之的能(néng)力,从子系统的划分(fēn)到组件的定义,从系统设计能(néng)力到沟通、协调,表达能(néng)力. 我们系统的组织课程,并由20年经验丰富的讲师传授,為(wèi)您成長(cháng)為(wèi)架构设计师打下坚实的基础。

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

    适合哪些人员

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

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

    我们已经為(wèi)几十家企业提供了多(duō)次培训和咨询服務(wù),以下企业已经选择了我们的内训课程

    • 互联网研发企业,比如百度研发中心,阿里巴巴, 腾讯 ,畅唐科(kē)技, 猎豹移动(原金山(shān)移动)
    • 電(diàn)信研发企业,比如思科(kē)研发中心,阿尔卡特-朗讯研发中心,华為(wèi)研发中心,摩托罗拉研发中心,大唐電(diàn)信研发,广州从兴電(diàn)子,亿阳通信 , 爱立信研发中心,鼎桥通信技术, 艾默生研发中心,中兴通讯研发中心,广州诚毅科(kē)技研发中心,神州数码网络通信研发中心,北京全路通信信号研究设计院,上海贝尔電(diàn)信
    • 企业软件研发企业,比如Adobe中國(guó)研发中心,北京久其研发中心,博古中國(guó)研发中心,金蝶深圳研发中心, EMC中國(guó)研发中心(北京和上海),VMware中國(guó)研发中心,珠海遠(yuǎn)光,爱德万测试有(yǒu)限公司advantest
    • 嵌入式软件企业,比如阿尔卑斯中國(guó)研发中心,德國(guó)M&M Software,西门子研发中心, Sony研发中心,金立智能(néng)研究院,南車(chē)研发中心,德塞西威,霍尼韦尔研发中心, 东芝中國(guó)研发中心, 汇川科(kē)技,霍尼韦尔
    • 外包类企业,联盟计算机服務(wù)
    • 金融行业,恒生電(diàn)子,华腾,中國(guó)人民(mín)银行研发中心,工商(shāng)行研发中心,平安科(kē)技研发中心,建行研发中心,深圳登记结算研发中心,花(huā)旗银行中國(guó)研发中心

    课程内容安排(该内容為(wèi)多(duō)天版本,实际课程根据课前沟通进行定制)

    第一篇:软件架构核心原理(lǐ)和设计过程
    第1单元:软件架构文(wén)档和架构视图-如何有(yǒu)效描述架构蓝图

    内容一:软件架构的视图
    1. 软件架构的视图原理(lǐ)
    2. 软件架构视图的意义, 软件架构师的多(duō)维思考
    3. 逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图
    4. 如何和怎样绘制软件架构视图
    5. UML建模工具在架构视图的应用(yòng)
    6.   典型案例分(fēn)析:结合多(duō)个電(diàn)信,金融行业项目案例,分(fēn)析真实项目软件架构视图
    内容二:软件架构的文(wén)档编写
    1. 软件架构文(wén)档的意义
    2. 软件架构模板(根据实际项目情况选择合适内容)
    3. 软件架构文(wén)档的结构(避免出现不必要的重复和缺少关键信息)
    4. 软件架构文(wén)档必须包含的内容(通过多(duō)个项目,分(fēn)析不同系统包含系统内容不同)
    5. 文(wén)档的后期管理(lǐ)(使文(wén)档保持更新(xīn))
    6. 软件架构文(wén)档的评审
    7. 典型案例分(fēn)析:结合多(duō)个電(diàn)信项目案例,进行分(fēn)析和评审软件架构文(wén)档
    8. 典型案例分(fēn)析:结合多(duō)个電(diàn)信项目案例,进行分(fēn)析和评审软件架构文(wén)档
    第2单元:软件架构设计关注点(哪些因素驱动架构设计,是架构开始设计之前必须知道的?)和架构最佳策略

    内容一:软件架构设计关注点(软件架构师在架构设计之前必须考虑的要素)
    1. 架构设计的关注是什么
    2. 软件架构的驱动因素(改变传统以功能(néng)实现和新(xīn)技术為(wèi)驱动的策略)
    3. 软件质量需求对架构的影响(质量属性场景定义和对应架构策略)
    4. 软件功能(néng)需求对架构的影响(分(fēn)析功能(néng)需求变化点和进化点)
    5. 软件约束条件与架构的影响(业務(wù),运行环境,开发团队,实现技术等约束)
    6. 如何使功能(néng)性需求,非功能(néng)性需求和平台细节在架构中能(néng)保持分(fēn)离,从而改善可(kě)维护性和可(kě)扩展性
    7. 处理(lǐ)功能(néng)需求,非功能(néng)性需求,平台细节.制定架构目标
    8. 典型案例分(fēn)析:结合项目,因為(wèi)分(fēn)析驱动因素的错误,导致项目不能(néng)如期验收的失败案例
    内容二:软件架构最佳策略
    1. 重新(xīn)认识系统质量属性,如何定义质量属性和相应的架构策略
    2. 系统架构的可(kě)扩展性设计策略
    3.   系统架构的可(kě)靠性设计策略
    4.   系统架构的高性能(néng)设计策略
    5.   系统架构的可(kě)维护性设计策略
    6.   系统架构的易用(yòng)性设计策略
    7.   系统架构质量属性和架构模式的应用(yòng)
    8.   通过分(fēn)析案例,了解基本架构策略如何应用(yòng)
    第3单元:软件架构设计过程

    内容一、软件架构设计过程
    1. 软件架构设计过程方法论(步骤和相应的成果)
    2. 软件系统边界和外部系统接口的定义
    3. 大型软件系统的划分(fēn)子系统原则
    4. 子系统功能(néng)模块的分(fēn)解
    5. 子系统间的通信接口的设计
    6. 如何应对系统内部紧耦合、高内聚
    7. 软件系统关键质量属性树和可(kě)行性分(fēn)析
    8. 软件系统部署架构(分(fēn)布式/数据分(fēn)布/通信/安全)
    9.   软件系统部署容量评估(主机/中间件/数据库等资源容量评估)
    10. 应用(yòng)系统的类型和架构风格
    11. 架构模式在实际项目的应用(yòng)
    12. 软件架构立方體(tǐ)图(软件架构的分(fēn)层,分(fēn)區(qū)和基础服務(wù))
    13. 软件架构通用(yòng)机制的分(fēn)析(如何处理(lǐ)基础设施扩展和具體(tǐ)有(yǒu)什么方法做基础设施扩展, 掌握如何分(fēn)离这些基础设施用(yòng)例)
    14. 使用(yòng)质量场景属性进行迭代架构设计
    15. 软件架构各层的架构策略(针对企业应用(yòng)分(fēn)层,每层的架构策略)
    16. 软件系统線(xiàn)程架构策略(结合Apache   HTTP Server分(fēn)析線(xiàn)程和进程的架构)
    17. 数据架构(数据模型/数据分(fēn)布/数据存取,以及核心数据流)
    18. 用(yòng)例视图(抽取典型,有(yǒu)分(fēn)险和客户最关心用(yòng)例进行分(fēn)析,结合架构进行设计)
    19. 实现视图(架构,设计和开发,实现原则和指南)
    20. 完成架构文(wén)档,对架构文(wén)档进行评估
    21. 典型案例分(fēn)析:结合3G增值服務(wù)项目,分(fēn)析物(wù)理(lǐ)架构设计
    第4单元:软件架构应用(yòng)

    内容一、架构设计的评估和验证
    1. 软件架构的验证(软件架构风险验证)
    2. 软件架构的验证方法和指标(基于问题检查表和质量属性树)
    3. 软件架构的验证注意事项
    4. 软件架构的评估方式
    5. 软件详细设计和实现时期,架构师的职责和架构的监控
    6. 典型案例分(fēn)析:结合项目实例,分(fēn)析如何进行验证架构和架构设计的后期重构技巧
    内容二、架构设计重构和复用(yòng)
    1.   软件架构重构概述
    2.   软件架构常见的坏症状
    3.   软件架构的重构手段
    4.   软件架构的复用(yòng)
    5.   结合某著名公司全球架构师团队架构实例,分(fēn)析架构重构和架构复用(yòng)技巧
    第二篇:软件架构分(fēn)层架构和每层核心策略
    第5单元:软件架构核心策略

    内容一:领域模型层架构
    1.   领域模型架构策略
    2.   领域模型建模(关联,属性)
    3.   多(duō)个系统数据模型不一致和领域模型的同步
    4.   公共数据模型(CDM)
    5.   领域模型分(fēn)析模式(模型的选择会影响最终产生系统的灵活性和可(kě)重用(yòng)性)
    6.   根据電(diàn)信计费系统和网络资源管理(lǐ)案例分(fēn)析领域模型的架构
    内容二:业務(wù)逻辑层
    1.   业務(wù)逻辑架构模式(事務(wù)脚本/领域模型/服務(wù)层模式)   
    2.   业務(wù)流程架构策略
    3.   基于容器的业務(wù)逻辑架构(EJB和轻量级,以及容器提供的基础服務(wù))
    4.   面向方面的业務(wù)架构和AOP技术在业務(wù)逻辑架构的应用(yòng)
    5.   状态管理(lǐ)架构策略(有(yǒu)状态和无状态服務(wù),以及对可(kě)扩展性的影响)
    6.   业務(wù)逻辑的分(fēn)布式架构策略(遠(yuǎn)程或本地/同步或异步)
    7.   并发和同步架构模式(Half-Sync/Half-Async和Leader/Followers和Active Object和Monitor Object)
    8.   基于中间件的业務(wù)逻辑架构(Corba/Tuxedo/MQSeries/J2EE/.net)
    9.   典型案例分(fēn)析:结合某银行交易系统分(fēn)析业務(wù)逻辑架构
    内容三:数据存取(持久性)层架构
    1. 数据存取架构策略(对象和关系数据库的映射)
    2. 对象关系阻抗/ORM技术/数据映射SQLMapper
    3. 缓存技术在存取层的应用(yòng)/缓存数据和数据库数据一致性
    4. 分(fēn)布式数据存取策略(读写分(fēn)离/分(fēn)布数据/异构数据存取)
    5. 数据同步和一致性策略
    6. 数据访问层的性能(néng)考虑
    7. 事務(wù)管理(lǐ)(本地事務(wù)和分(fēn)布式事務(wù),以及事務(wù)补偿)
    8. 数据锁管理(lǐ)(悲观锁和乐观锁)
    9. 典型案例分(fēn)析:结合零售行业POS项目分(fēn)析数据访问层的架构设计
    内容四:数据架构
    1. 数据架构概述
    2. 数据建模原则和优化策略
    3. 数据复制和同步策略
    4. 数据一致性和分(fēn)布式事務(wù) 
    5. 大数据量数据库可(kě)扩展性(水平和垂直扩展,读写分(fēn)离)以及单表记录过大拆分(fēn)策略
    6.   数据库集群规划
    7.   分(fēn)布式数据存取策略(跨多(duō)个库, 可(kě)能(néng)数据库异构类型)
    8. 数据备份与恢复
    9.   数据库性能(néng)规划
    10.   数据安全策略
    11. 与遗留系统的数据库兼容性考虑
    12.   结合電(diàn)信,金融,零售POS项目实例分(fēn)析,系统数据架构设计策略
    内容五:系统基础服務(wù)组件架构
    1. 系统基础服務(wù)组件架构策略
    2. 系统通用(yòng)服務(wù)层与业務(wù)逻辑分(fēn)离
    3. 系统必备13种基础服務(wù)架构(异常处理(lǐ)/事務(wù)管理(lǐ)/缓存/工作流/校验/通信/安全/日志(zhì)/定时触发/状态/消息通信/系统监控/配置管理(lǐ))
    4. 业務(wù)通用(yòng)服務(wù)架构实现策略
    5. 结合多(duō)个项目实例分(fēn)析,架构师如何萃取基础服務(wù)组件和怎样设计实现
    第6单元:软件应用(yòng)类型和参考架构(不同应用(yòng)类型,必须采用(yòng)不同架构风格)

    内容一:软件应用(yòng)类型和参考架构
    1. 联机交易类架构
    2. Web应用(yòng)系统/大规模高并发Web2.0互联网系统
    3. Client/Server系统(银行交易系统)
    4. 连接分(fēn)析分(fēn)析系统(移动经营分(fēn)析系统)
    5. 大规模实时并发系统(電(diàn)信计费系统)
    6.   Portal系统(个性化和页面集成系统 )
    7.   EAI企业集成系统(基于大规模消息集成系统)
    8.   基于WAP系统(多(duō)渠道/多(duō)种手机接入系统)
    9.   后台批处理(lǐ)系统(高并发后台批处理(lǐ)类型银行后台系统)
    10. 基于SOA架构系统
    结合多(duō)个项目案例分(fēn)析每种应用(yòng)类型的架构风格特点,主要架构挑战和相应对策
    第三篇:大型高可(kě)用(yòng)高并发分(fēn)布式系统架构设计与实践
    第7单元   大型分(fēn)布式架构设计最佳实践

    内容一:大型分(fēn)布式架构核心概念
    1.   无状态化设计;
    2.   冗余设计;
    3.   负载均衡设计;
    4.   分(fēn)级管理(lǐ)设计;
    5.   纯异步调用(yòng)(状态机等方式)设计;
    6.   调用(yòng)合理(lǐ)超时设计;
    7.   服務(wù)降级设计;
    8.   幂等设计;
    9.   我们的实践案例;
    内容二:大型分(fēn)布式系统服務(wù)降级设计与实践
    1.   服務(wù)限流降级概念;
    2.   服務(wù)限流降级使用(yòng)业務(wù)场景;
    3.   服務(wù)限流降级设计环节;
    4.   服務(wù)限流降级之原则篇、架构篇、框架篇、业務(wù)篇;
    5.   移动时代服務(wù)限流降级如何打造;
    6.   我们的实践案例;
    内容三:大型分(fēn)布式系统缓存设计与实践
    1.   互联网使用(yòng)缓存类型有(yǒu)哪些?各自作用(yòng)是什么?
    2.   分(fēn)布式缓存冗余如何设计?
    3.   高可(kě)用(yòng)架构缓存一致性如何保证?
    4.   高可(kě)用(yòng)架构缓存高性能(néng)如何保证?
    5.   我们的实践案例;
    6.   缓存系统在大型网站架构中发挥的作用(yòng)
    7.   单机缓存系统自研与选型
    8.   Memcached与Redis的异同及应用(yòng)场景
    9.   深入剖析Redis技术
    10.   Redis主要数据结构剖析
    11.   Redis性能(néng)优化及配置优化
    12.   Redis复制机制与持久化机制
    13.   Redis缺陷与陷阱
    14.   分(fēn)布式缓存技术剖析
    15.   扩展Redis集群,如何实现集群弹性伸缩,无缝扩容
    16.   Redis Cluster官方集群扩展方案及缺陷
    业界主流Redis集群方案剖析
    内容四:大型分(fēn)布式系统性能(néng)优化
    1.   系统性能(néng)优化的模式都有(yǒu)哪些;
    2.   系统性能(néng)优化常用(yòng)的步骤是什么;
    3.   系统性能(néng)优化的环节都能(néng)哪些;
    4.   我们的实践案例;
    内容五:分(fēn)布式系统数据库架构设计与实践
    1.   数据库架构设计基本概念;
    2.   高可(kě)用(yòng)性设计与实践;
    3.   高并发设计与实践;
    4.   读性能(néng)设计与实践;
    5.   一致性设计与实践;
    6.   扩展性设计与实践;
    7.   我们的实践案例;
    内容六:分(fēn)布式系统数据库架构设计与实践
    1.   数据库架构设计基本概念;
    2.   高可(kě)用(yòng)性设计与实践;
    第四篇:微服務(wù)架构
    第8单元微服務(wù)架构

    内容一:微服務(wù)架构诞生為(wèi)什么出现微服務(wù)架构
    1.   单块架构及其面临的挑战
    2.   分(fēn)层应用(yòng)架构
    3.   单块架构特点
    4.   单块架构面临的挑战
    5.   通过某传统ERP系统為(wèi)案例分(fēn)析上線(xiàn)后问题
    内容二:微服務(wù)架构与SOA架构
    1.   SOA的基本概念
    2.   SOA方法學(xué)和其他(tā)方法學(xué)的比较
    3.   面向服務(wù)的分(fēn)析和设计概述
    4.   SOA概念层次
    5.   SOA参考架构
    6.   SOA基础架构设施
    7.   ESB基础概念和职责
    8.   协议驱动和API驱动的ESB
    9.   BPM概念和SOA
    10.   业務(wù)流程建模和基于服務(wù)的BPM
    11.   软件體(tǐ)系结构的演变和面向服務(wù)的设计原则
    12.   通过多(duō)个SOA架构案例分(fēn)析
    内容三:微服務(wù)架构
    1.   為(wèi)什么需要微服務(wù)架构
    2.   如何解决传统应用(yòng)架构的问题
    3.   微服務(wù)架构是什么
    4.   微服務(wù)架构概念
    5.   微服務(wù)架构参考架构模式
    6.   通过分(fēn)析多(duō)个微服務(wù)架构案例,了解微服務(wù)架构的参考模式
    内容四:微服務(wù)架构开发实现---SpringBoot
    1.   Spring Boot概述
    2.   运用(yòng)Spring Boot
    3.   Groovy与Spring Boot CLI
    4.   在Spring Boot中使用(yòng)Grails
    5.   深入Actuator
    6.   部署Spring Boot应用(yòng)程序
    7.   Spring Boot 的数据访问
    8.   Spring Boot 企业级开发
    9.   Spring Boot 开发部署与测试
    10. 多(duō)个基于SpringBoot实际项目的架构分(fēn)析(為(wèi)何这样设计/优点/缺点/当初的考虑)
    内容五:微服務(wù)架构与云架构--Spring Cloud平台
    1.   云计算平台架构
    2.   為(wèi)什么选择Spring Cloud
    3.   Spring Cloud
    4.   服務(wù)治理(lǐ):Spring Cloud Eureka
    5.   客户端负载均衡:Spring Cloud Ribbon
    6.   服務(wù)容错保护:Spring Cloud Hystrix
    7.   声明式服務(wù)调用(yòng):Spring Cloud Feign
    8.   分(fēn)布式配置中心:Spring Cloud Config
    9.   消息总線(xiàn):Spring Cloud Bus
    10.    多(duō)个基于SpringBoot和SpringCloud云架构,谈微服務(wù)和云架构
    内容六:微服務(wù)注册
    1.   為(wèi)什么要服務(wù)注册
    2.   服務(wù)注册实现方式
    3.   使用(yòng)NetflixEureka/SpringCloud实现服務(wù)注册
    4.   使用(yòng)NetflixRibbon/SpringCloud实现客户端负载均衡

    内容七:微服務(wù)发现
    1.   為(wèi)什么要服務(wù)发现
    2.   服務(wù)发现的实现方式
    第五篇:架构师与架构职责
    第9单元: 软件架构师成長(cháng)

    内容一、软件架构师成長(cháng)
    1.   软件架构师职责
    2.   软件架构师与项目经理(lǐ),产品经理(lǐ),需求分(fēn)析师不同
    3.   软件架构师技能(néng)模型
    4.   软件架构师如何成長(cháng)
    5.   中國(guó)特色的架构师(目前國(guó)内很(hěn)多(duō)架构师是身兼多(duō)职)
       第六篇:案例分(fēn)析
    第10单元:大型软件系统架构实践与剖析(该案例分(fēn)别在以上各单元,结合主题进行介绍)

    综合软件架构实践与剖析(以实际项目案例為(wèi)背景)
    (1)電(diàn)信行业(電(diàn)信97/移动BOSS/電(diàn)信MBOSS/经营分(fēn)析)软件架构案例研究
    (2)金融行业(XXX银行企业信贷和XXX银行)软件架构案例研究
    (3)政府行业(XXX社保和XXX税務(wù))软件架构案例研究
    (4)電(diàn)力行业(SG168和XXX電(diàn)网门户系统)软件架构案例研究
    (5)大型互联网系统架构案例研究
    (6)邮政行业(***邮政项目)案例研究