閒話雲計算(二) 什麼是雲計算?

提到雲計算的定義,可謂沒有一套統一的標準。有的人說AWS這樣的就是雲計算,有的人說VMware也是雲計算,還有的人認爲Docker和Kubernetes是雲計算。有的人認爲雲計算一定是分佈式的,有的人認爲雲計算就是IaaS、PaaS和SaaS,還有的人認爲只有公有云纔是真正的雲計算。很長一段時間,雲計算的邊界都很模糊,雲計算從業人士在做科普的時候,最喜歡拿供水和供電服務做類比,只是在雲計算裏供給的產品變成了IT服務。但是這種類比還是有隔靴搔癢的感覺,總覺的抓住了什麼,但是好像又沒有完全理清頭緒。爲了定義雲計算,就要提取出它的顯著特徵,這些特徵應該是明顯區別於傳統計算方式的。下面是筆者拋磚引玉整理出的四個顯著特徵。

第一個特徵是軟件定義,也即IT資源的管理和分配都通過軟件實現,無需人工干預。傳統的IT架構裏,資源的申請通常需要資源的管理員手工配置提供。比如申請一個數據庫物理機,首先需要基礎環境做機器上架和網絡佈線,之後需要操作系統管理員安裝操作系統並配置網絡等,然後需要存儲管理員分配存儲,數據庫管理員安裝數據庫,然後還需要安裝監控軟件,配置審計等等。這些環節不僅耗時長,還是完全的黑盒子,對於最終使用者而言,需要經過漫長的等待才能得到最終的資源。在使用期間,如果需要調整配置甚至重新安裝系統,又需要一個漫長的等待過程。這中間涉及的溝通、協調成本就更不用說了。對於資源的使用者而言,最希望的就是通過填寫一個簡單表單,點擊確定,然後通過審批後就能立即獲取到資源。如果需要修改資源配置,也僅僅是點擊幾下按鈕就能搞定。這樣的服務體驗相比較傳統的IT服務供給方式,無疑要好得太多。而要實現這個目標,就需要去掉所有需要人工干預的環節,讓機器自動化的來做各種資源的分配和供給。機器並不是人,它需要依賴軟件定義的規則來做事情,這就是軟件定義的由來。這件事情並不簡單,因爲IT環境本身就是一個複雜的系統,從大的層面來說涉及計算、網絡、存儲、應用、運營。其中每一項涉及的複雜度也相當驚人,比如網絡,怎麼把數據中心的網絡改造成軟件定義就是一個讓人頭疼無比的事情。因爲傳統的IT環境的管理員是人,而在軟件定義的IT環境裏,管理員變成了機器。現有的技術只能讓機器按照人定義好的規則做事,而一個IT環境裏規則是異常多且複雜的,這就對機器所依賴的軟件的能力提出了很高的要求。很多時候,傳統的部分IT環境很重要,但是又無法改造成軟件定義,就只能推倒重來了。依然以網絡爲例,爲什麼基於X86服務器的虛擬網元設備在公有云成爲主流,就是因爲傳統的一些硬件網絡設備沒有完善的軟件接口,無法用軟件定義,當然硬件網絡設備本身的可擴展性瓶頸和性價比也是重要的原因。

第二個特徵是服務產品化,就是把IT服務包裝成標準化的產品,向外部客戶提供。服務產品化的一個例子是運營商推出的移動套餐,分爲多個規格,每個規格有對應的明確的通話時長和流量限制,同時也對應不同的購買價格。這些套餐就是標準化的服務產品,客戶可以像在超市買東西一樣,根據自己的需要購買不同的產品。回到雲計算,在傳統的IT環境裏,各個IT資源的管理員充當着服務提供者的角色,通常也會對所管理的資源定義不同的規格和使用成本,但這些規格很多僅僅存在於紙面或者口頭約定,並沒有通過一個自助服務界面對外清晰明白的展示出來供使用者挑選。有的時候即使是展示出來,也因爲需要使用者填寫過多細節而讓人望而卻步。一個好的產品不應該向客戶暴露過多和客戶使用無關的細節,同時應該要做到界面友好,易於使用。這些對於普通的商品實現起來沒有太大難度,但是對於IT服務來說就具有很大的挑戰性。IT服務本身涉及很多專業知識和術語,不同場景、不同客戶(或應用)對資源配置的需求可能有很大差異,怎麼在標準化和差異化之間找到平衡,對IT服務的產品化開發提出了很大挑戰。此外,服務的產品化也包含了服務的可計量化。IT服務裏包含的服務種類繁多,很多傳統IT服務之前根本沒有計量的概念和手段,即使有也是非常的粗糙。比如傳統數據中心裏的網絡資源很多都是在數據中心內共享的,很難做到精細化計量。而服務的產品化就會要求每一個可以使用的IT資源都應該可以被儘可能精確地計量。

第三個特徵是服務自助化,就是讓服務的使用者可以通過服務界面自助的申請和管理IT資源。服務自助化的一個例子是銀行的ATM機,可以允許客戶通過ATM機自助式的完成存款、取款、轉帳等等服務。IT服務的自助化,依賴於前面提到的軟件定義和服務產品化,只有首先做到這兩個,纔可以進一步實現服務的自助化。服務的自助化會極大的提升IT服務的體驗。傳統的IT環境下,申請資源或者做一個較複雜的變更,需要申請者耗費極大的精力去溝通和推動流程。自助化的服務體驗使得使用者擺脫了這些繁瑣的任務,可以把精力更多的投入自己的業務領域。

第四個特徵是多租戶,也即允許多個用戶使用同一個界面申請和管理資源,同時確保不同用戶之間的資源完全隔離。在雲計算裏通常通過namespace(命名空間)來實現資源隔離,一個用戶的namespace內的資源,只能被這個用戶訪問和使用,其他非授權用戶禁止訪問。在資源隔離的基礎上,多租戶還需要實現資源配額管理和用戶鑑權管理。配額管理就是給某個namespace設置一個資源使用的上限,比如規定CPU、內存和存儲的使用量的上限。用戶鑑權管理就是可以管理某個用戶對於某個namespace的權限,比如A、B兩個用戶,我們希望A用戶對於某一個namespace有管理員權限,B用戶對於同一個namespace僅有隻讀權限,這就需要實現鑑權管理。

從上述四個特徵來看,就可以很好的區分一項技術或體系是不是雲計算。比如大家熟知的VMware虛擬化套間,並沒有多租戶的能力,因此並不能認爲是一個雲計算的產品。但是VMware在軟件定義、服務產品化、服務自助化方面已經做的很好,所以對於沒有多租戶需求的場景能夠適配的很好。

很多人可能會說,爲什麼這些特徵裏沒有彈性伸縮呢?畢竟“按需使用、彈性伸縮”是雲計算廣告最常用短語,而且彈性伸縮經常出現在一些著名的雲計算使用案例裏。這裏沒有把彈性伸縮列入顯著特徵的原因是:它並不是雲計算所必須的特徵,只要實現了軟件定義、服務產品化、服務自助化和多租戶,彈性伸縮就是自然而然的結果了。彈性伸縮本質上就是資源監控服務再加上一套伸縮策略的實現。目前在主流的公有云裏,彈性伸縮已經做成了一個專門的服務產品。

還有的人可能會問,分佈式算不算雲計算的特徵呢,畢竟雲計算用到了大量的分佈式技術。答案仍然是它目前並不是雲計算所必須的特徵。雲計算使用分佈式技術最早是從公有云而來,比如大家熟悉的分佈式存儲、分佈式消息中間件等。背後的原因是公有云的單個資源池規模會很大,並且大量使用廉價的X86服務器,這對資源池的擴容能力和容災能力提出了很高的要求,只有分佈式技術可以滿足需求。與公有云不同,私有云的使用企業通常沒有那麼大規模的資源池,並且對IT資源的可用性、可維護性和性能有更高的要求,現有的分佈式技術並不能完全滿足需求。比如現有的分佈式存儲技術在容災、使用場景、性能方面距離傳統的SAN存儲還是有一定差距。所以現階段很多私有云的建設會同時包含分佈式技術和集中式技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章