技術應用背景介紹
微服務是一種軟件架構風格,它是以專注於單一責任與功能的小型功能區塊為基礎,利用模組化的方式組合出復雜的大型應用程序,各功能區塊使用與語言無關的 API 集相互通訊;微服務架構設計風格代表了下一代的架構設計思想,配合現在的容器工具(如Docker),可以在軟件開發流程、部署、服務維護等各方面產生新的生產效率提升;通過微服務可以更好地體現業務邏輯、更快地交付軟件,並且借助IAAS平台,能夠快速地擴展服務支撐更大的訪問流量壓力。
課程內容簡介
課程以架構設計歷史簡述為始,結合常用技術框架及工具幫助學員快速上手實現第一個微服務,再通過微服務實踐過程中需要注意的數據模型、服務間通信等來進行多個微服務的設計實踐,最后從測試、部署的角度來敘述在微服務最后上線及維護的相關事宜;課程將從“初始微服務”來簡述服務架構設計風格的發展歷程和微服務的由來;通過“Java與微服務”來介紹常用的快速上手Java微服務技術框架;通過“微服務間關系”、“數據模型設計與處理”、“微服務安全加固”課程來詳細闡述微服務在實戰過程中的原則和技巧;通過“微服務測試”、“微服務部署”、“微服務與虛擬化、容器化”課程來幫助學員掌握微服務測試到最后上線及服務的實踐。
課程標題
跟我做一個Java微服務實戰項目
講師介紹
9年以上互聯網/移動互聯網開發經驗,6年以上技術管理經驗,擅長移動App和Web網站研發管理、項目管理,負責過千萬級用戶社交產品的技術架構體系建設;經歷過Web 2.0及移動互聯網創業浪潮,曾任創業公司技術負責人,從零構建技術團隊完善技術架構並成功支撐億級請求,現任迅雷技術總監;早期全棧工程師,帶過移動客戶端、服務端、大數據分析、運維、智能硬件團隊,對於開源項目了解、對於新技術和技術趨勢有着良好的理解;對於如何在創業公司及成熟公司內帶領研發團隊進行敏捷開發和研發流程優化有着自己的方法,對於如何進行研發團隊建設有着良好的經驗,對於如何進行架構優化來適應快速增長的流量有着豐富的實戰經驗。
課程大綱
整個課程將由一個示例項目——eMall貫穿,eMall是一個示例的在線商城項目,通過這個項目學員可以以實踐的方式來掌握微服務構建技巧。
- 第一節:初始微服務
- 服務架構設計發展概述
- 微服務簡介
- 服務的獨立性與自主性
- 服務的彈性與容錯性
- 自動化環境
- 示例項目eMall介紹
- 第二節:Java與微服務
- Java微服務常用框架
- Spring Boot
- Dropwizard
- J2EE (Java Platform, Enterprise Edition)
- 版本依賴關系工具
- Apache Maven
- Gradle
- 其它工具
- 如何設計服務
- 領域驅動設計原則
- 將領域元素轉換為微服務
- 應用與服務架構
- 創建RESTful API
- 課后習題
- 【操作練習題】Git、Maven工具安裝
- 【操作練習題】使用Dropwizard、Spring Boot創建eMall項目微服務
- Java微服務常用框架
- 第三節:微服務間關系
- 服務注冊與發現
- 服務調用
- 服務間通信
- 課后習題
- 【操作練習題】使用Zookeeper作為服務發現
- 【操作練習題】使用Consul作為服務發現
- 第四節:數據模型設計與處理
- 微服務數據定義
- 從領域設計到實體
- 數據的持久性
- 跨服務數據共享
- CQRS
- 消息系統與協議
- 消息系統
- 常用協議
- 課后習題
- 【操作練習題】使用Kafka作為消息系統
- 【思考題】有哪些常用開源消息系統,適用場景有哪些?
- 微服務數據定義
- 第五節:微服務安全加固
- 網絡分隔
- 數據私密性保證
- 身份識別與信任
- 課后習題
- 【操作練習題】HMAC、API密鑰識別方式的實現
- 【思考題】深度防御該如何做?
- 第六節:微服務測試
- 測試分類
- 不同環境下的測試
- 單服務測試
- 預生產環境測試
- 生產環境測試
- 課后習題
- 【操作練習題】使用Mock工具進行測試
- 【思考題】測試與研發過程的銜接時機問題
- 第七節:微服務部署
- 自動化工具
- 應用打包
- JAR、WAR、EAR?
- 容器化
- 應用打包的最佳實踐
- 應用配置
- 提升運維友好度
- 度量指標與健康檢測
- 日志管理
- 課后習題
- 【操作練習題】將應用配置與應用程序分隔開的WAR包
- 【思考題】微服務依賴部署關系該如何解決?
- 【思考題】灰度發布該如何來做?
- 第八節 I:微服務與虛擬化、容器化
- Linux虛擬化簡介
- 常見虛擬化方案介紹
- 虛擬化與Java微服務實踐
- Linux容器簡介
- Docker介紹
- Docker與Java微服務實踐
- 課后習題
- 【操作練習題】構建eMall項目的Docker部署鏡像
- 第八節 Part II:微服務應對高並發實踐
- 擁抱故障
- 容量規划
- 功能降級
- 高擴展性
- 自動伸縮
- 【思考題】什么樣的狀況下不應該使用微服務?
圖片相關
鏈接相關
資料(代碼、課件、軟件、視頻等):http://pan.baidu.com/s/1i5snPmX
由於是付費視頻,不能隨意傳播,所以視頻密碼未公開,不過對資料感興趣的可以在下方留下郵件地址,我會定期進行密碼發送。