Unikernel五年后將完全取代container技術(shù)
Container容器技術(shù)近年受到了業(yè)界的持續(xù)關(guān)注。Docker和CoreOS極大地降低了用戶使用操作系統(tǒng)的難度,推動(dòng)了容器技術(shù)的流行。容器技術(shù)簡(jiǎn)化了應(yīng)用的分發(fā)流程,這對(duì)于云基礎(chǔ)設(shè)施來說是一項(xiàng)重要的進(jìn)步。與虛擬機(jī)相比,容器有著輕量級(jí)、啟動(dòng)速度快、隔離性好等優(yōu)點(diǎn),它也在一定程度上提高了不同應(yīng)用之間共享云基礎(chǔ)設(shè)施時(shí)的安全性。此外容器技術(shù)對(duì)于在同一操作系統(tǒng)之中運(yùn)行多個(gè)應(yīng)用提供了專門的安全和兼容性上的優(yōu)化。
那么容器技術(shù)就真的一點(diǎn)問題都沒有嗎?
傳統(tǒng)的操作系統(tǒng)太過笨重,即使已經(jīng)進(jìn)行了簡(jiǎn)化實(shí)際上也依舊如此。通常一個(gè)容器的大小通常在MB甚至GB級(jí)別,顯而易見真正的應(yīng)用只占了這其中很小的一個(gè)部分。在進(jìn)行操作系統(tǒng)復(fù)制時(shí)所有的服務(wù)和子系統(tǒng)不管有用沒用都被復(fù)制了,這與應(yīng)用的微服務(wù)化這一發(fā)展方向是背道而馳的。對(duì)于微服務(wù)的架構(gòu)來說所有的操作都應(yīng)該越快越好。
容器技術(shù)對(duì)于傳統(tǒng)操作系統(tǒng)的依賴可能會(huì)導(dǎo)致它的敗亡,而取代它的將是unikernel。Unikernel使用戶可以從一個(gè)服務(wù)庫中選擇應(yīng)用需要的操作系統(tǒng)服務(wù)而無須整個(gè)操作系統(tǒng)。用戶選擇的服務(wù)則會(huì)成為應(yīng)用的一部分。
Unikernel在整個(gè)服務(wù)器的架構(gòu)中取消了操作系統(tǒng),應(yīng)用直接運(yùn)行在hypervisor或者硬件上。這就使得它獲得了下面幾個(gè)優(yōu)勢(shì):
1、大小—對(duì)比虛擬機(jī)或者容器,unikernel只需要運(yùn)行應(yīng)用所必須的服務(wù),因此應(yīng)用可以減小很多。這意味著應(yīng)用若需要部署到不同的服務(wù)器上將會(huì)變得方便一些,省下的不光是時(shí)間,如果云計(jì)算提供商對(duì)流量收費(fèi)的話省下的還有真金白銀。
2、速度– Unikernel快得就剩一個(gè)快字了。最快的unikernel啟動(dòng)只需要20毫秒。這意味著unikernel甚至可以在用戶請(qǐng)求時(shí)才啟動(dòng)并對(duì)用戶請(qǐng)求做出響應(yīng)。MirageOS正開發(fā)一個(gè)叫做Jitsu的的工具來幫助用戶在云計(jì)算環(huán)境中快速啟動(dòng)和關(guān)閉unikernel。
3、安全– 確保系統(tǒng)安全的一個(gè)方法是對(duì)其進(jìn)行簡(jiǎn)化,這樣就減小了出現(xiàn)漏洞受到攻擊的可能性。對(duì)于unikernel來說可攻擊的面非常小,這就使它有了很高的安全性。
4、兼容性 – 雖然unikernel需要應(yīng)用在設(shè)計(jì)時(shí)就考慮到使用unikernel來部署。然而已經(jīng)出現(xiàn)了Rump Kernels這樣的工具可以將一般的應(yīng)用以u(píng)nikernel的方式來運(yùn)行。
上面所列舉的四個(gè)優(yōu)勢(shì)完全符合微服務(wù)的發(fā)展趨勢(shì)。Docker和CoreOS已經(jīng)在很大程度上改變了我們消費(fèi)基礎(chǔ)設(shè)施的方式然而它們能否適應(yīng)unikernel的崛起還未可知。
今后五年unikernel有可能完全取代容器技術(shù),就算不能取代它也會(huì)成為容器技術(shù)的強(qiáng)力補(bǔ)充,希望容器技術(shù)產(chǎn)業(yè)對(duì)此有所準(zhǔn)備。