在如今的IT發展趨勢中,開發運維(DevOps )這個詞非常流行。這個詞是幾年前隨著單頁應用程序(SPA)的盛行而開始火爆起來的。然而,在接下來的幾年中,你將聽到一個新的流行語:無運維(NoOps)。
開發運維與無運維之間有什麽區別?
開發運維是結合了開發和運維,是開發和運維工程師互相配合以定義驅動服務生命周期(從設計到交付)的流程的實踐。
而無運維則表明沒有運維。它的理念是移除所有平台管理的工作,並減少開發人員與基礎設置之間的摩擦。
爲什麽以前我們沒有開發運維?
這個問題有很多答案。你可以認爲沒有這種必要,因爲當時的情況很簡單或文化還不健全。
我同意這些說法,但我認爲還有其他的根本原因。根據我的經驗,技術才是最關鍵的問題。交付的自動化很難實現。
十年前,大多數系統都沒有自動化的構建過程,也沒有定義良好的工作流程(如git-flow)。當時沒有物美價廉的CI解決方案,因此很難實現。
我記得2009年,我打算部署一個.net門戶網站。這是我的第一個作品。某個星期六的早晨,我花了一上午的時間嘗試使用開源工具創建一個自動部署系統,最後我放棄了。
我知道維護這樣的系統比手動部署更昂貴。而如今,我們可以使用Azure DevOps,只需通過Web浏覽器就可以在十分鍾內完成這些操作。時代已經變了。
實現無運維的可能性
從技術的角度來說,無運維完全可以實現。具體的實現有很多選擇,但是,我們基本上可以總結如下:
• PaaS解決方案:例如Heroku,或托管在Azure、AWS和所有其他供應商上的雲服務;
• 從大型供應商(AWS、Azure等)購買的無服務器計算;
• 建立可複制的基礎設施(第一次建立基礎設施時需要運維)。
上述這類解決方案非常適合解決基礎設施,而傳統的部署工具可以驅動流程並交付應用程序。