對于基礎(chǔ)設(shè)施和運(yùn)營團(tuán)隊(duì)而言,應(yīng)用程序容器的發(fā)展是一把雙刃劍。
哪兒來的這么大動靜?其實(shí)是由開發(fā)人員研發(fā)的數(shù)以百萬計(jì)的Docker應(yīng)用程序容器產(chǎn)生的,并以迅雷不及掩耳之勢直侵企業(yè)數(shù)據(jù)中心。
的確,開發(fā)人員利用Docker的熱情從未如此之高。應(yīng)用程序容器項(xiàng)目和公司在2013年出爐,但它的價(jià)值已經(jīng)超過10億美元。Docker容器已經(jīng)被下載超過4億次,在Docker 中心已經(jīng)有超過100000個(gè)“Dockerized”應(yīng)用程序。Docker應(yīng)用程序容器產(chǎn)生的,并以迅雷不及掩耳之勢直侵企業(yè)數(shù)據(jù)中心。
對于基礎(chǔ)設(shè)施和運(yùn)營團(tuán)隊(duì)而言,應(yīng)用程序容器的發(fā)展是一把雙刃劍。好的一面是,容器是一個(gè)輕量級的虛擬化形式,可以非常有效地利用底層基礎(chǔ)設(shè)施——容器用戶報(bào)告,容器的密度是十倍以上,在一個(gè)管理程序上運(yùn)行的虛擬機(jī)。因?yàn)楹芏嗳萜鲗?shí)現(xiàn)是開源的,它也是一個(gè)成本效益——有時(shí)甚至是自由形式的虛擬化。
但是容器的優(yōu)勢也是自己的弱點(diǎn)。容器很小,處于不穩(wěn)定的狀態(tài),它的出現(xiàn)和消失都很迅速。監(jiān)測公司New Relic最近分析了收集到的數(shù)據(jù),作為其新的Docker監(jiān)測服務(wù)的一部分,并發(fā)現(xiàn)絕大多數(shù)的Docker容器壽命不到五分鐘。這使我們認(rèn)為容器是一個(gè)新的服務(wù)器。
“我們曾把服務(wù)器比作寵物和牛,”New Relic企業(yè)營銷的高級主管Abner Germanow說,“現(xiàn)在,我們有一個(gè)新想法——把服務(wù)器比作細(xì)菌。”
推動容器標(biāo)準(zhǔn)化
最近幾個(gè)月,致力于實(shí)現(xiàn)容器標(biāo)準(zhǔn)化和加強(qiáng)管理的強(qiáng)度逐漸增大。今年6月,Docker宣布將在Linux基金會捐贈應(yīng)用格式的代碼和運(yùn)行時(shí)的OCP (新開放容器項(xiàng)目),以避免分裂。值得注意的是,促進(jìn)自身Rocket容器格式的CoreOS(核心操作系統(tǒng))簽約成為OCP的成員。
7月,谷歌宣布其Kubernetes項(xiàng)目已經(jīng)達(dá)到了1.0版本狀態(tài),也在Linux基金會為新的原生云計(jì)算基礎(chǔ)捐贈代碼。在啟動儀式上,包括22個(gè)成員國的基金會,囊括了谷歌、Docker、CoreOS和Mesosphere。
成為微服務(wù)架構(gòu)的一部分時(shí),容器顯得尤為豐富,Ubuntu產(chǎn)品經(jīng)理 Dustin Kirkland說,他也是Ubuntu Linux發(fā)行版的贊助商,支持Docker應(yīng)用程序容器以及容器更傳統(tǒng)的操作系統(tǒng)。在微服務(wù)配置中使用應(yīng)用程序容器,“將單個(gè)進(jìn)程裝進(jìn)應(yīng)用程序容器是一種趨勢,然后把它們安排在大型復(fù)雜的服務(wù)中。”他說。
但是當(dāng)你有很多單個(gè)進(jìn)程應(yīng)用程序容器時(shí),可能會變得手忙腳亂,Dustin Kirkland說:“最初將幾個(gè)應(yīng)用程序容器化是很容易的,但是當(dāng)你掌握要點(diǎn),你就進(jìn)入了需要一個(gè)容器編配和管理層的領(lǐng)域。”因此,Kirkland傾向于認(rèn)為容器是珍貴的寶貝而不是消耗品細(xì)菌。“容器越小,就需要越多的關(guān)注和呵護(hù)。”
集中式容器
多年來,開源團(tuán)體一直在平臺上工作,用工具來管理和協(xié)調(diào)動態(tài)微服務(wù)環(huán)境,隨著Docker應(yīng)用程序容器的出現(xiàn),這些項(xiàng)目獲得更大的動力。
Apache Mesos項(xiàng)目是一個(gè)分布式系統(tǒng)內(nèi)核,構(gòu)建跨組數(shù)據(jù)中心資源如計(jì)算、網(wǎng)絡(luò)、存儲和應(yīng)用程序,通過訪問這些資源進(jìn)行決斷。
遺留數(shù)據(jù)中心的問題是,“有些人說‘我想在那臺機(jī)器上運(yùn)行’,” Mesosphere高級副總裁Matt Trifiro說。(Mesosphere銷售Mesos的商業(yè)版本,它被描述為“數(shù)據(jù)中心操作系統(tǒng)”)這樣一個(gè)資源調(diào)度器和Linux init系統(tǒng)通過元素的結(jié)合,中間層抽象硬件和結(jié)構(gòu)給應(yīng)用程序提供它們想要的資源,Trifiro說。
CoreOS CEO Alex Polvi說,CoreOS也正在努力擴(kuò)展容器的好處。從一個(gè)容器和谷歌Kubernetes容器編排系統(tǒng)出發(fā),CoreOS構(gòu)造添加工具,如Fleet這樣一個(gè)集群管理工具,它提出了集群好像有一個(gè)初始化系統(tǒng),可以把整個(gè)CoreOS集群當(dāng)做一臺節(jié)點(diǎn)來處理,F(xiàn)lannel讓集群中的不同節(jié)點(diǎn)主機(jī)創(chuàng)建的Docker容器都具有全集群唯一的虛擬IP地址。
“你需要的不僅僅是Docker建立一個(gè)有用的系統(tǒng),就像蓋房子時(shí),你需要無數(shù)個(gè)釘子一樣,即使房子里已經(jīng)遍布釘子,” Polvi說。
同時(shí),Docker作為事實(shí)上格式化的應(yīng)用程序容器,試圖充分發(fā)揮其領(lǐng)導(dǎo)地位,它也正在開發(fā)一系列的工具,可以幫助容器編制和管理。例如Docker集群、Docker網(wǎng)絡(luò)和Docker組件,都在Orca發(fā)起的項(xiàng)目下重整旗鼓。供應(yīng)商通常提供的PaaS (平臺即服務(wù))正在增加他們的容器管理功能,包括Red Hat、Deis和Jelastic等等。
與此同時(shí),還存在閉源容器管理方法的問題。例如StackEngine最近發(fā)布了其應(yīng)用程序容器中心,提供配置管理、應(yīng)用程序部署、編制和運(yùn)營管理,是專為開發(fā)人員和運(yùn)營團(tuán)隊(duì)使用而設(shè)計(jì)的。“Mesos和Kubernetes是復(fù)雜的,有很多構(gòu)建塊,” StackEngine創(chuàng)始人兼首席執(zhí)行官Bob Quillin表示,“我們解決同樣的問題,但這些問題通常來自于企業(yè)。”