背景
在目前快節奏生活已經成為社會風潮的大背景下,越來越多的網際網路公司為了其應用產品能更快的掌控風向脈搏,搶佔市場紅利,需要更快速的應用產品開發上線,在市場的反饋下,不斷的迭代新功能。在此需求下,持續整合,持續部署,持續交付被越來愈多公司所推崇,DevOPS文化的興起,一方面是實踐打破運維與研發的堡壘之牆,另一方面也是敏捷開發過程中的必要產物。
提高軟體開發效能,快速迭代、快速試錯,以及根據自己開發團隊特點,使用怎樣的技術手段,才能是軟體開發效能最高,更為快速敏捷,以及怎樣才能滿足產品能在最短週期、高質量的交付業務的訴求?
本專欄在此背景下為大家提供Gitlab CI持續整合方案,通過一些列實戰,讓各位能夠能直觀清晰的理解這種模式,本專欄為拋磚引玉,各位結合,讀者可以結合自己實際的生產環境來考慮是否引入此中模式,優化交付流程,釋放研發最能大潛能,與此同時,讀者可以在本專欄體驗端到端的 CICD 的如絲般順滑的CI體驗,並且無論運維人員還是開發人員都能夠在本專欄更系統巨集觀的瞭解和學習Gitlab CI的流程及具體操作方式。
一、 Gitlab
提到Gitlab CI,大家可能都會想到Gitlab,其作為目前最火的開業git託管服務端,相較於Github,各企業可以進行私有化部署,伺服器自己維護,專案資料更加安全更可控,網路也更快及更安全。
Gitlab 為使用者提供友好的web介面,可以線上程式碼檢視提交,多人協作線上code review,另外提供webhook及自建應用介入,強大的功能已經為大多數網際網路公司作為首選的程式碼倉庫,其自帶的Gitlab CI,不依託於其他釋出軟體,天然快速整合專案CI功能,更好的切合業務敏捷開發快速持續整合及部署的需求。
二、 持續整合
在談論Gitlab CI前,我們都知道持續整合,它是一種軟體開發實踐,其為了保證讓開發的產品可以保持高質量的情況下快速迭代,頻繁的將測試通過的程式碼合併到主分支中,不斷的去儘早的試錯,更為敏捷的開發。
三 Gitlab CI
通過上面的內容,我們已經能夠清楚的知道在快速發展的當下,敏捷是一種高效的開發模式,持續整合是我們在其過程中的必要措施,那麼如何實現這個持續整合呢,這時候就需要我們通過DevOPS的解決方案來實現,在此我們知道了大多數企業利用Gitlab,那們我們使用Gitlab CI來同一套系統來實現持續整合給為快捷統一。
四 Gitlab CI的優勢
作為Gitlab自帶的持續整合解決方案,程式碼使用 GitLab 進行託管,Gitlab CI天然集無需額外配置,不需要運維人員去單獨維護其他CI系統,避免多點故障引入,只用做好Gitlab的維護即可。
Gitlab CI的觸發為Git提交檢索.gitlab-ci.yaml檔案觸發,其免去了第三方CI伺服器對利用webhook定時請求Gitlab的壓力,如果配置的專案流水線很多,這個壓力不容小覷。
Gitlab CI本身設計為Config as Code
將CI/CD配置託管在專案中,避免每個人手工配置的CI或還有不一致帶來的問題。
Gitlab CI真正的架構為C/S架構模式,可方面的進行橫向擴充套件,執行job效能上不會有影響, 其構建包含構建日誌,容易溯源追蹤。
其CI過程利用gitlab 自帶的郵件通知,不用額外配置通知。
瞭解了Gitlab CI的優勢,是不是有了一定的興趣躍躍欲試,讓我們來一塊走進Gitlab CI得實戰,一塊領略如絲般順滑的持續整合體驗,通過專欄通過四個實戰,可以根據自己公司特點來改進流水線,適用於釋出物理伺服器,虛擬機器,公有云/私有云,已經K8s等。打破研發與運維的壁壘,提高團隊及協作/快速反饋/響應變化。
五 注意事項
本專欄內容由淺入深,從理論到實踐,雖然為微專欄,但是能從CI原理流程分析及前後端專案多環境混合部署,全方位多層次的深入瞭解及實戰Gitlab CI,相信無論您目前使用的是那種CI/CD方案,通過本專欄一定能讓您從不同角度來重新認識CI。
本專欄前兩個實戰門檻較低,使用於物理伺服器/虛擬機器/雲伺服器等,第三篇需要讀者具備一定的K8s知識,相信在不久的將來,微服務大行其道,第三篇定能祝你一臂之力。
✔打破運維開發壁壘
✔教你用Gitlab一鍵實現CI持續整合
一起學習>>>blog.51cto.com/cloumn/deta…