跳至主要内容

軟體架構與實務導覽

這份文件集整理了在現代後端與雲端開發中常見的幾個關鍵主題,從流程、運維到系統設計與流程建模,協助你建立完整的軟體架構觀念。

1. DevOps

DevOps 強調「開發(Dev)」與「運維(Ops)」的協作,目標是讓軟體從開發、測試到部署與監控形成自動化且可觀測的流程。常見內容包含:

  • 持續整合(CI)與持續部署(CD)
  • 自動化測試與品質管控
  • 基礎設施即程式碼(Infrastructure as Code, IaC)
  • 監控、日誌與警示

2. Kubernetes

Kubernetes 是目前最主流的容器協調平台,用來管理大量服務的部署、擴展與故障自動復原。學習重點包含:

  • Pod、Deployment、Service 等核心概念
  • Ingress、ConfigMap、Secret 等應用層資源
  • 高可用叢集架構與節點規劃
  • 與雲端或自建環境的整合與實務部署

3. Clean Architecture

Clean Architecture 主張將系統劃分為多層,讓業務邏輯與框架、資料庫、UI 解耦,避免系統「越改越難改」。核心重點為:

  • 依賴方向由外層指向內層(Domain 為中心)
  • 使用 Use Case / Application Layer 封裝業務流程
  • 透過介面抽象基礎設施(如 DB、外部 API)

4. CQRS

CQRS(Command Query Responsibility Segregation)主張將「讀」與「寫」的責任拆開,分別設計與最佳化:

  • 寫入端(Command):處理狀態變更,注重一致性與業務規則
  • 讀取端(Query):專注查詢效能與資料格式
  • 常搭配 Event Sourcing、Domain Events 等模式使用

5. BPMN

BPMN(Business Process Model and Notation)是一種標準化的流程建模語言,用來清楚描述業務流程:

  • 使用圖形化符號表示流程、決策、事件與角色
  • 有助於溝通「系統怎麼配合現實流程運作」
  • 可搭配流程引擎(如 Camunda、Flowable、Activiti)實作可執行流程

6. Airflow

Apache Airflow 是一套以 Python 為主的「工作流程排程與資料管線編排」系統,用來管理批次任務與資料 ETL/ELT 流程。它適合處理:

  • 每天 / 每小時定時執行的資料處理作業(例如:報表、同步資料)
  • 多個服務之間有依賴關係的工作流程(Workflows)
  • 資料平台中的 ETL/ELT 管線(Data Pipelines)

接下來的文件會依這些主題分章節展開,從概念到實務案例,協助你在設計與實作軟體系統時有一致且可維護的架構思維。