1. DevOps的一些介紹
DevOps(Development和Operations的組合詞)是一組程序、方法與系統的統稱,用于促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合,
它是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例,透過自動化“軟體交付”和“架構變更”的流程,來使得構建、測驗、發布軟體能夠更加地快捷、頻繁和可靠,
它的出現是由于軟體行業日益清晰地認識到:為了按時交付軟體產品和服務,開發和運維作業必須緊密合作,
DevOps到底是什么意思?
什么是 DevOps?
大家通過閱讀這些檔案大概就能了解到DevOps的一些概念和優點,提到DevOps不得不提下持續集成和持續交付 (CI/CD),
2. DevOps在k8s環境下個人的一些實踐
我說的DevOps主要是指一些CI/CD的內容了,主要是以k8s環境進行的操作,
假設一個公司的業務包含windows桌面程式,和一些服務器端的服務,這些都事先在公司內網進行開發和發布,驗證通過后才會發布到公網,
想做到快速的發布我們可以通過自動化工具進行這些操作,比如jenkins和Azure Pipelines這類工具,
大家都知道微軟的工具都挺好用的,但是可能會出現收費的情況,所以選擇的時候可能就會選擇開源但很臃腫的jenkins,也罷能跑就行吧,為了滿足上面的假設,畫出下圖,

看了圖片我們可以想到我們需要準備的東西:
-
一個混合集群
-
K8s添加 Windows 節點
-
k8s通過helm包安裝jenkins
jenkins Helm包地址 這個親測好用
-
k8s動態pod jenkins集群插件檔案
有了混合集群的環境,我們就可以進行圖上的一些任務的操作了,對于代碼審查,大家可以使用這個SonarQube服務,把它單獨部署到集群,然后暴露出單獨的api可以通過api進行代碼審查,
對于多環境部署的一些設計,如果測驗開發部門聯系的不太緊密的情況,或者關系都很不好的情況下,那還是建議大家分別建立各自的集群,對于一些鏡像倉庫可以公用,
如果開發測驗都在一個集群的情況下倒是也可以,
宗旨就是各自的ingress指向各自的服務,這樣就不會出現訪問錯誤的情況,

拉取代碼=>構建鏡像=>推送鏡像=>更新集群鏡像
觸發方式可以是代碼合并的時候或者定時觸發,
這樣作為開發可以做到一天發布好多遍,這樣的好處就是能夠快速看到開發效果,如果沒問題也能及時的更新到測驗和生產環境,縮短軟體交付的周期,是很好的事情,
針對外網正式環境的更新可能會謹慎一些,有些時候我們的原始碼不會直接放到公網,所以我們會把我們的程式的打包成docker鏡像進行分發更新,
3. DevOps個人的一些感悟
個人感覺在一個公司推廣DevOps,需要多個部門間統一共識,這樣在進行溝通的時候才能高效,在進行一些方案實施的時候也可以很快的落實,當然有些時候如果主要負責的那個人推進方案有阻礙的時候,又不能及時的得到支持,甚至被邊緣化的時候,那方案的實施可能就會稀碎了,而且還會得到很大的一口鍋,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/458250.html
標籤:.NET技术
