Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

12 因子應用設計 (The Twelve-Factor App)

規範雲端原生應用程式的開發與部署,打造彈性、可擴展的現代化應用程式,透過遵循這些原則,開發者可以更好地應對雲端環境的挑戰,並提高應用程式的品質和可靠性。

12 因子的核心原則

  1. Codebase: 微服務的codebase都是相同的一份。
  2. Dependencies: 明確宣告並隔離應用程式的依賴。
  3. Config: 免依賴本地環境,使開發、測試和生產環境分離。
  4. Backing services: 將後端服務(如資料庫、訊息佇列)視為附加資源,本體在雲,且可輕易更換。
  5. Build, release, run: 將建構、發布和執行階段嚴格分開,透過CI/CD工具來自動化。
  6. Processes: 將應用程式作為一個或多個無狀態的進程運行,不依賴資料。
  7. Port binding: 透過埠綁定方式暴露服務。
  8. Concurrency: 以處理程序的方式進行水平擴展。
  9. Disposability: 啟動或關閉進程必須快速且無狀態。
  10. Dev/prod parity: 開發和生產環境應盡量保持一致。
  11. Logs: 將日誌視為事件流,透過Log對微服務進行監控(Prometheus, Jaeger…)。
  12. Admin processes: 一時性的管理任務應作為一次性的進程運行。

好處

  • 可移植性: 應用程式可以在不同的平台上輕鬆部署。
  • 可擴展性: 透過水平擴展來應對流量的變化。
  • 可靠性: 應用程式更健壯,不易發生故障。
  • 開發效率: 標準化的開發流程,加速開發速度。
  • 易於管理: 透過環境變數管理設定,簡化管理。

應用場景

  • 雲端原生應用程式: 適合部署在雲端平台上的應用程式。
  • 微服務架構: 將大型應用程式拆分成小的、獨立的服務。
  • 持續交付: 頻繁地將程式碼部署到生產環境。

如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels