有多種不同的技術變革都在深刻影響著企業IT部門工作的方式。虛擬化,云計算,軟件定義一切,大數據,一切皆服務——這些都迫使IT做出改變,并關注新的工作方案,DevOps。
IT部門的大多數改變都是為了追求速度——對于用戶的應用程序的響應速度;改變功能,應用程序和流程的速度,以更好地響應企業的需求。
傳統的IT工作方式被迫做出改變。 傳統的IT項目計劃遵循一個長期的時間表 – 根據用戶定義文件開發合理的項目管理標準,項目計劃,審查,變更管理流程等,這一時間計劃跨度在18個月。
問題在于花費18個月來解決問題,并不能解決真正的問題,屆時,這個問題可能已經消失了,或者被其他新問題所取代。
DevOps就是解決方案 - 本質上,通過自動化技術把開發和運營團隊緊密聯系起來,來支持業務需求變化的速度。
DevOps是一種將企業的應用開發團隊和那些系統運營團隊相整合,合作進行任務執行的IT工作方案。軟件定義的基礎設施和云計算要求企業打破開發和運營團隊之間的孤立。
傳統上,開發團隊傾向于作為一個獨立團體進行工作,根據不同的定義文件,在其項目上持續工作,直到他們創造出他們所認可的一個完整的應用程序。然后,它會經過一個測試階段 - 通常還是處于開發名義下 - 在此之后,運營團隊開始接管這一應用程序,并在企業內進行運行。
通常來說,新的應用程序會有一些暫時的問題,開發團隊會從支持部門那里獲得問題名單,會對它們的優先級別進行評估, - “這個問題看起來很有趣?” - 并在程序環境內對他們認為必需的問題進行修改,然后再次提交測試,并再次進行運行驗證。
但是,如果有比“暫時的問題”更嚴重的問題,一切就要復雜很多。在操作環境中有重大問題的應用程序必須中止運行,其包含的數據必須同步到原先的應用程序中,這樣員工,合作伙伴和客戶可以重新進行工作。這些問題會令開發團隊十分費解,因為在他們自己的測試環境中,一切運行良好。
工作會導致挫折和效率低下,因為每個團隊都不理解其他團隊的局限性或挑戰。但更重要的是,IT和業務都受到了嚴重影響。
以技術為中心的公司,如Facebook, Yahoo, Yammer, Amazon, Google和VMware都已經采用了DevOps方案。
DevOps是如何解決工作孤立問題的
開發人員必須更密切地與運營團隊,以及整個操作環境進行合作。開發團隊應該盡可能跟進實時數據集,這樣任何問題都可以在早期被發現。
DevOps方案的關鍵在于盡可能多的使用自動化技術 - 無論是把開發項目從測試階段轉移到運行階段的流程,還是如何解決任何運行中產生的問題。
項目必須被分解成更小的模塊 - 所需的功能,必須嚴格進行優先排列,開發團隊必須在操作環境中迅速開發出功能系統,來解決最高優先的需求。 “迅速”應該以星期來衡量 – 根據經驗,第一次運行應該在12-18周之內進行。
這就把需求從單一而龐大的應用程序,轉移到由各種資源匯總的混合功能應用程序。數據中心內現有的功能應該與云應用和云服務相結合起來,這樣就不需要持續重復開發,使用專業知識和數據集對整體復合應用程序所適用的領域進行增值。
測試階段應該在運行環境中并行實現,這樣更多的性能問題可以盡早被發現,或者在虛擬環境中,由一些真實用戶來進行測試。
對于并行實現,通過使用虛擬化比較容易實現。現有數據庫的副本可以對比運行DevOps代碼的虛擬計算機。 然后測試可以針對現有網絡負載進行運行,這樣其性能可以在代碼有效同時進行評估。
確保異常情況可以迅速并有效地獲得處理。測試階段中人員力量是很重要的 –他們可以比計算機更有效的觀察人們在使用應用程序時的規律和問題。多一些人員參與測試階段 – 盡可能多的進行觀測和評估。
一旦測試階段完成了, 然后就應該把應用程序切換到實時數據庫, 把用戶切換到新的代碼。
必須明白,DevOps方案,就其本質而言,是一個反復的過程。獲得60%,70%或80%的解決方案,意味著下一步仍然有40%,30%或20%的問題需要解決。我們的目標應該始終是解決還剩下問題中最優先的部分,以及在最后代碼運行之后出現的新需求。
如何讓你的DevOps戰略碩果累累
代碼元素由開發團隊所完成,盡可能使用自動化,完整的,全面認證的方式,把這些元素從開發團隊的測試階段,過渡到運行環境中,將有助于確保增量變化,并取得改善。
重新運行,也可以是自動化的——盡管一個運行良好的DevOps項目不應該被要求重新運行,再執行,不過這也應該作為計劃B。能夠回到一個已知點 - 相當于一個備份,恢復時間目標和恢復點目標(RTO/ RPO) - 應該是任何DevOps項目設置的一部分。
反饋也必須是自動化的。 沒有必要等待支持部門收集意見和反饋,然后匯報給DevOps團隊。獲取反饋應該作為應用程序的一部分; 要求反饋應該作為流程的一部分。根據反饋對于業務的影響程度采取相應措施- 而不是這一問題從技術層面上聽上去多么有趣。
總體而言,DevOps對于加快IT部門確保其滿足業務需求而言,是一個很好的方案。 然而,一個無法妥善執行的DevOps方案將導致更多的錯誤,會使用戶對于他們獲得的體驗感到不滿。
實施DevOps策略并不是一件容易的事,因為它要求企業必須接受新的文化。 DevOps是一種文化,流程,技術和人文。
它在文化和企業上需要重大改變,其中涉及到相當多的行為改變。這意味著要摒棄很多已經深入企業很多年的或顯性或隱性的慣例。其中包括告訴那些已經工作多年的員工,他們每天慣于做事的方式已經落伍了,這是一個艱難的過程。
只是簡單把開發和運營團隊放在同一個房間里,并不會帶來一個成功的DevOps戰略 - 每個團隊都必須了解和認識到在云計算和軟件定義時代進行合作工作的重要性。
自動化技術,激勵開發和運營團隊合作工作,分配時間用于培訓員工,根據創建即可執行原則來開發新的企業架構標準,將IT與業務目標相結合,所有這些步驟都將確保DevOps戰略不會受到損害。確保一些細微的方面都涵蓋到,將有助于DevOps更好發揮作用。