
Java app 的部署平台、基礎設施,以及持續交付 |
61
容器平台元件
典型的容器式部署平台有許多元件:
容器技術
基本上,容器提供 OS 等級的虛擬化,雖然在同一台機器上運行的所有容器都使用
同一個 OS 核心,但它們有不同的程序與網路名稱空間、配置與控制 CPU 與記憶
體等資源的控制群組(cgroups),以及與底層主機的 rootfs 不同的 root 檔案系統
(rootfs)。
容器調度
/
協調器
這個元件負責啟動、停止與管理容器程序。這項技術通常稱為容器基礎架構即服務
(container infastructure as a service,ClaaS), 在 Docker 生態系統中,通常是由
Docker Swarm 或 Kubernetes 提供的。
儲存器
儲存 app 資料。它可能是可以對映到容器裡面的區塊儲存器,或可用來儲存二進位
檔案或其他資料物件的物件儲存器。這通常是用 CIaaS 元件來管理的。
網路
連線、路由器、防火牆與其他通訊基礎設施。這通常是用 CIaaS 元件來管理的。
服務
資料庫與外部中介軟體服務,它們相當於傳統基礎設施的同類項目,但是通常是容
器平台供應商提供的全代管服務。
持續交付服務
許多容器平台供應商都提供完整的解決方案,可將程式碼從本地開發環境一路送到
生產環境。例如,Docker Enterprise 提供一種與它的 Docker Hub 整合的解決方案,
Azure 提供 Azure Pipelines,AWS ECS 提供 CodeBuild 與 CodePipeline ...