目標(biāo):
1.學(xué)習(xí)軟件架構(gòu)設(shè)計(jì)基礎(chǔ)知識(shí),掌握架構(gòu)分析的一般方法;
?
1.1 理解架構(gòu)設(shè)計(jì)的組成和基本概念
?
1.2 掌握使用軟件架構(gòu)設(shè)計(jì)的一般方法進(jìn)行領(lǐng)域分析、技術(shù)和數(shù)據(jù)架構(gòu)設(shè)計(jì);
?
1.3 了解軟件架構(gòu)設(shè)計(jì)在整個(gè)軟件過(guò)程中地位和作用
2.了解云計(jì)算、大數(shù)據(jù)、區(qū)塊鏈、物聯(lián)網(wǎng)、AI的基本概念和應(yīng)用,理解這些成熟度比較高的新技術(shù)對(duì)于現(xiàn)實(shí)系統(tǒng)架構(gòu)的意義。
?
2.1 云計(jì)算:云計(jì)算簡(jiǎn)史、分類、關(guān)鍵技術(shù)、安全體系、云計(jì)算的規(guī)劃與部署、行業(yè)和企業(yè)應(yīng)用
?
2.2 大數(shù)據(jù)與人工智能:大數(shù)據(jù)概念、組成和常用算法、系統(tǒng)體系架構(gòu)、分布式協(xié)調(diào)、分布式通信、、大數(shù)據(jù)存儲(chǔ)、處理和展示技術(shù)
?
2.3 物聯(lián)網(wǎng)簡(jiǎn)介
3.著重理解微服務(wù)架構(gòu)的整體構(gòu)成、掌握微服務(wù)架構(gòu)設(shè)計(jì),了解微服務(wù)架構(gòu)相關(guān)技術(shù),熟悉SpringCloud體系,學(xué)會(huì)使用微服務(wù)來(lái)對(duì)系統(tǒng)進(jìn)行分析和重構(gòu)。
?
3.1 了解微服務(wù)架構(gòu)的基本概念和組成、核心要素,以及微服務(wù)架構(gòu)對(duì)軟件研發(fā)組織的變革和相適應(yīng);
?
3.2 掌握微服務(wù)架構(gòu)的技術(shù)組成,以及其基本原理和關(guān)注點(diǎn);
?
3.3 熟練掌握Spring Cloud的微服務(wù)架構(gòu)體系,并以此理解微服務(wù)的整體技術(shù)組成
?
3.4 理解如何對(duì)已經(jīng)存在的系統(tǒng)的微服務(wù)化的流程和注意事項(xiàng)。
?
第一部分 軟件技術(shù)架構(gòu)
一:軟件架構(gòu)介紹
?
1.軟件架構(gòu)設(shè)計(jì)的特點(diǎn)、層次、分類
?
2.軟件架構(gòu)的主要理論、方向和趨勢(shì)
?
3.軟件生命周期進(jìn)程模型介紹
二:軟件架構(gòu)和需求
???
1.概念和分析視點(diǎn)、物理視圖、邏輯視圖
???
2.需求分析、表達(dá)和質(zhì)量控制
三:技術(shù)架構(gòu)視圖─面向?qū)ο蟪绦蛟O(shè)計(jì)原則與模式及方法論
?
1.衡量軟件系統(tǒng)質(zhì)量的標(biāo)準(zhǔn)
?
2.面向?qū)ο笤O(shè)計(jì)的基本原則
?
3.用GRASP模式指導(dǎo)架構(gòu)設(shè)計(jì):
?
4.軟件架構(gòu)設(shè)計(jì)的關(guān)鍵因素
四:用UML輔助系統(tǒng)分析與設(shè)計(jì)
?
1.面向?qū)ο蠛蚒ML基礎(chǔ)知識(shí)
?
2.需求分析和UML
?
3.架構(gòu)設(shè)計(jì)和UML
?
4.UML中的常見(jiàn)疑難問(wèn)題辨析
?
5.借鑒RUP的設(shè)計(jì)過(guò)程
五:架構(gòu)的選擇和考慮因素
?
1.選擇的困難
?
2.架構(gòu)師的職責(zé)和隱喻
?
3.架構(gòu)的十六大典型組成因素和選擇思路
?
4.架構(gòu)的總體質(zhì)量評(píng)估
第二部分 逐步進(jìn)入成熟期的新技術(shù)體系:云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)和AI?
一:云計(jì)算
?
1 云計(jì)算概述:簡(jiǎn)史、基本特征和分類、技術(shù)體系
?
2 云計(jì)算技術(shù):基礎(chǔ)架構(gòu)、關(guān)鍵技術(shù)、管理、安全體系
?
3 企業(yè)實(shí)踐:規(guī)劃和部署、行業(yè)和企業(yè)因公
?
4 不只是技術(shù):云計(jì)算與戰(zhàn)略、商業(yè)創(chuàng)新平臺(tái)
二:大數(shù)據(jù)
?
1.大數(shù)據(jù)基礎(chǔ)理論:ACID、CAP、BASE;常見(jiàn)算法和數(shù)據(jù)結(jié)構(gòu)
?
2.大數(shù)據(jù)系統(tǒng)體系架構(gòu):資源管理調(diào)度、分布式協(xié)調(diào)、分布式通信
?
3.大數(shù)據(jù)存儲(chǔ):文件系統(tǒng)、鍵值存儲(chǔ)、擴(kuò)展模型
?
4.大數(shù)據(jù)處理、展示的常見(jiàn)模型
?
5.一種特殊的數(shù)據(jù)架構(gòu):區(qū)塊鏈簡(jiǎn)介和應(yīng)用場(chǎng)景
三:AI簡(jiǎn)介
?
1. 人工智能的基本概念和應(yīng)用方向;
?
2. 人工智能與大數(shù)據(jù)
?
3. 機(jī)器學(xué)習(xí):泛型和架構(gòu),自己分布式算法
?
4. 基于數(shù)據(jù)分析的人工智能算法和應(yīng)用特點(diǎn)
四:物聯(lián)網(wǎng)簡(jiǎn)介
?
1.物聯(lián)網(wǎng)的概念、組成
?
2.物聯(lián)網(wǎng)標(biāo)識(shí)技術(shù)、傳感器技術(shù)
?
3.物聯(lián)網(wǎng)的運(yùn)行環(huán)境和應(yīng)用層技術(shù)
?
4.應(yīng)用領(lǐng)域和展望
第三部分:微服務(wù)架構(gòu)
一:應(yīng)運(yùn)而生的微服務(wù)和微服務(wù)架構(gòu)的核心要素
?
1. 軟件研發(fā)組織的模式變遷:軟件研發(fā)組織和項(xiàng)目成功要素、傳統(tǒng)軟件模式下的軟件研發(fā)組織、CS、web模式下的軟件研發(fā)組織、大規(guī)模集成軟件模式的軟件研發(fā)組織、云計(jì)算和服務(wù)化模式下的軟件研發(fā)組織
?
2. 當(dāng)前的技術(shù)和常見(jiàn)的項(xiàng)目組織管理模式:云計(jì)算以及云計(jì)算對(duì)開(kāi)發(fā)的意義、軟件服務(wù)化的浪潮、當(dāng)前技術(shù)模式下軟件研發(fā)組織的范圍、團(tuán)隊(duì)管理和康威定律、云原生軟件研發(fā)組織的:微服務(wù)、持續(xù)交付、DevOps、敏捷基礎(chǔ)設(shè)施以及12要素;
?
3. 項(xiàng)目經(jīng)理/產(chǎn)品經(jīng)理的核心職責(zé)和方法:項(xiàng)目經(jīng)理工作內(nèi)容、經(jīng)典的項(xiàng)目經(jīng)理職責(zé)與能力、執(zhí)行項(xiàng)目基本流程和方法、云計(jì)算和微服務(wù)條件下項(xiàng)目經(jīng)理承當(dāng)職責(zé)、團(tuán)隊(duì)、集中治理和領(lǐng)導(dǎo)
?
4. 技術(shù)架構(gòu)師的核心職責(zé)和最佳實(shí)踐:什么是軟件架構(gòu)、價(jià)格師的職責(zé)和比喻、架構(gòu)師的原則方法12要素、架構(gòu)要求的標(biāo)準(zhǔn)、代碼的治理、與現(xiàn)實(shí)的妥協(xié):技術(shù)債務(wù)
二:微服務(wù)技術(shù)架構(gòu)
?
1. 微服務(wù)架構(gòu)技術(shù)介紹:軟件系統(tǒng)的發(fā)展趨勢(shì):微服務(wù),持續(xù)交付、微服務(wù)架構(gòu)的概念和解決的痛點(diǎn)、微服務(wù)架構(gòu)的構(gòu)成、常見(jiàn)微服務(wù)架構(gòu)的比較
?
2. 微服務(wù)架構(gòu)的軟件設(shè)計(jì)要點(diǎn)
?
2.1 微服務(wù)的設(shè)計(jì)原則:領(lǐng)域驅(qū)動(dòng)和業(yè)務(wù)建模、自動(dòng)化的文化、內(nèi)部實(shí)現(xiàn)的隱藏、去中心化、可獨(dú)立部署、隔離失敗、高度可觀察
?
2.2 分解單塊系統(tǒng)
?
2.3 部署和持續(xù)集成
?
2.4 測(cè)試的模式
?
2.5 監(jiān)控
?
2.6 安全
?
2.7 CAP原理
?
2.8 規(guī)模化的微服務(wù):斷路器、隔離、冪等操作、緩存、自動(dòng)伸縮等、動(dòng)態(tài)服務(wù)注冊(cè)、文檔服務(wù)
?
2.9 Docker技術(shù)
?
3. SpringCloug微服務(wù)架構(gòu)介紹
?
3.1 SpringBoot簡(jiǎn)介
?
3.2 SpringCloud Eureka
?
3.3 SpringCloud Ribbon
?
3.4 SpringCloud Ribbon
?
3.5 SpringCloud Hystrix
?
3.6 SpringCloud Feign
?
3.7 SpringCloud Zuul
?
3.8 SpringCloud Config
?
3.9 SpringCloud Bus
?
3.10 SpringCloud Stream
?
3.11 SpringCloud Sleuth
?
3.13 不斷發(fā)展的SpringCloud
三:舊系統(tǒng)的微服務(wù)化
?
1. 軟件系統(tǒng)的體系架構(gòu)變遷:中心式、分布式;軟件分層;SOA、云計(jì)算和微服務(wù);舊系統(tǒng)改造的可能性
?
2. 軟件系統(tǒng)的功能特征對(duì)架構(gòu)的選擇: 單應(yīng)用、CS模式用用、層架構(gòu)的應(yīng)用、復(fù)雜度的因素、安全的因素
?
3. 常見(jiàn)老舊系統(tǒng)架構(gòu)的改造技術(shù)以及服務(wù)化的遷移設(shè)計(jì):主要流程、理想的集成技術(shù)、領(lǐng)域驅(qū)動(dòng)的服務(wù)劃分、共享數(shù)據(jù)庫(kù)、同步與異步、編排和系統(tǒng)、版本管理、絞殺者模式