課程介紹

~歡迎企業洽談包班需求 ~
軟體開發/程式設計/智慧綠能課程主題館」 同步招生中 !!
 

課程源起

傳統單一性的系統架構當系統規模越形龐大,則相對越難以維護。更現實的問題是隨着應用程式規模的增加,系統的啓動與部署等也會增加負擔。再則如要移轉至雲端 (Cloud) 服務 (如 Aws 或 Azure) 是相當困難的,需要考量到資料量、頻寬流量、應用程式耦合性 …等諸多問題。

 

微服務是現今最受歡迎的分散式 (尤適合雲端) 系統架構,這樣的設計風格已被 Amazon、Facebook、Netflix 和 Uber 在內的許多公司所採用並成爲其基礎架構。

 

微服務是一種將軟體系統開發界定為一套可獨立部署的小型模組化服務的特定方法,其中每個服務運行一個特定的流程,並通過定義明確的輕量級機制進行通訊以實現業務目標。

 

本課程會比較說明單一性與微服務系統各自適用的場合與時機。再進而揭露微服務的架構與設計思維,從單一微服務的分層結構設計,到微服務系統之間的整合,從微觀 (micro) 到巨觀 (macro) 得以更全面的認識微服務的設計觀念。

 

課程會透過 Java/Spring 的實際案例演練,從 Web 端之間的介接,到服務層的規劃、儲庫的設計,以及資料庫的連接等實作議題,均有完整的程式碼與可被部署執行的應用程式。實作與理論的配合,更得以達成「知行合一」的實踐。

 

 

課程目標

  • 了解什麼是微服務的架構以及使用 UML 塑模呈現
  • 從問題領域界定 Bounded Area 成爲一個微服務
  • 單一微服務內部的組成分層結構
  • 了解幾個常用的微服務設計模式
  • 建置微服務的實作開發環境 – Java/Spring
  • 微服務之間的界接 – 使用 Restful 與 JSON
  • 微服務的儲庫 (repository) 設計與連接實體資料庫
  • 實際演練一個基於微服務架構的系統開發

 

課程注意事項

  • 本課程請學員自備筆電

 

預備知識

  • 參與課學員須有基本的程式設計基礎。

 

適合對象

  • 軟體開發人員想瞭解單一微服務的分層結構設計與開發
  • 軟體架構師想深入了解領域驅動開發的設計與解決方案
  • 專案開發經理想知道基於微服務架構的系統如何規劃與開發
  • 資訊相關課程講師,希望能導入微服務設計至學校技職教育

 

課程內容

微服務 Overview

◆What is Micro Service

◆Monolithic vs Micro Service 架構優缺點⽐較

◆DDD (Domain Driven Development) 設計思維實踐微服務架構

◆微服務特徵

◆基於業務能⼒的服務分散

◆元件化的服務部署

◆寬鬆耦合的連結性

◆不依賴特定的實作技術

◆分散管理與延展

◆基礎設施的自動化

微服務架構 Architecture

◆架構總覽

◆展示層 – Web API

◆應用程式層 – Application Control

◆服務層 – Domain Service

◆資料存取層 – Repository 儲庫

◆資料傳遞 – JSON/DTO (Data Transfer Object)

◆Activity – 使用 UML 規劃微服務架構

微服務設計原則

◆定義 Domain 與 Sub-Domain

◆界定 Bounded Context

◆聚合 (Aggregate)

◆分解設計 (Decomposition Design)

◆斷路器 (Circuit Breaker)

◆(事件源) Event Source/ (命令與查詢分離) CQRS

◆實作面的設計考量

◆Security

◆Transaction Management

◆API Gateway

微服務開發環境與部署

◆Java Spring Boot

◆安裝與建置 STS (Spring Tool Suite) for Eclipse 開發工具

◆(Option) 微服務部署議題

◆Docker

◆Container

◆部署工具 – Spring Cloud / Kubernetes

◆Activity

◆安裝與建置 Spring STS IDE

◆案例執行與預覽

案例研討與實作

◆ 使用 UML Use Case 規劃系統功能服務

◆使用 系統循序圖描述微服務之間的訊息互動

◆使用 UML Component Diagram 規劃微服務整體架構

◆使用 UML Package/Class Diagram 規劃微服務的分層結構

◆定義 Web API:爲每⼀個微服務設計對外存取的介面 (Interface)

◆爲每個微服務設置資料庫 (使用 H2 與 匯入 DDL/測試資料)

◆Java Spring 實作微服務

◆Web API – 使用 Restful API 與 JSON 傳遞

◆Application – 使用 Spring MVC Controller

◆Domain Service – 使⽤ POJO (Plain-old Java Object) 實作功能服務

◆Entity – 使用 POJO 實作業務邏輯

◆資料傳遞 – 使用 JSON 與 DTO (Value) 物件

◆Repository – 使用 JDBC Template/JPA 實作 OR Mapping

◆Unit Test – 使用 JUnit 實作單元測試

◆在開發環境內部署微服務 (use Embedded Tomcat)

報名課程資訊

  • 本課程採線上報名,報名課程之學員將於開課前7~10天內收到e-mail通知,確認課程是否開課,若確認開課才需繳費
  • 服務時間:上班日09:00 至 17:30
    尚無開課

常見問題

你可能想知道的問題
  • A.至少需達10人才予開課,本公司最晚於上課前一週通知是否開課。
    ※主辦單位得視報名情況而保留實際開課日期的變更權利

  • A.資展國際股份有限公司
    台北 : 台北市復興南路一段390號2、3樓
    桃園 : 桃園市中壢區新生路二段421號 (聖德基督學院)
    台中 : 台中市南屯區公益路二段51號18樓
    高雄 : 高雄市中正四路211號8樓之1
    ※上課地點與教室之確認,以上課通知函為主

  • A.本課程採線上報名,請至課程頁面報名。
    ※客服專線 : (02) 6631-6588、(02) 6631-6581

  • A.報名課程之學員將於開課前7天內收到e-mail通知,確認課程是否開課,確認開課才需繳費。
    ※政府計畫學費補助方案班級,則悉依計畫規定辦理

  • A.匯款方式可選擇信用卡、ATM匯款。
    - 以信用卡支付者 : 確定開班後會寄發訂單連結,請於指定繳費期限內完成線上刷卡
    - 以ATM匯款支付者 : 確定開班後會寄發繳費帳號,請於指定繳費期限內完成繳費
    ※課程若未如期開班,費用將全額退還

  • A.
    1)團報優惠 : 2-3人團報可打95折、4人(以上)團報可打9折優惠 (團報優惠與早鳥優惠可一併使用)
    2)每門課程會有早鳥報名優惠期限
    ※線上課程報名每個帳號僅提供一位學員報名,若為團報學員,每位皆必須完成線上報名,並於其他金額說明欄位註記「與XXX一起團報」,以利事後核對名單
    ※政府計畫學費補助方案班級,則悉依計畫規定辦理

  • A.
    1)已完成報名與繳費之學員,課程主辦單位將於開課三天前以E-mail方式寄發上課通知函;若課程因故取消或延期,亦將以E-mail方式通知,如未收到任何通知 ,敬請來電確認。
    2)已完成繳費之學員如欲取消報名,請於實際上課日前以信件通知業務承辦人,主辦單位將退還90% 課程費用。
    3)學員於培訓期間如因個人因素無法繼續參與課程,將依課程退費規定辦理之︰上課未逾總時數三分之一,欲辦理退費,可退還所有費用二分之一;上課逾總時數三分之一,則不退費。
    4)課程執行單位保留是否接受報名之權利。
    5)如遇不可抗拒之因素,課程主辦單位保留修訂課程日期及取消課程的權利。
    6)政府計畫學費補助方案班級,則悉依計畫規定辦理。

  • A.依資展國際股份有限公司ISO品質系統之「教育訓練服務程序」規定,本課程為短期班,參訓學員缺課未超過總時數五分之一者,結業時由本公司核發結業證書。

  • A.本課程上課期間,每天都會提供午餐,學員不需自行準備或額外付費。

    尚無開課