跳到內容

什麼是 RAPD?

RAPD 是一個應用交付平台(Application Delivery Platform; ADP),支援以宣告式組態模型來完成應用系統的自動部署以及維運。部署過程中,應用系統所需的基礎設施也會連同一起完成整備工作。

由於每個應用系統對於維運有不同程度的客製化需求,RAPD 支援 DevOps 工程師將部署與維運特定應用所需的領域知識以程式形式交由 RAPD 自動執行。更為重要的是 RAPD 協助開發團隊建立自己的軟體架構語彙(vocabulary)用以描述軟體組成元件。這些描述語彙不只作為溝通工具,更可完整定義元件如何被部署。

特點

  • 可移植性(portable):容器化的應用元件,可以在多樣的雲環境或者本地部署。
  • 自動擴展(scalable):應用工作負載可隨需要自動水平擴展。
  • 高可用性(available):在錯誤發生時,工作負載可以被重啟或者轉移到不同節點執行以確保服務可用。

優點

  • 開發人員可以專注在應用軟體的開發而不是維運的細節。
  • 應用組態與基礎設施可以一起管理,減少工具切換的額外負擔。
  • 可以平順地將應用在本地與雲端等不同環境移轉。

目標專一

軟體從開發到可以被使用,大致可以分為下列三個階段:

Delivery pipeline

Build 階段:開發人員撰寫程式碼,產出要部署的製品,像是容器映像、執行檔等等。通常使用 CI/CD 工具實現自動建置,例如:GitHub Actions, Jenkins。 Ship 階段:負責部署應用、上傳檔案或進行系統設定以完成軟體執行需要的組態與資源。 Run 階段:提供軟體元件實際的運行環境(runtime),確保軟體的可用性、自動擴展等等。例如:Cloud Run 或者 Kubernetes 叢集提供容器運行環境。

RAPD 採用 Fire-and-forget 原則,只負責「交付(Ship)」 階段。交付後,軟體運行時的需求由目標叢集負責。例如:軟體有監控需求, RAPD 可以在部署過程自動將軟體服務加入監控系統,但實際監控工作則由該系統提供。