0
雷鋒網 AI科技評論按,日前,在2017中國開源年會上,阿里巴巴自研容器技術 Pouch 宣布開源。在雙十一買買買的狂潮之后,阿里選擇第一時間將 Pouch 技術開源,無疑,這又一次吸引無數開發者的目光。
借助阿里將自研容器技術 Pouch 開源的契機,雷鋒網 AI科技評論第一時間采訪到阿里 Pouch 技術的開源負責人孫宏亮。他目前負責的內容包含制定 Pouch 技術發展方向,管理與維護 Pouch 開源社區。AI 科技評論與他詳細探討了 Pouch 技術的一些關鍵細節,此次開源的緣由以及下一步的展望。

圖:阿里 Pouch 技術開源負責人孫宏亮
阿里“云化戰略”與容器技術
談及 Pouch 技術之前,先來說說阿里在今年雙十一的“云化戰略”。云化技術戰略是阿里集團基礎設施近年來一直在努力的方向,這其中包括混合云、資源 Pouch 容器化、統一調度、存儲計算分離和混部等多項技術的不斷突破和創新。這一戰略是支撐今年龐大支付量(3 分鐘 GMV 超百億,一小時 GMV 近 600 億,零點后交易峰值 32.5 萬筆/秒,支付峰值 25.6 萬筆/秒)的基礎,而 Pouch 容器技術在這一戰略中占據了尤為重要的地位,它對業務沒有任何侵入性,是實現便捷調度,統一基礎運維資源接口的基礎。
據悉,截止到今年雙 11,阿里已在集團范圍內實現在線服務全部 Pouch 容器化,內部已達到百萬級容器部署規模。
作為一種輕量級、可移植、自包含的軟件打包技術,容器技術可以使應用程序在幾乎任何地方以相同的方式運行。開發人員在自己筆記本上創建并測試好的容器,無需任何修改就能夠在生產系統的虛擬機、物理服務器或公有云主機上運行。但目前來說,以 Docker 為主的容器技術占據了全球大部分市場,中國企業所占的市場份額少之又少。
自研 Pouch
配置快速簡單、隔離性和安全性強等,這一系列技術特點讓 Docker 成為容器界的網紅。事實上,占據龐大市場份額的 Docker 不失為一個好選擇,為何阿里會選擇自研容器技術,AI科技評論向孫宏亮提出了這個疑問。
他表示,“阿里巴巴不能算是一家軟件公司,而是一家技術驅動型公司。在業務的變化之下,需要技術能快速靈活的應對。社區版本的 Docker 的確是業界數一數二的軟件,但是在面對一些場景時,難免存在開源軟件的弊端。”
他也進一步說明——開源軟件的發布周期是有計劃的,很明確,但在面對快速變化的業務時,選擇這類軟件不是一個好方法。”技術在很多時候都是為了更好地支撐業務,本著業務第一的角度,始終要在‘follow開源軟件’和‘自研軟件自主可控’方面做出一個選擇,阿里巴巴毫無意外選擇了后者‘自研 Pouch 容器技術’。”
出于技術互補的考量,他們將 Docker 技術與阿里容器技術產品 T4 都做了一些修改整合后,將兩者融合為了一個產品,這個產品在阿里內部被稱為 AliDocker,也就是 Pouch 的前身。

圖:Pouch演進之路
T4 是阿里在2011年的時候基于 Linux Container(LXC) 開發的容器技術基礎設施。相比 Docker 的模式和理念,T4 其實更適合阿里內部的運維現狀。T4 是從阿里內部的資源管理和日常運維中土生土長出來的產品,在誕生的第一天就針對內部基礎設施、運維工具甚至是運維習慣做了很多特別的設計。因此,在阿里內部進行容器管理時,融合 T4 的 Pouch 技術比起 Docker 來說會稍勝一籌。

圖:阿里 Pouch 技術歷史
“Docker 誕生并走向流行的主要原因在于其提出的‘鏡像技術’。Docker 對行業產生深遠影響的是 Docker 鏡像,這一點對于大型的互聯網公司而言,相信肯定深有感觸。因此,Docker 鏡像流行開來之后,阿里巴巴沒有理由不去接受這種給行業帶來大價值的技術。”孫宏亮對AI科技評論說道,“這也就回到了‘阿里容器技術融合 Docker 鏡像’的這一事實上。另外,一方面,Docker 社區中一些優秀的設計理念以及好的功能實現,我們也在 Pouch 版本中引入,保障 Pouch 和社區的同步。”
關鍵考慮
Pouch 容器技術的誕生過程中究竟有哪些棘手問題?孫宏亮對AI科技評論說道,“容器的運用不是一個難題,容器技術的大規模運用卻是一個十分棘手的問題。要想實現大規模應用,容器技術必須要有能力覆蓋足夠多的場景。而場景復雜的環境中,安全、性能、穩定問題都會逐漸暴露出來。”
他具體解釋了如下三個關鍵方面:安全、性能、穩定性。
安全方面,主要在 Pouch 技術的隔離功能上線這一節點。在這個節點上,阿里內核也提供了相應的隔離特性,Pouch 也實現了磁盤隔離、網絡隔離等功能,從而初步具備大規模應用的能力。
性能方面,主要在 Pouch 支持P2P鏡像分發這一節點。企業數據中心集群規模上升之后,容器鏡像的傳輸效率、鏡像倉庫的網絡能力很容易成為瓶頸,為此阿里巴巴研發了鏡像分發工具“蜻蜓”,保障鏡像分發效率,從而保障業務分發速度。
當安全與性能達標之后,隨著規模的繼續增長,Pouch 的穩定性提升就成為新的發展拐點。Pouch 在2017年雙11的接近一年時間內,投入了巨大精力提升 Pouch 的穩定性,同時對穩定性的指標要求也是不斷在提高。直到今年雙11,1682億交易額背后擁有百萬級容器規模的支撐集群,也極大的驗證了穩定性的戰役取得了不小的成績。
“數年如一日,長時間的技術錘煉與經驗積累,鑄就了阿里容器今天的成績。阿里巴巴長時間踩過的坑、走過的彎路,讓 Pouch 以一個務實者的姿態出現在如今的容器生態圈,阿里認為‘只有 Pouch 更懂應用,更貼近場景’。”孫宏亮由衷感慨。
他表示,他們目前依然處于攻克一些容器技術難題的過程中,這些技術難題,主要圍繞在容器的安全隔離性方面。傳統容器主要完全依賴于 Linux 內核的特性提供隔離,而他們認為這樣的隔離方式存在缺陷。他進一步陳述到,
第一,我們 Pouch 團隊積極與阿里內核團隊展開研究合作,在內核架構層面提出創新,嘗試讓未來的內核技術解決容器技術的隔離性問題。
與此同時,容器技術在軟硬件結合層面,依然有很多技術創新的可能性,在基于輕量級虛擬化技術的容器實現中,我們也在于虛擬化團隊嘗試為 Pouch 做硬件適配,保障提供基于 hypervisor 的隔離性,同時提供硬件加速提高效率。
擁抱開源生態
此次開源對阿里的戰略意義何在?
孫宏亮對AI科技評論如此說道,“雖然目前容器生態中關于容器引擎方面,已經有了比較成熟的產品,但是阿里巴巴認為,現有的容器技術在技術落地方面仍然存在一些不足之處。比如,現有的容器技術,對企業的傳統應用侵入性依然很高,這也就導致了企業在走向云化,擁抱 Cloud Native 方面存在現實阻力。而阿里內部之所以可以做到業務100%容器化,主要是借助阿里巴巴集團系統軟件部對業務系統的了解,與容器技術 Pouch 的不斷優化。而 Pouch 這方面的技術優勢,對行業無疑是擁有難以估量的價值的,阿里巴巴希望通過開源的方式,把經驗和心得與行業共享,真正讓行業在云化道路上加快進程,早日擁抱 Cloud Native。”

圖:阿里 Pouch 開源計劃
阿里巴巴對于 Pouch 的開源計劃則主要圍繞3點:擁抱生態,解耦依賴與合作共建。
擁抱生態是什么意思呢? 他們希望以標準化的方式去做一些事情,比如,會去兼容 CNCF 基金會中的 kubernetes 生態,會在網絡、存儲等標準化作出貢獻。
解耦依賴,主要是指的阿里容器技術目前和內部系統仍有部分耦合,他們會解耦依賴,抽離通用部分,貢獻給社區。
合作共建指的是他們會和合作伙伴一起共建生態,目前他們已經和浙江大學SEL實驗室等合作伙伴達成協議,共同參與開源生態,打造國際知名容器品牌。
目前,阿里巴巴容器技術 Pouch 團隊有十余位工程師在做開源建設。在采訪中,孫宏亮也提到,他們在持續招聘容器領域的專家,預計到18年上半年,這個團隊會擴大至20人以上。
Pouch 的代碼也已經在 GitHub 公開,大家可以點擊 https://github.com/alibaba/pouch 查看詳情。
雷鋒網,AI科技評論編輯。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。