Docker, IT技術的又一次變革


  雲計算剛剛問世的時候,很多人都認爲它的好處僅限於節約成本。但很快大家就開始認識到雲計算的強大,以及它對整個IT行業產生的深遠影響,在雲計算的推動下,IT行業發生了深刻的變革。雲計算將基礎設施作爲一種動態的、可自適應的資源提供給IT企業,一舉解決了困擾業界許久的靈活性和響應性問題。隨着雲計算的興起,像“cloud-native”和“cattle not pets”之類的術語行話也紛紛出現,它們都表達了一個意思,那就是整個跟雲計算相關的IT領域都需要徹底改變現有的意識形態,不能再像過去一樣看待基礎設施組件,因爲在雲計算模式下,基礎設施已經不再是一個既龐大又昂貴,而且專業得令人難以企及的怪物,它不再需要繁瑣的手動維護,也不再難以改換。

 

  如果說雲計算導致了IT業的變革,那麼容器技術的出現則將這場變革提升了新的高度。作爲一種容器技術,Docker已經以迅雷不及掩耳之勢,迅速佔領了業界的想象空間。容器一開始出現的時候遇到的情況跟雲計算差不多,大家都以爲容器技術只不過是針對當前存在的封裝和部署方面的問題提供了一個更便捷的解決方案而已。但實際上,容器虛擬化技術並不僅僅是一項更好的解決方案,它給我們的思維模式帶來的變革要比雲計算更爲深遠。

 

  雲計算改變了我們對“機器”的管理模式,但並未從本質上改變我們管理的對象。但容器就不一樣了,其優越性遠超傳統技術。藉助容器技術,用戶就能真正擺脫對服務器和操作系統的依賴,從而專注於應用及其組件本身。甚至可以這麼說,容器技術和軟件微服務架構代表了面向對象的組件式應用開發思想。

 

  Docker發展十分迅速,用氣勢如虹來形容也不爲過,業內的關注點很快就從一些基礎問題變成了Docker是否可以滿足企業級的運營需求。在各種博客上關於Docker的論戰也很火爆,有人開博記述利用Docker進行產品開發的相關經驗,也有人長篇大論地闡述Docker不能滿足企業級開發的種種理由,脣槍舌戰不亦樂乎。但雙方辯友都忽略了一個問題,那就是技術推廣普及的本質到底是什麼。這就好比船隻一樣,雖然船能夠在海上航行,但人類還是得想好要怎麼駕船航海。容器技術解決了很多問題,但也提出了很多新的問題,這一點和雲計算非常相似。人們對容器技術所存的疑問包括了架構、運營、組織和理念等多個方面。

 

    憑藉容器技術,很多事情都由不可能變成了可能,用戶甚至不需要親自出馬,就能解決這些事務。在意識到容器技術的強大之後,一些人在興奮之餘迫不及待地踏上了將容器技術投入實戰的探索之旅,然而這一過程卻要麻煩得多。在使用過程中各種問題接踵而至,比如:

·容器怎樣實現跨操作系統的通信,又是如何實現跨網絡邊界通信的?

·容器該怎樣監控?

·在實際應用中,如何將容器作爲組成部分整合到大型系統中去?此類複合型系統該如何管理?

 

  爲了解決上述問題,業界也出現了各種解決方案。比如Packer之類的封裝工具就可以在即用即拋型基礎設施上實現自動配置。而Kubernetes之類的集羣管理系統則可以在原始的容器上實現複製、運行狀態監控以及網絡管理。作爲平臺即服務類的產品,Cloud Foundry和OpenShift也在自己的架構模型中採用了容器技術。

 

  雖然這些更高端的系統部分地解決了容器部署初期產生的問題,但它們也暴露出了自身存在的新問題。現在用戶要面對的不是如何對容器進行管理和編排,而是如何對容器管理、部署及運維工具鏈進行管理和組裝。

 

  如此一來,用戶就陷入了無窮遞歸的困境。這種惡性循環到何時才能結束,目前筆者還無法給出答案。我們舉個例子來說,如果要弄清楚“在Mesos上運行Kubernetes”到底是個什麼意思,用戶至少要掌握三種以上全新的技術和操作模式,並將其融會貫通到一起,其難度可想而知。

 

  這些都還不算什麼,現在更重要的問題是,很多機構已經開始着手將容器技術納入到其業務架構、組織模式和理念體系之中。然而,這條路只能由用戶自己獨自走完。在這一過程中,用戶要經歷不斷的變革,以求適應新的形勢。這條路到底該怎麼走,終點在何方,目前都還未可知,但可以肯定的是,其走向在很大程度上要取決於企業自身的經歷、能力和企業文化。

 

  技術的重大革新是一個很複雜的過程。其前景無法預測,也無法簡單地加以規劃。就像我們開發產品一樣,要實施新的技術,也需要同樣精簡敏捷的技巧。所以我們應該問的不是“Docker是否可以滿足企業級的運營需求”,而是“容器技術會給企業的組織架構和業務模式帶來怎樣的改變,這些變動又是否會造成困擾”?要回答這個問題,只有在實際應用中加以實踐,並從反饋信息中吸取經驗教訓。這是一個過程,而且涵蓋的範圍非常廣泛,早就不是純技術領域能解決的問題了。

 

  像雲計算和容器虛擬化這樣的顛覆性技術給整個IT業帶來的影響是全方位的。如今計算資源的規模堪稱成千上萬,用戶可以在很短的時間內獲得大量資源,也可以快速銷燬資源,不像以前,要部署計算資源既費時又費力,往往需要很長的週期,而且規模也小。在這樣的形勢下,傳統的管理手段已經無法滿足現有需求。因此,不管是配置管理系統,還是配置與變更管理流程,都需要重新調整。

 

  新的管理工具和管理流程固然必要,但還不夠。在新的形勢下,技術人員不僅要適應新的思維模式,重新認識系統的概念,還要學習用新的系統解決問題。要將Docker投入企業級應用,光從技術角度提高程序的健壯性和安全性還不夠,還需要在人員配備、招聘和培訓方面下功夫。決定一個企業是否能夠適應變革的關鍵因素往往並不是新技術本身,而是企業能否吸納瞭解該技術潛在意義、並且能夠在此基礎上開展運營的人才。

 

  筆者相信,容器技術的影響範圍終將超越IT領域,容器技術必將成爲一種強大的推動力,促使整個企業從根本上發生改變。如何讓變革的規模變小、速度變快、發生得更頻繁,正是微服務架構和容器技術的價值所在。要想充分發揮這兩項技術的作用,IT企業就必須從公司架構和組織形態兩方面做出改變。這種連鎖式的轉變過程又會反過來作用於整個企業,賦予企業更強大的能力,幫助企業更迅速、更敏捷地爲社會提供信息服務。

 

  和容器管理系統一樣,新的組織結構在解決原有問題的同時,也會衍生出新的問題。打個比方來說,如果企業爲了提高自身的靈活性,決定採用Holacracy模式來管理整個公司的話,那麼該企業也同樣會經歷一個轉型過程。組織架構的轉變也要經歷實踐、失敗和變通的過程,這一點和技術變革是完全一樣的。

 

  在討論Docker或其他容器技術的企業級推廣問題時,我們首先要弄清楚一件事情:新技術只不過是一根導火線,隨之而來的變革要比新技術本身更爲龐雜,而且是一個長期的過程。我們的目光不能只侷限在容器技術上,而要從整個社會-技術系統的層面上來分析容器技術的利弊。在應對充滿變革和不確定性的未來時,我們必須盡力避免那種非成即敗的單向思維模式。從這個意義上來說,容器技術其實跟DevOps、精益生產和其它的企業轉型運動沒什麼不同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章