Docker實戰:一部奮鬥史

前段時間,一篇名爲《Docker實戰一部失敗史》的文章在2B圈子引發一片譁然。原文做者的主觀意願不得而知,固然咱們也不是動機論的擁躉,僅做爲一名再普通不過的容器技術創業者身份,聊聊咱們的Docker實戰:一部奮鬥史docker

Docker並非一門新技術。若是你以前就使用其餘容器技術,那麼上手Docker會很簡單;以前不瞭解容器技術也沒有問題,只是一些容器的思惟須要你去了解,而後再去使用。就像使用智能機以前,並非必定要使用非智能機做爲鋪墊。服務器

Docker公司推出的以容器管理爲核心的一整套工具是在已有技術(LXC,並藉助SCM的設計思想)的基礎上作的延續性改進,因此Docker並非一門新技術,他的創新在於思想層面,總結起來有如下幾點:運維

1.打包(封裝)分佈式

Docker利用容器技術將軟件的代碼和環境打包在一個鏡像中,這是它的技術特性。從思想層面考慮,它改變了軟件交付方式,讓軟件的生產者將軟件作出了以後交付到最終用戶那裏保持絕對的一致性。通俗地講,容器技術將軟件的運行與環境完全隔離了。工具

給你們舉個例子:測試

Windows系統你們都用過,自Windows問世以來,微軟花了十幾年的時間,一直到Win7才基本上解決一個困擾了多年的問題——共享動態連接庫的隔離。說得通俗一點就是隔離每一個軟件的依賴文件使之互相不受影響。優化

問題是怎麼產生的呢?雲計算

軟件是由不一樣公司編寫的,但庫又是共享的,所以隨着軟件的發佈,軟件廠商會將本身的動態庫打包發佈,到了用戶那裏直接安裝。你們別忘了這個是共享庫,A軟件用A版本的,B軟件用B版本的,最終咱們可愛的操做系統就由於安裝一些軟件被搞崩潰藍屏,墜入到平均1個月重裝一次系統的循環當中。操作系統

微軟的共享連接庫隔離,說白了就是要減小軟件對系統的依賴性,但微軟作了這麼多年都沒能作到不折不扣的隔離。設計

但到了2013年Docker作到了,它用了巧妙的方式將軟件和依賴的文件(環境)封裝成包(鏡像)。當我看到這種方式來解決軟件交付問題的時候,彷彿感到一絲帶着情感的風吹到個人心坎裏同樣!「Docker太TM瞭解咱們這幫開發者了」。當我將這種方式(思想)傳達給運維兄弟的時候,運維兄弟迷茫的雙眼頓時發出一道閃電,惡狠狠的扔出來一句: 「我 *和諧和諧*,不再用一次次折騰環境了!」

2.隔離

新技術都是在舊有技術上「生長」出來的,Docker最先基於LXC技術並進行技術革新,但任何技術的演化都與其當時所處的時間點是有關係的。2013年虛擬化技術正在逐步成熟,處於快速增加期,業界都在圍着虛擬化技術來爭搶市場份額,目的是爲了抓住雲計算這杆大旗。

但虛擬化技術是「生長」 在物理設備上的技術。它本質上是優化物理設備的使用效率。它沒有抓住雲計算的要害。但以Docker爲表明的容器技術的出現,它與虛擬化技術徹底不是在一個維度上的產品。容器技術解決的是軟件交付效率和成本的問題,它直達了用戶的最終訴求。雲計算的最終目的不就是爲了提高產品的交付效率,下降交付成本嗎?虛擬化技術提供土壤,容器技術才得以開花結果!

既然是隔離,那麼容器技術的隔離只須要保證軟件和主機之間的隔離就能夠了。談什麼隔離性很差,拿容器當虛擬機用的同窗們可能還須要調整下思路。

任何事物都有其適用性,技術也是如此,「不要由於手裏拿把錘子,看什麼都像釘子。」

3.發佈

截至目前,鏡像倉庫能夠說是Docker最偉大的發明!它將鏡像以代碼倉庫的形式進行版本管理,並支持經過Push/Pull的方式來發布和分發鏡像,它爲軟件的交付提供了載體

咱們已經感覺到了代碼管理和分佈式開發的便利,鏡像倉庫爲咱們提供了軟件的版本管理和全球分發。想一想咱們之前經歷,以及正在經歷的獲取軟件的方式吧!你用或者不用,鏡像倉庫就在那裏。     

額外說一句,那次全球的docker大罷工對企業生產環境會形成影響,尤爲是《Docker實戰:一部失敗史》文章做者說的互聯網金融公司的場景,我以爲這個問題你們看看就好,這應該是做者開的玩笑。

 

咱們的奮鬥史【簡短且主觀】

13年初,咱們開始接觸Docker。在剛推出時,Docker雖然仍是個帶着實驗性質的產品,但徹底能夠進行完整的測試。請注意這裏面的徹底和完整兩個詞,Docker雖是個新鮮貨,可是實踐證實測試環境下是沒有問題的,因此咱們嘗試將其用在生產環境下。

14年初,公司內部自行研發出了一套容器管理系統,使用在內部開發和部分服務的生產環境中,又一次證實生產環境下也是沒有問題的。(注:們在2014年3月份已經將容器應用到生產環境中, 當時Docker的版本是0.9.0 ,咱們生產環境的規模是4臺2U的惠普服務器,32G內存。沒有發生任何線上事故。)

15年4月,咱們從以前的公司出來創業,把三年的落地經驗和不斷迭代的產品,拿來進行商業化運做,最終面向用戶的是產品基於容器技術的應用管理平臺。咱們爲何能放棄現有的一切,投身於纔剛剛出現2年的技術來創業呢?

一是由於咱們看到了將來的發展方向,發現了另一個維度的市場。容器技術能真正發揮雲計算簡捷高效的特色。

二是考慮到還有不少在努力填坑的朋友和公司,爲了讓他們更快的享受雲計算和容器技術帶來的紅利(《一部失敗史》偏偏驗證了咱們的這個想法)。

 

結語

只要有解決問題的思想,能用錢解決的問題都不是技術問題。

 

本文做者周悅秋,好雨聯合創始人

文中提到《Docker實戰:一部失敗史》

原文連接:http://t.cn/RVFtYi9

THEHFTFGUY 「Docker in Production: A History of Failure

相關文章
相關標籤/搜索