摘要:持續集成,持續交付當然也有叫通常會采用一些軟件如等來輔助我們。這時可以通過倉庫自帶的來觸發。這里的最好是可以支持,關于,大家可以理解為類似的功能。關于如何取出服務地址并自動添加記錄的原理,可以參考我之前的一篇文章文中第三部分有詳細描述。
CI(Continuous Integration)持續集成,CD(Continuous Delivery) 持續交付(當然也有叫 Continuous Deployment)通常會采用一些軟件如Jenkins、Drone、Travis、Gocd等來輔助我們。它們能夠與Git SVN等代碼管理倉庫集成,幫助我們實現一些自動化任務。
CI/CD軟件很多,再加上代碼倉庫不同,外加上業務流程的復雜度和不同開發語言的特性,會產生千變萬化的組合。可以說CI/CD本身就是一個很大的話題,正所謂一千個人眼中就有一千個哈姆雷特,所以我們這次分享主要還是關注在與Rancher結合方面。
下面我們就以jenkins為例,看Rancher如何與其集成。
首先我們可以想到,對于一個CI/CD環境,Rancher可以提供什么?
快速部署jenkins
環境隔離/用戶管理
基于Rancher compose進行應用編排
提供外部訪問入口
Rancher的Catalog中提供了jenkins部署的樣板:
左側是jenkins-ci server,右側是swam-plugin,這兩個可以組成一個master/slave模式的集群。
嘗試性的部署后,可以看到類似這樣的效果:
選用jenkins-swarm-plugin組成slave節點, 這樣我們可以在jenkins跑任務時能夠和docker進行更好的集成 。
構建完畢后,可以在jenkins中看到集群狀況:
那么使用jenkins來做CI是一種怎樣的表現模式呢? 我們來通過一張圖來看下:
開發人員 push commit后,代碼倉庫收到提交信息。這時可以通過倉庫自帶的hook來觸發jenkins build。也可以通過jenkins的自poll來獲取最新代碼。然后jenkins就自動執行你所設定的各種任務腳本。
插播一句,關于觸發jenkins build 的幾種方式:
Post commit hook (git原生hook)
Webhook (github/gitlab都支持,需要hook的server端接收請求
Jenkins有相應的plugin)
Build periodically / Poll SCM
CI的過程根據業務的復雜程度,各有不同,一般情況下分為這幾步:
運行測試用例—編譯lib—制作docker鏡像并push到倉庫—ranchercompose 部署服務。
通常我們可以把 rancher-compose 的file直接寫在代碼project中,這樣jenkins可以直接讀取到,并執行rancher-compose執行部署服務。
在執行rancher-compose時,可以考慮下面兩種策略:
每次根據jenkins的
Rancher-compose --force-upgrade --pull 拉取最新鏡像并強制升級
在rancher-compose 執行完畢后,通常交付一個對外訪問的ip:port,但是這個訪問地址一般來說不是固定的,所以我們的業務服務部署完畢后,自動綁定dns,是一個非常好的體驗。
sync-service 可以將app-service的服務地址在dns中添加A記錄,這樣我們只需記住dns,就可以直接看到CD后的業務服務。這里的dns-server 最好是可以支持SRV Record,關于SRV Record,大家可以理解為類似AWS Route53的功能。
關于如何取出服務地址并自動添加DNS記錄的原理,可以參考我之前的一篇文章:http://blog.neunn.com/wordpre... 文中第三部分有詳細描述。
Q & AQ:你剛才提到「在執行rancher-compose時,可以考慮下面兩種策略:每次根據jenkins的
A:默認情況下
. . ,你也可以特殊制定一個dns前綴 .
Q:jenkins里只能有一個ENV-*?
A:可以在env下部署多個jenkins,但是考慮企業內部不同部門不同業務要進行隔離,所以建議每個env一套jenkins。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27972.html
摘要:來自硅谷的企業級容器管理平臺提供商今日正式發布與企業級容器管理平臺集成的,極簡的操作體驗,強大的功能整合,完全開源,助力在企業的真正落地使用。 來自硅谷的企業級容器管理平臺提供商Rancher Labs今日正式發布與Rancher企業級容器管理平臺集成的Rancher Pipeline,極簡的操作體驗,強大的功能整合,完全開源,助力CI/CD在企業的真正落地使用。 云計算技術的廣泛采用...
摘要:在貓屎氤氳的霧氣里角仰望天花板,手機微信提醒這次構建成功或失敗,并附帶污言穢語。這時他可以開始往工位走,坐下時,微信又會提醒本次部署到成功或失敗。與企業微信的集成在決定使用之前,需要知道的是,是一個高度依賴社區的項目。 前言 相信我,一切事情的發生都是趕鴨子上架,沒有例外。人類所有偉大的變革都是迫不得已,可又是那么順其自然。比如容器(docker)技術的誕生,比如箭在弦上的創業,比如野...
摘要:本文作者為的架構師,他分享了使用和建立超高速流水線的經驗。月日,北京海航萬豪酒店,容器技術大會即將舉行。 Higher Education(highereducation.com)是一個連接學生與高校的入學申請平臺,通過引入高意圖和高質量的潛在學生,以及明確、有效的操作,為網站合作的大學吸引學生入學。每年Higher Education為其大學合作伙伴招收超過15000名在線學生入學申...
摘要:應用鏡像示例應用基于官方鏡像,修改了頁面信息應用鏡像推送應用鏡像到指定的遠程鏡像倉庫創建通過創建,,命令行如下驗證服務打開瀏覽器,訪問服務,確認應用的內容。驗證更新打開瀏覽器,訪問服務,驗證服務升級內容是否正常。 概述 結合大家CI/CD的應用場景,本篇Blog旨在介紹如何通過Rancher的webhook微服務來實現CI/CD的聯動。 流程介紹 本次實踐的主要流程如下: CI/CD...
閱讀 1535·2021-09-22 15:35
閱讀 2014·2021-09-14 18:04
閱讀 884·2019-08-30 15:55
閱讀 2457·2019-08-30 15:53
閱讀 2685·2019-08-30 12:45
閱讀 1209·2019-08-29 17:01
閱讀 2584·2019-08-29 15:30
閱讀 3521·2019-08-29 15:09