CDS是用GO(Lang)編寫的企業級連續交付和DevOps自動化平台。
該項目正在積極發展
文件
CDS提供了一個直觀的UI,可讓您構建複雜的工作流程,運行它們並在需要時挖掘到日誌中。
使用CDS UI創建和運行工作流程。
CDSCTL是CDS命令行 - 您可以用它腳本腳本,CDSCTL還提供了一些很酷的命令,例如cdsctl shell來瀏覽項目和工作流,而無需打開瀏覽器。
查看所有CDSCTL命令
使用CDS命令行創建工作流程為代碼。
Docker-Compose是您的朋友,請參閱準備運行教程
大多數CI/CD工具都可以在管道中使用作業。 CD引入了一個名為CDS Workflows新概念。 CDS工作流程使您可以使用觸發器鏈接管道。管道在包含一個或多個並發作業的順序階段結構。
是的!自2015年以來,CD在生產中使用,每年啟動超過700萬CD的工人。您可以在https://github.com/ovh/cds/releases上安裝官方版本
CD提供了監視和測量生產活動所需的一切(日誌,指標,監視)
所有數據都存儲在數據庫中 - 文件系統上沒有任何數據。只需定期備份數據庫,您就可以安全。
核心團隊可在GitHub上找到
能夠同時運行多個作業,同時保持隔離。請參閱有關管道中的階段和工作的文檔。管道從上下文開始:0或1應用程序,0或1環境。
工作流使鏈條鏈條成為可能。這是CD的關鍵功能。您可以使用一個或多個管道,可以與連接或叉子鏈接的管道來創建工作流程。
您可以想像只有一個工作流構建器並部署整個微服務堆棧。可以在工作流程中多次使用同一條管道,您可以將應用程序或環境關聯。即使您有數百個應用程序,您也只會有一個部署管道和一個構建管道以維護。
工作流模板使您可以在多個團隊中共享和重複使用工作流。任何用戶都可以創建工作流模板,將其作為代碼或UI維護,並通過單個操作更新一組工作流程。
作為一家公司,您可以提供預定義的工作流程目錄,使您可以在所有團隊中標準化測試和部署實踐。
這也減少了維護工作,因為模板允許可擴展的集中管理。
您可以使用Web UI配置所有內容。即使您有復雜的用例,通常更容易以圖形方式創建工作流。
管道作為代碼是CI / CD工具的眾所周知的概念。 CD更進一步,並提供工作流程作為代碼。這是通過使用工作流的YAML配置文件( + Pipeline, + Applications, +環境)來完成的。這是特別有用的,因為您可以在合併主分支上的更改之前測試開發部門上的新工作流程。
您可以使用UI修改工作流程,也可以通過在UI中直接編輯YAML文件來修改配置。這是學習如何使用WorkFlow-As-As-code功能的絕佳方法。
能夠根據分支模式啟動構建。例如,這允許部署dev/*分支來“分期”並將主分支部署到“ prod”。
請注意,CDS的默認行為是在每個GIT提交上啟動整個工作流程。可以使用“運行條件”來改變此行為。
與最受歡迎的基於Git的產品的2向整合。
CD在本地支持GitHub,GitLab,Bitbucket Server和Gerrit。您的GIT回購與CD之間的鏈接是通過CDS應用程序:1 GIT存儲庫== A CDS應用程序。通過這種集成,CD將推動您的提交的構建狀態:建立,成功或失敗。
CD使您有可能在單個工作流程中從不同的GIT存儲庫中克隆。 CDS工作流程可能涉及多個不同的應用程序 - 或者如果您不想與GIT倉庫建立聯繫,則無需使用。
能夠啟動短暫服務(數據庫,Web服務器等)來支持您的工作。在測試您的代碼時,這特別方便。
在CD中,這些服務稱為服務先決條件。您只需要指定相應的Docker映像並運行參數即可。
舉一個簡單的例子:您有一個管道,可以構建包含您應用程序的Docker映像。您的應用程序需要重新使用和postgresql才能工作。您可以在CDS工作中放置三個先決條件服務:redis,postgreSQL和您的應用程序。 CD將負責在其服務之間建立一個私人網絡,以便他們可以相互通信。因此,您的CD作業可以從實際數據庫和真實緩存開始對您的應用程序進行集成測試。
請閱讀:https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
開發人員和/或連續集成(CI)系統使用遠程緩存來共享構建輸出。如果您的構建可重現,則可以在另一台計算機上安全重複使用的一台計算機的輸出,這可以使構建更快地構建
doc:https://ovh.github.io/cds/docs/components/worker/cache/
作為企業級平台,CD可以在活動總線中發送廣泛的內部事件(例如構建完成)。然後,此事件流可以為其他服務提供(報告,通知等)。
能夠手動或通過GIT推送或通過調度程序或通過Webhook啟動工作流程。除上述內容外,還可以使用事件總線(KAFKA或RABBITMQ)觸發CD。
具有隔離訪問權限的安全方式來管理多個環境(例如開發/產品/分期)的能力。實際上,環境是一組變量,您可以在工作流程中使用。
使用CD,您可以在預生產環境上使用部署管道,並在生產環境中使用相同的部署管道。部署到生產的能力可以限於預先建立的用戶組。
用戶可以自由創建組並管理組中的用戶。一個小組有權閱讀,編寫和執行他們的項目和工作流程。如果需要,您還可以將某些管道的執行限制為某些組。
如果您使用CD作為CI / CD工具,則可能已經建造了工件。 CDS的作業是彼此隔離的,但是您可以使用工件上傳和偽像下載操作將文物從一個作業傳遞到另一個作業。在CDS作業的結尾,所有文件均從工人中刪除。為了持久工件,CD可以使用Swift存儲或給定的文件系統(雖然不建議使用)。
CD清楚地顯示了在構建過程中檢測到的單位測試和漏洞的結果。
CDS項目就像租戶。所有用戶都可以創建一個CDS項目,該項目將匯總應用程序,環境,管道以及工作流程。
CDS項目彼此隔離,但是如果您願意,同一組可以訪問多個項目的權利。
工人模型是工人執行環境。假設您需要運行需要Golang V1.11.5的工作。在CD中,您只需要創建一個GO Worker模型,其中包含1.11.5版中的GO。工人模型可以是Docker映像,OpenStack Image或VSPHERE圖像。儘管CDS管理員可以提供共享的工人模型,但用戶可以根據需要創建自己的模板工人。
在CDS項目中,您可以添加OpenStack,Kubernetes等集成,這將為您提供工作流中的功能。例如,借助Kubernetes集成,您可以將自己的群集添加到CDS項目中,從而可以使用Deploy Application Action在群集上部署您的新構建的應用程序,並以helm格式使用。您當然可以發展自己的集成。
閱讀了先前的觀點後,您已經理解:自助服務無處不在。所有用戶都可以創建他們的項目/工作流/工作流程模型/工作流模板/操作...並在完全孤立的環境中運行作業。 CDS項目是建築商,您可以在其上添加集成。所有這些都可以讓您為整個公司擁有一個CD實例。
您可以通過命令行界面(CLI)(名為“ CDSCTL”的命令行界面(CLI)獲得所有您所能完成的操作。 CDSCTL可在所有操作系統上提供:Darwin,FreeBSD,Linux,OpenBSD ... CDSCTL將允許您創建,啟動,導出,導入工作流程,監視CD並瀏覽項目和工作流程。無需轉到CD的UI或您的存儲庫管理器即可檢查提交的狀態, git push && cdsctl workflow --track將在命令行中顯示您的工作流程。
您是否有更高級的自動化需求,或者希望開發查詢CD的應用程序? REST API和SDK將允許您輕鬆開發軟件。
CD自2016年10月以來一直是開源的。您可以在公司或家中自由安裝。一些教程可幫助您啟動CD,Docker-Compose,使用二進製文件安裝。
高可用性是CI / CD工具的非常重要的點。 CD是無狀態的,沒有存儲在文件系統上。這使得可以在負載平衡器後面啟動多個CDS API。因此,您可以根據需要擴展CD的API。它還可以在整天升級CD,而不會影響用戶。在生產@OVH中,CD每天可以更新幾次,而不會影響用戶或阻止CDS工人。要求您的用戶在更新連續交付工具時停止工作會具有諷刺意味,不是嗎? ;-)
CD本質地揭示了監視數據。您將能夠使用Beamium為實例提供Prometheus或Warp10。
CD的工作由步驟組成。每個步驟都是內置類型的操作(腳本,CheckoutApplication,Artifact上傳/下載...)。您可以使用現有操作創建操作 - 或將操作作為插件開發。只要語言支持GRPC,就支持所有語言。
CD對語言和平台不可知。用戶可以在Linux,Windows,FreeBSD,OS X,Raspberry上啟動作業...在Docker容器中,在Docker Container的虛擬機中,在專用主機上。
因此,如果您的公司使用多種技術,則CD將不會成為構建和部署內部軟件的阻滯劑。
OVH上CD的最初目標之一:在不到7分鐘的時間內將150個應用程序構建和部署為容器。自2015年以來,這已成為現實。什麼是秘密鑰匙?自動尺度按需!
因此,您可以擁有數百個工人模型,必要時,CD將使用孵化場開始工人。
孵化場就像一個孵化器一樣,它孕育了CDS的工人以及對它們的生與死權。
有幾種類型的孵化場:
因此,是的,無論是否流行語,多雲的自動尺度ondemand是CD的現實:-)
3條款BSD