久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

基于k8s的DevOps實踐是怎么樣的

140次閱讀
沒有評論

共計 2237 個字符,預計需要花費 6 分鐘才能閱讀完成。

本篇文章給大家分享的是有關基于 k8s 的 DevOps 實踐是怎么樣的,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

用戶故事

首先,我們從開發整個環節來看用戶故事,思考如何將平臺做的更簡單。

 

DevOps 開發階段

從圖上的開發過程,我們可以梳理出目前的需求主要包括:為服務解決方案、云開發平臺、CI/CD、基于 k8s 的 IaaS、可觀察性、邊緣計算、Serverless、DApp,我們最終確定了目前需要完成的 4 項核心功能,并確定了優先級:

CI/CD

基于 k8s 的 IaaS

數據可視化

云開發平臺

明確需求后,我們考慮過以上功能是否需要直接外采或自研。外采的好處在于可以快速部署,但實際研發過程中,我們只需要其中部分功能,“全家桶”的捆綁無法滿足靈活自定義的需求,難以進行后續進一步演進開發。根據實際情況,我們最終考慮一步步自研完成。

產品設計

在產品設計階段,我們需要既能保證快速上線,同時滿足后期局部的可修改性,我們為這個長期項目做了樂高式松耦合設計:

 

架構圖

松耦合架構允許每一層只完成該部分的功能,最小化對上下的耦合度,保證局部修改對整個系統影響最小。例如:我們需要部署一個 Prometheus 監控,運維同學無需管理源碼,我們只需要直接從配置開始進入部署,或者把鏡像緩存到本地后開始部署。

實踐之路 1.CI/CD

在開始之前我們首先確定了 Git 工作流,我們考慮過主干開發,考慮到主客觀條件以及我們的目標是讓開發變成一件簡單的事情,我們最終采用了如下圖的開發流程。

CI/CD 研發我們最初選用的是 Jenkins。但是我們的 Git 用的是 Bitbucket,初期用戶體驗并不是很好,而且部署的權限控制、賬號體系都比較繁瑣。為達到更好用戶體驗目的,我們現在開始嘗試使用 Bamboo 研發 CI/CD。

除了用戶體驗外,在使用 Jenkins 期間,Jenkinsfile 前期的管理也比較粗糙,項目增多后分叉也變的很多,迭代和維護都很繁瑣。為更好地管理 Bamboo 的配置,我們采用了 Git 子樹,以達到方便升級的效果;同時我們也把執行動作腳本化,既確保差異管理又能脫離 CI/CD 體系,本地即可完成獨立調試開發。

2. 測試

在整個實踐過程中遇到的最大問題在于測試、測試推廣以及快速構建各種集成測試環境。

測試推廣更多的屬于管理問題,研發可以涉及的主要在于:自動化生成一些測試和基鏡,幫助項目快速補齊部分測試。

關于如何快速構建各種集成測試環境,我們使用 Helm 來部署每個項目。通過主 Helm 包的依賴盡可能快速地構建關聯環境。

環境構建只是開始,環境有了,我們需要測試它們,目前自動化測試最為合適。

如果這個過程有測試部門參與會簡單很多,根據業務線和場景去做各個測試管理和維護。

在沒有測試部門參與的情況下我們該怎么做?如果代碼是同語言大倉庫,這個問題也會很簡單,只需進行關聯回歸即可。但是我們面臨的現實情況是:一個 CDN 系統設計涉及各個組件各種環境和語言。我們的解決方式是把測試鏈條的各個環節落實到各自的項目上,誰開發誰負責原則。我們只管理關系鏈,做上線前回歸。

2. 測試

在整個實踐過程中遇到的最大問題在于測試、測試推廣以及快速構建各種集成測試環境。

測試推廣更多的屬于管理問題,研發可以涉及的主要在于:自動化生成一些測試和基鏡,幫助項目快速補齊部分測試。

關于如何快速構建各種集成測試環境,我們使用 Helm 來部署每個項目。通過主 Helm 包的依賴盡可能快速地構建關聯環境。

環境構建只是開始,環境有了,我們需要測試它們,目前自動化測試最為合適。

如果這個過程有測試部門參與會簡單很多,根據業務線和場景去做各個測試管理和維護。

在沒有測試部門參與的情況下我們該怎么做?如果代碼是同語言大倉庫,這個問題也會很簡單,只需進行關聯回歸即可。但是我們面臨的現實情況是:一個 CDN 系統設計涉及各個組件各種環境和語言。我們的解決方式是把測試鏈條的各個環節落實到各自的項目上,誰開發誰負責原則。我們只管理關系鏈,做上線前回歸。

快速部署關聯系統方案

3. 云開發平臺

很多開發者都會遇到多個項目開發環境的切換問題,例如:很多同語言的新老項目版本差異較大、需自定義環境設置;或者很多新人想要入手一個項目搭建開發環境就要耗費大量時間。

我們的原則是把開發變成一件很簡單的事情。我們正在嘗試使用 Eclipse Che 的工作空間管理的方式來管理項目開發環境,以降低開發門檻。Eclipse Che 是一個開源的解決方案,這里不作過多介紹,感興趣的朋友可以自己了解下。

未來思考

產品的最終形態可能是什么樣子?

目前按照目前的優先級,火箭右側的 4 項核心功能是我們優先要做的。就像上面所說的松耦合架構有利于產品的局部迭代升級,局部的量變有可能帶來產品的質變。

往前一步,我們需要做什么,才能更貼近用戶?應該是微服務解決方案。

往后一步,我們需要做什么,才能更貼近云服務?目前能確定的是對標產品是容器云,那這個平臺的賣點就是一個完整開發工具鏈的容器云。

關于邊緣計算,作為 IaaS 層的 k8s 換成 KubeEdge 等或許我們產品就具備了邊緣計算的能力。

如果區塊鏈的 DApp 或是 Serverless 成熟的 IaaS 層的修改替換更容易讓產品快速適應市場。

以上就是基于 k8s 的 DevOps 實踐是怎么樣的,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2237字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 醴陵市| 本溪市| 荣昌县| 石楼县| 兴文县| 仁怀市| 乐至县| 长乐市| 鸡西市| 涿州市| 西昌市| 胶州市| 安泽县| 卢氏县| 安新县| 乐昌市| 西宁市| 安溪县| 增城市| 马关县| 武川县| 北宁市| 庆元县| 万年县| 纳雍县| 施秉县| 江达县| 彝良县| 那曲县| 汕头市| 文水县| 同心县| 房产| 灵台县| 洱源县| 绥滨县| 马边| 崇明县| 石泉县| 宿州市| 巴东县|