作者 | 徐進茂(羅離) JAVA 開發工程師 導讀 :近年來,Serverless 一詞越來越熱,它已經逐漸成為了一種新型的軟件設計架構。和 DevOps 概念提倡的是通過一系列工具和自動化的技術來降低運維的難度,促進研發運維一體化不同, Serverless 更像是一種 NoOps,即通過"不用做"的方式來解決"如何更高效做"的問題。 DevOps 概述 DevOps 是一組用於促進開發和運維人員之間協作的過程、方法和系統的統稱。 DevOps 提倡通過一系列的技術和工具降低開發和運維人員之間的隔閡,實現從開發到最終部署的全流程自動化,從而達到開發運維一體化。通過將 DevOps 的理念引入到整個系統的開發過程中,能夠顯著提升軟件的開發效率,縮短軟件交付的周期,更加適應當今快速發展的互聯網時代。 說到 DevOps ,就必然會提到持續集成。持續集成指的是在軟件開發過程中,軟件開發人員持續不斷地將開發出來的代碼和其他的開發人員的代碼進行合併,每次合併后自動地進行編譯、構建,並運行自動化測試進行驗證,而不是等到最後各自開發完成后才合併在一起。 持續集成能從根本上提高一個團隊的軟件開發效率。在軟件開發過程中引入持續集成,可以幫助團隊及時的發現系統中的問題,並快速做出修復,不僅可以縮短軟件開發的時間,而且可以交付更具質量的系統。 基於 Docker 實現一個 DevOps 開發環境 一個 DevOps 開發環境需要滿足以下 8 點需求。 環境一致性 :在本地開發出來的功能,無論在什麼環境下部署都應該能得到一致的結果; 代碼自動檢查 :為了儘早發現問題,每一次代碼提交后,系統都應該自動對代碼進行檢查,及早發現潛在的問題,並運行自動化測試; 持續集成 :每次代碼提交后系統可以自動進行代碼的編譯和打包,無需運維人員手動進行; 持續部署 :代碼集成完畢后,系統可以自動將運行環境中的舊版本應用更新成新版本的應用並且整個過程中不會讓系統不可用; 持續反饋 :在代碼自動檢查、持續集成、持續部署的過程中,一旦出現問題,要能及時將問題反饋給開發人員以及運維人員。開發和運維人員收到反饋后對問題及時進行修復; 快速回滾 :當發現本次部署的版本出現問題時,系統應能快速回退