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