DevOps的概念理解前端
DevOps 的概念在軟件開發行業中逐漸流行起來。愈來愈多的團隊但願實現產品的敏捷開發,DevOps 使一切成爲可能。有了 DevOps ,團隊能夠按期發佈代碼、自動化部署、並將持續集成 / 持續交付做爲發佈過程的一部分。
一句話歸納就是提升生產力,快速交付!vue
後端開發框架:基於C#的.netCore和Java的SpringCloud,少部分項目採用python和go開發java
前端開發框架:vue、reactpython
服務部署:前端站點基於ECS的nginx部署 ,後端服務統一部署在kubernetes上react
代碼倉庫:gitlabnginx
項目環境:目前有6套,開發、測試、壓測、集成、PRE和生產git
福祿後端CICD流程docker
CICD 流程說明shell
每一次的代碼push,根據建立的分支,根據在gitlab的CICD文件gitlab.yml定義構建步驟,觸發runner,從單元測試、經過dockerfile進行編譯和生成鏡像版本、將新鏡像部署到K8S生成pod,而後觸發接口自動化測試任務的執行json
!!#00ffff 好像缺了點什麼 !!
初次部署應用到kubernetes怎麼作的?
服務的configmap在哪裏維護的?
每一個服務的gitlab.yml文件都不同,如何維護的?
應用的域名解析怎麼作?
目前有6套環境進行管理,其中開發、測試、集成、壓測都是測試人員維護,預發佈和生產運維人員維護;這也就要求每個測試人員都必須對整個cicd流程和配置絕對掌握;因此當新人入職,須要掌握整個流程才能進入項目測試中,這是一個學習成本;
預發佈和生產的kubernetes只有運維可以操做,當有新的服務須要上線上述環境,或者configmap有變更,或者有時候排查問題須要查看容器日誌,咱們只能經過運維的工單系統描述做業操做,中間文字描述可能存在理解差別,溝通成本和時間成本很大;
有的新應用咱們去設置cicd的相關文件,好比dockerfile,咱們發現應用的代碼目錄結構各類各樣,這樣每每就無法套用一個模板快速配置完成
前端CICD流程說明
開發人員push代碼到gitlab,測試人員經過jenkins拉取最新的代碼到jenkins本地,而後經過jenkins與服務器之間的傳輸管道,將要部署的文件更新到目標服務器,並觸發UI自動化的job
完整的過程來看,也缺點內容
跟後端應用同樣,前端的PRE和生產環境也是運維處理,因此當一個新的應用上線咱們也須要發工單,描述具體操做,而後運維執行工單;配置文件通常不會變動,因此咱們在jenkins推送更新文件到目標服務器的時候,將配置文件作了過濾處理。後續須要變動經過工單執行
!!#ff0000 工具鏈到平臺的轉變 !!
當前的cicd是對工具鏈進行了打通,但須要你們登陸各個工具平臺操做,咱們但願對工具集進行功能整合,打造一個系統平臺,而且將CICD的技術細節進行屏蔽,開發人員可以專心進行業務需求的開發,測試人員可以專一到需求測試任務中,而運維人員可以解放繁重的工單內容,投入到服務高可用的建設上!
福祿研發管理平臺功能結構圖
首頁-建立應用
構建記錄
部署管理
容器管理
對接系統的說明
舉個栗子進行介紹
根據模板,建立一個應用
根據名稱默認生成域名
初始化代碼倉庫,默認生成develop分支
在rdms第一次部署到對應環境(開發、測試、生產等)時,會默認讀取appsettings.Development.json的文件,並寫入kubernets的configmap
構建完成,進行部署
在kubernets生成pod
經過域名訪問接口文檔
一樣的,舉個栗子介紹
首頁-建立前端站點
根據名稱生成域名
初始化代碼倉庫,默認生成develop分支
配置文件,默認生成幾套環境的配置文件,站點的配置維護就是維護這幾個文件
部署應用
kubernetes的nginx容器內能夠看到部署的文件,實際就是掛載的oss到該pod上
目前RDMS投產一個月左右,咱們但願能將devops理念在這個系統上進行持續的優化和實踐,包括研發中心小夥伴也很踊躍參與共建,提出了不少好的方向和建議