Eric Knorr
愛迪生在發(fā)明電燈泡時遇到了一個問題,即燈泡需要電線才能與燈具連接。直到今天,螺旋式燈泡底座(又稱愛迪生螺絲燈頭)已經(jīng)成為了標準,它使得幾乎所有的燈泡都可以被擰到燈具上,無論是臺燈還是枝形吊燈。
Solomon Hykes在十年前發(fā)明的Docker容器也有著類似的效果,即通過打包,任何Linux應用程序都可以插入所有Linux OS上的任何Docker容器中,而無需繁瑣的安裝。其最大優(yōu)勢在于,多個容器化的應用程序可以插入到操作系統(tǒng)的單個實例中,每個應用程序彼此之間被安全隔離,僅通過Docker API與操作系統(tǒng)通信。
與在物理計算機上以云形式部署和擴展應用程序的常用工具VM(虛擬機)相比,這種共享模式的堆棧要輕得多。由于輕巧和便攜,開發(fā)人員可以在筆記本電腦上處理多個容器化的應用程序,并將其上傳到選定的平臺上進行測試和部署。此外,與VM相比,容器化的應用程序啟動速度更快,只需要眨眼間的功夫,而VM通常要花一分鐘的時間才能啟動。
要掌握容器的實際影響,用戶還需要了解應用程序體系結(jié)構(gòu)的微服務模型。許多應用程序會被分解成小的單一用途的服務,這些服務通過API相互通信,因此每個微服務都可以獨立更新或擴展(這一點與傳統(tǒng)的整體式應用程序迥然不同)。事實證明,微服務和容器是一對完美組合。
如何讓容器化的微服務完美地協(xié)同工作,就像一個應用程序呢?至少對于較大的微服務應用程序來說,它們可以使用Kubernetes。作為開源編排引擎,Kubernetes可讓用戶實現(xiàn)對微服務應用程序的部署、管理和擴展并確?;谖⒎諔贸绦虻目捎眯?,如果有需要的話,它們還可以跨平臺移動。
如今微服務時代已經(jīng)到來,新的服務是否能夠即時擴展或不停機更新,對于大量的現(xiàn)代應用程序來說至關(guān)重要。無論如何管理這些服務,容器都將建立起自己的標準化簡潔接口。
在《容器與Kubernetes:三個成功的變革案例》(請關(guān)注本報后續(xù)報道)一文中,特約作家Bob Violino探討了Expedia、克萊姆森大學和金融服務公司Primerica對Kubernetes的使用。UK集團編輯Scott Carey撰寫了一篇名為《Kubernetes與現(xiàn)實世界相遇:三個成功案例》(見本期第5-6版)的文章,該文研究了彭博社、News UK和旅行數(shù)據(jù)提供商Amadeus所做的類似努力。正如Primerica首席技術(shù)官Barry Pellas所說的那樣,“讓有正確技能的團隊在Kubernetes環(huán)境中進行恰當?shù)拈_發(fā)具有挑戰(zhàn)性?!钡遣还苁欠窬哂刑魬?zhàn)性,對于大規(guī)模協(xié)調(diào)容器化服務來說,Kubernetes如今已成為了一個被廣泛接受的解決方案。
Kubernetes的優(yōu)勢非常適合解決容器網(wǎng)絡化這一棘手問題。正如Network World網(wǎng)站的撰稿人John Edwards在《數(shù)字化轉(zhuǎn)型需要關(guān)注容器網(wǎng)絡》(見本期第7-8版)一文中所解釋的那樣,容器網(wǎng)絡與數(shù)據(jù)中心網(wǎng)絡幾乎沒有相似之處。容器網(wǎng)絡不僅完全由軟件定義,而且Kubernetes本身無需人工干預即可處理所有路由請求和網(wǎng)絡連接。所有這些已連接的服務被統(tǒng)稱為服務網(wǎng)格,這屬于另一個開源項目Istio,其重點在于處理,即讓管理員能夠管理流量、控制策略、發(fā)現(xiàn)服務等。
Istio還提供了一些安全措施,例如服務之間的TLS安全通信。但是,生產(chǎn)中的容器則是一個全新的領(lǐng)域,一些大型企業(yè)已經(jīng)決定將安全性牢牢地掌控在自己手中。CSO網(wǎng)站的資深作家Lucian Constantin在《Visa是如何構(gòu)建容器安全解決方案的》(請關(guān)注本報后續(xù)報道)一文中對容器監(jiān)控、安全策略實施以及事件檢測和補救進行了詳細解釋。Lucian認為,這是一個典型的“自建vs購買”的決策:當現(xiàn)有解決方案看上去不再可靠或缺少正確的功能組合時,會發(fā)生什么?是自己動手構(gòu)建新的解決方案還是從他處購買呢?
另一方面,云服務提供商的CaaS(容器即服務)產(chǎn)品可能對Kubernetes即服務解決方案的闡述更為準確。亞馬遜網(wǎng)絡服務、谷歌Cloud Platform和微軟Azure均提供自己的CaaS特色功能。但是,正如特約編輯Isaac Sacolick在《PaaS、CaaS還是FaaS?該如何選擇?》(請關(guān)注本報后續(xù)報道)一文中所說,CaaS并不是用戶唯一的容器管理選項。用戶可以選擇PaaS(平臺即服務),但是其通常以犧牲可配置性為代價,換取更加快捷的開發(fā)和部署。FaaS(函數(shù)即服務)產(chǎn)品(也稱為無服務器計算平臺)則提供了更高水平的抽象,使得開發(fā)人員能夠使用小的離散函數(shù)快速組合服務。FaaS解決方案是在后臺運行容器,開發(fā)人員甚至看不到它們,更不用說管理它們了。
這類容器解決方案的最終用戶能夠獲得哪些優(yōu)勢呢?通常,其軟件能夠以更快的速度進行更新和改進。微軟還推出了一種全新的容器,其可確保老舊應用程序在針對雙屏設備的Windows 10X操作系統(tǒng)上正常運行。這種特殊的容器改進可以幫助微軟擺脫多年來一直限制Windows發(fā)展的向后兼容問題。
容器的一個重要優(yōu)勢是敏捷性。它們可以被輕松移動,并被插入到許多平臺當中,消除了不必要的依賴性。此外,它們還可以被重復使用并被重新組合到不同的應用程序中。作為微服務基礎設施的靈活性的賦能者,容器可幫助維持分散的小型團隊,每個團隊負責各自的微服務——合理的分工可幫助團隊以更快的速度開發(fā)出更好的軟件。
在純技術(shù)層面上,像螺旋式燈泡底座一樣,容器雖然很不起眼,但是對于尚未開發(fā)的應用程序以及用戶將要使用很多年的應用程序而言,卻具有重大意義。
本文作者Eric Knorr為IDG Enterprise的總編輯。
原文網(wǎng)址
https://www.infoworld.com/article/3531449/containers-march-into-the-mainstream.html