微服務學習資料共享

技術應用背景介紹

微服務是一種軟件架構風格,它是以專一於單一責任與功能的小型功能區塊爲基礎,利用模組化的方式組合出複雜的大型應用程序,各功能區塊使用與語言無關的 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項目微服務
  • 第三節:微服務間關係
    • 服務註冊與發現
    • 服務調用
    • 服務間通訊
    • 課後習題
      • 【操做練習題】使用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
因爲是付費視頻,不能隨意傳播,因此視頻密碼未公開,不過對資料感興趣的能夠在下方留下郵件地址,我會按期進行密碼發送。運維

相關文章
相關標籤/搜索