一款軟件產品的發布離不開兩類人的支持,即開發和運維。人們常常會把他們提到一起,如今DevOps開發模式的盛行也正是對他們的重新定義。目前軟件環境的變化可以說是開發者的黃金時代,而對于運維來說,這些變化正給他們帶來新的挑戰和期望。
過去的十年給軟件開發環境帶來了翻天覆地的變化,其中最大的變化是通過開源和云來生產基礎設施。就產品的靈活性和生產力而言,這絕對是對開發者利好的消息,但也給Ops(運維)帶來了一些新的挑戰和期望。
Dev的黃金時代
在過去,開發者的工具箱里僅有幾個大型軟件供應商提供的單片式解決方案,比如Oracle、IBM、HP等。這些解決方案一般都比較昂貴,并且還會伴隨整合和更新較慢等特點。一旦公司購買了它們,無論它們是否適合你,你都必須好好地利用它們。
如今,豐富的開源和云解決方案的出現徹底把開發者從傳統的工具依賴中解放出來,開發者可以在過去同等的條件下享受更好的基礎設施。開發者也可以根據自己的工作需求選擇合適的工具,并且它們是免費廉價的,這些工具能夠更好更快的進行整合,根據需求進行規模化擴展。現在,一個公司使用多種數據庫(Redis用于緩存、Elasticsearch用來搜索、MySQL等等)已經變的非常普遍,這些工具分工明確,兼容多個平臺。與此類似的各種分工工具還有:監控工具、計算環境、應用框架等。開發者可以因時制宜地選擇各種工具,提高產品的開發靈活性、生產力、性能等。
持續部署給開發者帶來了更多地福利,他們不再按月或者周期性地進行綁定發布,發布周期大大加快。這些都使得開發人員能夠事半功倍地完成產品,產品的更新已不再是業務人員與開發者之間的一個瓶頸。
Ops的惡夢
與此同時,工具的豐富與分工也創造了“Ops惡夢”,比如DevOps、SREs、IT管理等一系列新的挑戰和期望。
變更的速度:產品的監控和響應需求在數量上有了顯著的提高。為什么?因為大量的產品問題都是來自內部的代碼部署和架構變更。當進行持續部署(更不用提虛擬化和基礎設施即代碼了),變更的速度會大幅提升,速度地提升也很容易導致產品出錯。由此可以得出一個論點,即持續部署可以減少潛在的、災難性的錯誤,因為變化的周期變短、增量變少。
移動部分:現代基礎設施之間的最佳組合給運維人員帶來了不少災難。可移動的部分越來越多、依賴關系更加復雜以及更多的監控工具會時不時地發出各種警報。在這樣的環境中,故障排除已經成為一個永無止境地分類過程:過濾報警內容、優先考慮和應對潛在的事故,可以簡稱為報警疲勞。這已經是一個很常見的現象了,運維人員抱怨到:他們有50%―70%的時間都消耗在了響應報警上,以至于影響到了他們的核心工作:構建業務支持的基礎設施架構。
運維人員的底線則是迫切需要一些工具來解決和處理這些警報疲勞。一個很好的出發點就是企業能夠把噪音警報組織到一個更高層次的事件中,可以快速獲得他們想要的流程,并能夠有效地與利益相關者之間進行協作。
DevOps
DevOps的滾滾而來正是為了解決文中所提及的開發與運維瓶頸,更加強調開發與運維之間的密不可分。在DevOps環境下,開發人員和運維人員會構建一些關系、流程和工具,從而更好的與用戶互動。只有當人們愿意相互交談,關心相互的工作時,才能更好更快地創造商業價值。
來自:BigPanda Blog