雲計算容器服務該何去何從

2021-09-23 07:21:04 字數 2939 閱讀 1616

容器技術最近很火,各家專案紛紛提出自己的支援方案,比如 openstack、cf、mesos,以及一堆本身就基於容器的平台方案,更是跟容器技術脫不開關係。

這也直接導致了曖昧已久的 iaas 和 paas 開始正面的跨界衝突。

在 iaas 看來,做 paas 無非就是提供幾個應用模板嘛,原來虛機不好做,現在用 docker,瞬間給你把服務整起來。更別提還有最近出來攪局的 hyper,虛機要跟容器比效能。

而在 paas 看來,你 iaas 就該老老實實地做底層物理資源給抽象出虛擬資源的事情。原來都是虛機的時候,感覺好複雜,我們搞軟體的人確實不懂。現在有了一堆基於 docker 的容器平台,往上就都是我做軟體的人可以做的事情了,所以以後其實可以不再強調 iaas 了。

這些討論直接導致現在的雲計算技術發展到了乙個很關鍵的節骨眼上,將決定未來至少十年內雲計算產業的形態。

當前狀況

姑且放下這些爭論,我們來看一下 iaas 領域的 top 開源專案 openstack 現在是怎麼對待容器的。

目前有三種方案:

nova-docker:把容器作為虛機管起來。基本上其它元件都不需要動。唯一的問題就是容器畢竟不是虛機,比如需要提供一些額外的引數支援啦,需要引入組的概念啦,需要效能的優化啦。

heat docker driver:用 heat 來管容器。heat 大家都知道,是個十分靈活且強大的解釋引擎,理論上 docker 需要的支援它都能有。唯一的問題是 heat 畢竟是個解釋引擎,它本質上還是要基於其它服務提供的 api。由於不是個運維引擎,導致執行時的管理沒法保障,比如自動的資源排程啊,網路功能啊,等等。如果這些都做了,那就等於在更高一層上重**明輪子了。

magnum:玩容器的人看問題基本上都是從應用層往上開始考慮。一幫人跑去 nova 專案談,應該怎麼支援基於容器的 devops 啊,應用模板啊,nova 組一幫做系統的人就傻了,這事我們咋能幹,這分明是 paas 該做的事情。但架不住大家都覺得 docker 很火啊,我們肯定還是要玩點花樣的,於是乙個新的專案誕生了。但玩應用的人畢竟不懂系統,於是調研了下,現在能管理 docker 的開源方案還真有幾個,比如 swarm 和 kubernetes。太好了,那麼,怎麼把 swarm 和 kubernetes 這樣的 paas 平台給整合到 openstack 這樣的 iaas 平台上呢?這個聽起來好像也不懂唉,有人又想起 heat 來了,一拍腦袋,可以先拿 heat 來裝一套啊。每次需要的時候就調個 heat 命令,動態的裝一套。所有問題看起來都解決了,皆大歡喜啊,真是皆大歡喜!

思考雲計算

某位名人說過,之所以能看得遠,是因為站在了前人的肩膀上。

讓我們拋開系統和應用之爭,姑且也膽大地站在前人的肩膀上來重新發明輪子。

還是要忍不住重複,資訊科技的領域離不開分層和抽象。在不同的時代和位置進行分層和抽象,誕生了小型機,誕生了處理器,誕生了程式語言,誕生了 web 服務,誕生了雲計算……

拋開 iaas,拋開 paas,雲計算到底要提供啥?這個問題毫無疑問,是便捷服務。 於是,使用者需要作業系統,可以直接給你乙個;使用者需要乙個執行環境,可以直接給你乙個;使用者需要一套軟體,也可以直接給你乙個;使用者需要一套方案,這個目前還沒法直接給你乙個,屬於外包公司的業務。:)

那麼,對於雲平台的設計者來說,就是要提供這些不同層次的服務給使用者,這才有了所謂的 iaas 和 paas。所以,要記住,各種 xaas 是呈獻給使用者的服務層次的不同,根本不是設計層次和技術方案的不同。

就好比你買了乙個手機,可以玩遊戲,也可以打**。遊戲和**是手機提供給你的不同服務形態而已,並非說遊戲是一種特殊的手機,**是另外一種特殊的手機。

ok,那麼,下面的問題就是討論為了滿足使用者的這些需求,在設計上該如何分層。前人的智慧型是毫無疑問的,總結出了計算、儲存、網路這三個根本的基礎業務。其中計算又是最核心和最直接的。

我們來看直接面向使用者的計算業務。資料中心裡面放著的都是物理機器,物理機器上可以裝作業系統,作業系統上可以裝各種軟體,可以執行虛擬機器,可以執行容器。無論物理機、虛擬機器、容器,都是屬於計算資源。統統都應該用雲方案給實現**出來。

如果說 idc 是讓使用者可以拿物理機作為計算資源載體,那麼現在的雲計算是更進一步,讓使用者可以直接忽略計算資源的實際載體,無論是作業系統還是應用,直接提供給你即可,無需關心具體的載體。

總之一句話,雲計算就是要方便提供計算資源!

問題與方向

magnum 目前被認為 openstack 裡面最有活力的容器專案,但是很可惜,一開始的路子就是偏的。

magnum 的定位是提供一套 openstack api,底下可以相容/依賴多種第三方的容器管理平台。openstack 本來就是要做一套資源管理平台,現在是用別人的,意味著這跟 openstack 其實關係不大。但是如果拋開 openstack,上面封裝的一套 openstack api 又沒有了意義。第三方的管理平台都有自己現成的 api。

真正的 container as a service,其實應該是在 openstack 中實現一套容器平台,而不是在 openstack 中安裝了別人的一套平台,然後進行了 api 的封裝。

或許有人會猜測,之所以不做底下的實現,可能跟 nova-docker 有關。

如果我們只談技術,其實很容易在 nova 中實現真正的 container as a service。在 nova 看來,都是計算節點,但計算節點可以帶上各自的型別,比如有的計算節點是物理機、有的是虛擬機器、有的是容器甚至容器組。不同的型別意味著底層不同的驅動。用一套抽象的資源排程的框架(參考 mesos 的二層排程機制),帶上不同的底層 framework,問題很容易得到解決。

但偏偏是現在已經有了 nova-docker,已經有了 magnum,不知道要經過多少波折才可能走到這個方向上來。或許在 openstack 的大環境下,是一件太困難的事情了。

或許,這就是開源的魅力,分分合合,曲折中前行。

從雲計算到容器到容器雲

最近有朋友問我 為啥你寫的東西我都看不懂,也不是我平時用的。我不禁啞口無言。就像今天要說的雲計算,其實已經覆蓋了日常生活的不少場景,像檢票一類的人臉識別,智慧型城市的紅綠燈等等,都是雲計算應用的產物。這次把雲計算 容器 容器雲三者放到一起來說,因為這三個現在非常非常的火,它們之間互有關聯,一般談雲計...

雲計算服務

雲計算服務在google amazon等公司成功產品的引領下,正在商業化的道路上大步向前。在nist的定義中,有三種雲計算服務模型。software as a service saas 軟體即服務模型,使用者直接使用構建在雲端的軟體。例如,google docs,salesforce.com inf...

了解雲平台 雲計算 雲服務

雲計算平台可以劃分為3類 1 以資料儲存為主的儲存型雲平台 2 以資料處理為主的計算型雲平台 3 計算和資料儲存處理兼顧的綜合雲計算平台 雲平台的優勢 1 穩定性相對很好 雲平台的應用影響著 的使用,所以雲平台的穩定性對於 來說很重要。我們平時常見的虛擬主機都是多個 共享一台主機,如果其中的乙個 受...