【培訓對象】
軟件工程師、架構師、運維工程師等。 學員要求有一定的J2EE開發(fā)經驗,熟悉eclipse等開發(fā)工具的使用,熟悉Linux環(huán)境下常用命令、軟件安裝、部署。
【課程描述】
本課程從架構的演變歷程開始分析,為什么終會演變成微服務架構。接著介紹微服務的架構描述和特性。過程中通過Dubbo與Spring Cloud兩大主流的微服務解決方案為例進行對比,剖析微服務架構的各大組件。
課程將通過實例演示和動手實踐相結合的方式來強化學員對課程知識的掌握,并快速的轉化為實戰(zhàn)技能應用到企業(yè)的日常工作當中。
【課程內容】
? 傳統單體架構及其面臨的挑戰(zhàn)
? 傳統單體架構分析
? 單體架構的優(yōu)勢
? 單體架構局限性與面臨的挑戰(zhàn)
? 復雜性
? 開發(fā)效率
? 穩(wěn)定性
? 部署與運維成本
? 新功能交付
? 擴展能力
? 如何解決上述問題?
? 【案例】結合某案例分析傳統單體架構面臨問題
? 單體架構拆分
? 服務水平拆分
? 服務水平拆分面臨問題
? 服務垂直拆分
? 服務拆分之后各模塊間通信與交互
? 服務的設計原則
? 復用性
? 耦合性
? 服務編排
? 自治
? 無狀態(tài)
? 自動發(fā)現
? 服務拆分后面臨挑戰(zhàn)
? 調用性能
? 線性擴展
? 服務監(jiān)控
? 故障定位
? 日志搜索
? 流控
? 微服務架構綜述
? 什么是微服務?
? 微服務架構優(yōu)點
? 微服務架構面臨的挑戰(zhàn)有哪些?
? 微服務生命周期與交付流程
? 微服務管理規(guī)范
? 微服務框架對比
? 微服務架構及常用組件
? 微服務開發(fā)之Dubbo
? Dubbo介紹與誕生背景
? 為什么選擇Dubbo?
? Dubbo架構剖析
? Dubbo優(yōu)缺點分析
? Dubbo調用地址與負載均衡
? Dubbo高可用機制
? Dubbo管控臺與監(jiān)控
? 【案例】基于Dubbo的項目應用案例分析
? 微服務之Spring Cloud
? Spring Cloud定義
? Spring Cloud生態(tài)子項目剖析
? Spring Cloud特點
? 微服務開發(fā)之Spring Boot
? SpringBoot誕生背景介紹
? SpringBoot適應場景
? SpringBoot優(yōu)勢
? SpringBoot的包版本管理
? SpringBoot自動配置
? SpringBoot熱部署機制
? 如何自定義配置參數?
? 外部化配置
? 多環(huán)境配置
? Spring Boot常用注解
? Spring Boot發(fā)布之jar與war
? 生產級特性
? 外部配置
? 監(jiān)控
? 【實戰(zhàn)】使用SpringBoot快速構建RESTful API應用
? 微服務之注冊中心
? 服務調用端與服務提供端之間透明通信
? 如何實現服務的動態(tài)注冊與發(fā)現
? 注冊中心引入
? 注冊中心之zookeeper
? 注冊中心底層實現剖析
? SpringCloud之注冊中心Eurka
? Eurka介紹與原理分析
? 【實戰(zhàn)】實現將微服務注冊到EurkaServer上
? 微服務之負載均衡
? 負載均衡應用場景
? 常用的負載均衡實現方案
? 客戶端負載均衡
? 服務端負載均衡
? 【實戰(zhàn)】使用Ribbin實現客戶端負載均衡
? 微服務之容錯處理
? 雪崩效應場景分析
? 如何應對雪崩效應下的容錯處理
? Spring Cloud體系下之容錯處理解決方案斷路器Hystrix
? 應用如何接入Hystrix
? 如何監(jiān)控Hystrix狀態(tài)
? 【實戰(zhàn)】實現Hystrix Dashboard可視化監(jiān)控數據
? 微服務之網關
? 微服務網關定義
? 微服務網關引入能解決什么問題
? SpringCloud之微服務網關zuul
? 如何編寫zuul微服務網關
? zuul過濾器的應用
? zuul的容錯與回退處理
? 【實戰(zhàn)】使用zuul聚合微服務
? 微服務之配置中心
? 服務配置中心介紹與應用場景分析
? 微服務配置之Ansible
? 如何管理微服務中的配置
? Spring Cloud下之微服務配置解決方案Spring Cloud Config
? Config Server與Config Client的實現
? Config Server倉庫配置與應用流程
? 如何實現配置端點的刷新
? 如何確保配置中心內容的安全性?
? 如何實現配置刷新后自動下發(fā)?
? 【實戰(zhàn)】使用Spring Cloud Config打造微服務配置中心
? 微服務之封裝
? 容器化技術
? Docker簡介
? Docker架構剖析
? 虛擬機與Docker的對比
? Docker的優(yōu)點
? Docker安裝系統要求
? Docker的安裝與卸載
? Docker鏡像常用命令
? Docker容器常用命令
? 如何配置Docker鏡像地址
? Docker鏡像下載與構建
? 使用Docker Registry打造私有鏡像倉庫
? 微服務部署
? 持續(xù)集成
? Jenkins簡介
? 使用Jenkins實現自動化發(fā)布
? 搭建版本控制系統
? 搭建Jenkins持續(xù)集成系統
? 持續(xù)集成實現自動化構建
? 微服務日志
? 為什么需要搭建應用日志中心
? 開源日志中心ELK介紹
? 日志存儲系統之Elasticsearch
? 日志收集系統之Logstash
? 日志查詢系統之Kibana
? ELK日志中心搭建
? 微服務監(jiān)控
? Spring Boot自帶的開源監(jiān)控系統Spring Boot Admin
? 自主搭建系統監(jiān)控中心
? 分布式調用鏈中心
? 開源調用鏈中心Zipkin
? 微服務調用鏈追蹤
? Spring Cloud Sleuth簡介
? Spring Cloud Sleuth與Zipkin結合應用
? 微服務之異步化
? 使用MQ實現異步調用
? 分布式事務解決方案剖析
? Spring Cloud Bus的應用
? 【實戰(zhàn)】使用Spring Cloud Bus實現配置的自動刷新
? 微服務測試
? Spring Boot單元測試
? Service層測試
? REST API測試
? 【綜合案例】某大型的跨境電商項目
? 【綜合案例】某服務治理平臺
總結、回顧、答疑
【課程導師】
陳國星
研發(fā)迭代領域專家,創(chuàng)業(yè)團隊管理領域專家,阿里云企業(yè)級互聯網架構師,阿里云受邀講師,大數據架構研究者,網絡安全領域專家,曾服務于某大型互聯網公司任安全事業(yè)部經理,