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