- 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
當一個服務過大,即應拆分成獨立的各別服務
- 優點: 功能獨立運作、易於擴充、開發自由(可用其他語言程式進行開發)
- 缺點: 元件拆分困難