問:什麼是 Jenkins?
Jenkins 是一種以 Java 撰寫的開放原始碼持續整合工具。它提供適用於軟體開發的自訂整合服務,是許多開發團隊使用的伺服器系統。
問:為什麼要使用 Jenkins?
如果您想要加速軟體開發生命週期 (SDLC),就應該使用 Jenkins。Jenkins 可讓您在各種環境整合建置、部署與測試,並可有效縮短開發團隊的等待時間。最後,因為能夠讓您持續整合,Jenkins 非常適合 DevOps 與使用快速重複週期的靈活方法。
問:為什麼要在 AWS 上執行 Jenkins?
AWS 提供可靠、可擴展且安全的基礎設施資源,非常適合用來執行 Jenkins 這類應用程式。在 AWS 運算上執行 Jenkins,您只需按實際用量付費,還可隨著您的特定需求擴展或縮減容量。
問:我是否擁有自己的 Jenkins 環境?
是,執行此入門指南時所建立的所有資源都屬於您,而且會存在您的帳戶中,直到您決定終止 Amazon EC2 執行個體為止。
問:Jenkins 的費用是多少?
Jenkins 是免費的開放原始碼軟體。您只需要為執行 Jenkins 的基礎設施支付費用。如需關於費用的詳細資訊,請參閱使用的服務與成本。
您應該利用安全群組,並搭配強式密碼。此外,您也應確認 EC2 執行個體與 Jenkins 安裝為最新版本,包含最新的安全性修補程式。安全群組的用途為虛擬的有狀態防火牆,可控制一或多個執行個體的流量。如果可能,最好將 IP 範圍限縮到僅限相關來源 IP 地址。不要開啟任何額外的 TCP 或 UDP 連接埠 (TCP 80 與 8080 已經足夠)。設定 Jenkins 的密碼時,請遵循一般密碼最佳實務,並使用符號 (例如 /、.、!、* 等) 以外的大小寫英數字元。您可以透過執行 yum 更新,確認 Amazon Linux 執行個體已安裝最新套件。如果您已根據本指南的指示使用 yum 安裝 Jenkins,也會一併更新 Jenkins。
問:是否可在私有子網路中執行 Jenkins?
您可以在公有或私有子網路中的 EC2 執行個體安裝 Jenkins。如果您想要將執行個體放置在私有子網路中,必須確認您可存取 Jenkins 的前端。如果透過網際網路連線,您可選擇建立 Jenkins 目標群組,並使用 Application Load Balancer 為私有託管的執行個體建立公有終端節點。如果從自有資料中心連線,則需建立 VPN 或是透過 Direct Connect 連至 Jenkins。
問:我可如何擴展 Jenkins?
您可以透過幾種方式確認 Jenkins 可滿足您的 CI/CD 需求。最直接的方法是透過變更執行個體大小以垂直擴展 EC2 執行個體。另一種方式則是設定 Jenkins Amazon EC2 Container Service 外掛程式,以將建置任務移交給 ECS 叢集上的 Jenkins 從屬任務。