owned this note changed 6 years ago
Linked with GitHub

單體式服務邁向微服務 - 林良俞

歡迎來到 MOPCON 2019 共筆 :mega:
共筆入口:https://hackmd.io/@mopcon/2019
手機版請點選上方 按鈕展開議程列表。

會場 wifi-SSID: mopcon-2019
會場 wifi-PASSWD: mopcon-2019

從這開始

  • 大綱
  1. 單體式系統
  2. 微服務系統
  3. 部署
  4. 案例分享

Kkbox-search 搜尋引擎套件由 php 寫成的

  • 小故事
    • CMS 升級

單體式系統

包含許多邏輯與服務

相依性問題:
缺點:

  • 不能隨意異動套件/設定檔
  • 注意相依性
  • 建置成本高

微服務

將單體式系統拆成多個小服務

  • 介面
    • 服務與服務間僅有介面相依
  • 降低發布風險
    • 一次發布一個服務
  • 去耦合
    • 將服務切分成獨立的個體,服務獨立運作

微服務很棒啊那? 等等

  • Latency 上升

    • response time 增加
    • 使用 grafana dashboard 觀察
  • Debug 複雜度變高
    判斷問題在哪個服務上,也有可能在服務溝通的橋樑
    error reporting

  • 傳輸不可靠
    設定 timeout、retry

  • 主機數成長

    • 不管是虛擬或是實體機都可以
    • 所以大部分還是用 docker container managerment
    • nomad

界定服務邊界

  • 重複的程式碼

    • 寫成 API
  • 相依性過高

    • 維護上面成本過高
  • 效能瓶頸

    • 開機器?!
    • 針對該服務進行 scale up

如何將微服務切割成越來越小

部屬

  • Gitlab
    • Open source(唯一一個 open source 的專案)
      • 直接部署在公司的私有雲上面
    • CI
    • third party
    • 即時性

Gitlab CI

  • 自動化檢查
  • 透過 Docker 進行不同版本的測試
  • 確保每次的 Merge 都是綠燈
  • 完整的單元測試

流程介紹

有興趣可以去聽 Day 2 的 為什麼 k8s 如此火紅?

自動化部署到docker容器叢集

  • Nomad
  • Kubernetes
  • GKE

使用API search發現服務

案例

1. 搜尋引擎

目標
最短時間
  • Solution1. 先建後拆

    • 成本高
  • Solution2. 升級容器叢集

    • 注意確保每個project獨立性
tags: MOPCON 2019
Select a repo