了解VM、容器與無(wú)服務(wù)器之間的差異
傳統(tǒng)上,應(yīng)用程序緊密鏈接到執(zhí)行其代碼的服務(wù)器和操作系統(tǒng)。而多年來(lái),供應(yīng)商們一直在努力減少這些依賴性并簡(jiǎn)化部署:VM、容器和無(wú)服務(wù)器計(jì)算就是他們?yōu)闇p少這些緊密聯(lián)系所采取的不同方法。它們不僅提供更高程度的可移植性,但也為IT管理員帶來(lái)新的管理挑戰(zhàn)。因此,在VM與容器還是無(wú)服務(wù)器之間做出選擇,并非易事。
企業(yè)花費(fèi)大量時(shí)間、金錢(qián)和精力來(lái)分配和管理他們的系統(tǒng)。
企業(yè)管理協(xié)會(huì)的研究總監(jiān)Torsten Volk稱:“企業(yè)希望在維護(hù)計(jì)算機(jī)基礎(chǔ)架構(gòu)上花費(fèi)最少的資源。”
邁出第一步
VM之所以受歡迎,是因?yàn)樗鼈兇蟠筇岣吡朔?wù)器效率。企業(yè)無(wú)需為每個(gè)應(yīng)用程序部署一臺(tái)服務(wù)器,而是可以在一臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè)應(yīng)用程序。VM是成熟、可理解和有效的技術(shù),幾乎每個(gè)企業(yè)都依賴VM。
Gartner公司舊金山地區(qū)杰出副總裁兼分析師Arun Chandrasekaran說(shuō):“虛擬機(jī)抽象出服務(wù)器的硬件功能,并為應(yīng)用程序模仿專(zhuān)用的硬件。”
在推出虛擬機(jī)時(shí),虛擬機(jī)是IT領(lǐng)域的重大進(jìn)步。但是,VM具有其自身的局限性。例如,每個(gè)VM都會(huì)創(chuàng)建一個(gè)與基礎(chǔ)操作系統(tǒng)緊密相關(guān)的系統(tǒng)映像。企業(yè)運(yùn)行多種類(lèi)型的服務(wù)器,并且通常根據(jù)需要將工作負(fù)載遷移到計(jì)算機(jī)上。VM無(wú)法提供這種水平的可移植性,因?yàn)闉槲④泟?chuàng)建的VM無(wú)法在Linux上運(yùn)行,反之亦然。
更高水平的虛擬化
容器可幫助解決VM帶來(lái)的限制,例如可移植性降低和資源不足。
Chandrasekaran說(shuō):“容器虛擬化操作系統(tǒng),允許一個(gè)OS用戶空間的多個(gè)實(shí)例共享一個(gè)OS內(nèi)核。”它們?cè)谏厦孢\(yùn)行一層,并將應(yīng)用程序軟件與VM分開(kāi)。
此外,容器將軟件分解為可以輕松混合和匹配的小組件,從而加快開(kāi)發(fā)速度。根據(jù)451 Research的研究表明,容器的使用將從2019年的21億美元增加到2022年的超過(guò)43億美元,復(fù)合年增長(zhǎng)率為30%。
但是,容器并不完美。由于容器是動(dòng)態(tài)的,因此也很難跟蹤它們。此外,企業(yè)會(huì)生成大量容器,因?yàn)樗鼈兛赡苓\(yùn)行幾分鐘甚至幾秒鐘,然后消失。因此,企業(yè)將難以監(jiān)視容器的功能,還需要應(yīng)對(duì)它們?cè)斐傻钠款i問(wèn)題。
另一個(gè)選擇
無(wú)服務(wù)器計(jì)算是一種新興的方法,旨在幫助開(kāi)發(fā)人員擺脫傳統(tǒng)計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)所需的繁重工作,例如分配存儲(chǔ)和建立網(wǎng)絡(luò)連接。盡管應(yīng)用程序仍然需要服務(wù)器資源才能運(yùn)行,但是開(kāi)發(fā)人員不再需要使用無(wú)服務(wù)器計(jì)算來(lái)構(gòu)建它們。相反,它們依賴于按需創(chuàng)建資源的高級(jí)API。
Chandrasekaran說(shuō):“實(shí)質(zhì)上,無(wú)服務(wù)器功能抽象了運(yùn)行時(shí)環(huán)境,使開(kāi)發(fā)人員可以將更多的精力放在應(yīng)用程序的設(shè)計(jì)和配置上,而不是與基礎(chǔ)結(jié)構(gòu)相關(guān)的配置和管理上。”
但是無(wú)服務(wù)器計(jì)算也有其自身的缺陷。借助無(wú)服務(wù)器計(jì)算,開(kāi)發(fā)人員必須重新考慮如何構(gòu)建應(yīng)用程序,并且經(jīng)常需要接受培訓(xùn),因?yàn)闊o(wú)服務(wù)器與傳統(tǒng)應(yīng)用程序?qū)α⑦\(yùn)行。
另外,必須啟動(dòng)系統(tǒng)服務(wù)才能運(yùn)行該應(yīng)用程序。因此,可能會(huì)出現(xiàn)延遲,這會(huì)導(dǎo)致實(shí)時(shí)應(yīng)用程序出現(xiàn)問(wèn)題。無(wú)服務(wù)器還將鏈接企業(yè)與單個(gè)供應(yīng)商。例如,移植為AWS構(gòu)建的無(wú)服務(wù)器應(yīng)用程序并不容易,因此它可以在Microsoft Azure上運(yùn)行。
總結(jié)
企業(yè)應(yīng)如何在VM、容器和無(wú)服務(wù)器之間做出選擇?根據(jù)Volk的說(shuō)法,該答案取決于應(yīng)用程序。例如,傳統(tǒng)系統(tǒng)通常依賴于VM,而全新的云應(yīng)用程序通常建立在容器和無(wú)服務(wù)器計(jì)算基礎(chǔ)架構(gòu)上。
企業(yè)不必做出最終選擇。三種方法各有不同,但是企業(yè)可以結(jié)合使用它們。在很多情況下,可將容器放入VM。
Volk說(shuō):“開(kāi)發(fā)人員可結(jié)合虛擬機(jī)帶來(lái)的管理優(yōu)勢(shì)與容器所承諾的靈活性。”
同樣,容器還可與無(wú)服務(wù)器應(yīng)用程序配合工作。例如,企業(yè)可能正在構(gòu)建不需要與舊版應(yīng)用程序緊密連接的新應(yīng)用程序。但是VM不經(jīng)常與無(wú)服務(wù)器計(jì)算一起使用,因?yàn)樗鼈兊幕A(chǔ)是如此不同。
盡管企業(yè)可以混合使用這三種方法,但是管理不同的系統(tǒng)仍具有挑戰(zhàn)性,因?yàn)槊糠N方法都有自己的一套工具和功能。VM管理服務(wù)非常強(qiáng)大,而容器和無(wú)服務(wù)器管理產(chǎn)品正處于發(fā)展初期。企業(yè)最終想要的是一種可以同時(shí)使用這三種服務(wù)的管理產(chǎn)品。
Chandrasekaran說(shuō):“雖然這些抽象(VM和容器、容器和無(wú)服務(wù)器)之間有一些融合,但是統(tǒng)一的控制平面仍是新生事物。”
企業(yè)希望打破應(yīng)用程序和計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)之間的緊密聯(lián)系,VM、容器和無(wú)服務(wù)器有所幫助,但仍然缺少應(yīng)用開(kāi)發(fā)和管理的解決方案。