0%

Introduction of the technical noun

  • DevOps
  • SaaS
  • Kafka
  • Redis
  • Restful API
  • Git
  • Docker
  • Microservice

DevOps

  • 敏捷開發
  • CI/CD
  • 自動化測試
  • 持續監控、分析

Saas

  • 軟體即服務 (ex. gmail 提供企業 email 服務,不用自行開發 email 系統)

Kafka

(MQTT: punlish/subscribe communication pattern)

  • 高吞吐、低延遲、高伸縮
  • 適用大量資料 -> 活動追蹤
  • 類MQTT加強版,可規模化、持久儲存、大量數據

Device <subscribe-publish> Broker (Server) <publish-subscribe> Client

Redis

解決原本資料庫負載太重問題 (使用 NoSQL)

  • in-memory key-value database 處理即時大量資料

Restful API

每個API負責一件事

  • 統一接口,透過 HTTP method (GET/POST/PUT/DELETE) 進行不同操作
  • Stateless,即一個網址即能取得資源,不會依賴其他資源 (Disable: Call A and then Call B)
  • 使用 web data format (JSON, YAML…)
  • 快取增加效能 (同操作/資源,直接取用本地端資源)
  • Client/Server 分離

Git

  • master*: 穩定、可上線版本 (The commit has version no.)
  • develop*: 開發基礎
  • hotfix: 緊急問題處理,從master分支出來,修正完後合併回master及develop
  • release: 上線版本前的最終測試
  • feature: 從develop分支出來、新增的功能在此開發

Docker

  • Image: 模板,如環境、服務、作業系統
  • Container: 執行的應用程式
  • Dockerfile: 撰寫指令打包成image
  • Docker Compose: 執行多個container
  • K8S: 管理多個 container

Microservice

當一個服務過大,即應拆分成獨立的各別服務

  • 優點: 功能獨立運作、易於擴充、開發自由(可用其他語言程式進行開發)
  • 缺點: 元件拆分困難