Yahoo!Screwdriver:可擴充套件的持續整合工具

泡泡淺眠發表於2017-07-13

Yahoo! 開源了他們在內部生產系統中使用的持續交付工具Screwdriver。

Screwdriver作為一種持續交付工具,整合了從程式碼提交到生產系統部署的所有步驟。Yahoo!在過去五年中逐步使用Screwdriver去自動化所有的交付過程,現可達到每日超過25,000次的構建和多於12,000次的git提交。按Yahoo!的說法,他們所希望的持續整合工具應具備以下特性:

使得開發人員易於建立部署流水線。流水線採用YAML檔案定義,並可通過放棄變更或者使用另一版本配置檔案將流水線還原回早期的版本。 主幹開發的優化。主幹中應包括應用的可交付版本。為確保被拉取的程式碼在提交前已得到測試,測試是自動執行的。 支援回滾。任何具有寫許可權的人可在發生錯誤時回滾部署。
Screwdriver具有五個主要元件:

REST API:與流水線協同工作的介面。

Web UI:用於流水線API的視覺化介面。

啟動器(Launcher):設定環境並執行Shell命令的工具。

執行引擎(Execution Engine):可插拔的構建執行器,支援在容器(Jenkins、Kubernetes、Mesos、Docker Swarm)內執行命令。

資料儲存(Datastore):可插拔的NoSQL儲存,用於維護流水線配置資料(DynamoDB、MongoDB、CouchDB、Postgres)。執行引擎和資料儲存都使用了可插拔的架構,使得使用者可按自身意向選用引擎。

現在Yahoo!已開源了該持續整合工具的一個精簡版本,並有計劃在未來的一個月內新增上一些未釋出的元件,其中包括:儲存可供後續使用的後設資料、採集指標、分析日誌,以及用於設定和執行流水線的模板。

本文轉自d1net(轉載)


相關文章