云計算是一股新興的IT勢力,將會隨著時間的推移和技術的演變被越來越多的企業所接受,企業也會根據業務的需要將系統逐漸遷移到云平臺中,從而實現IT成本的降低和減少運營風險。本文將主要和大家一起復盤云計算的發展史和相關概念,并淺談一下流行的OpenStack云管理平臺的架構設計思路。 云計算的發展說起云計算想必大家都很熟悉,它被視為科技界的革命性產物,極大可能的改變人們的工作方式和商業模式的運作。但是它并不是從石頭縫中突然蹦出來的,而是經過了諸多技術的成熟和演變誕生的。云計算吸收了之前并行計算、分布式計算和網格計算的優勢,借助虛擬化、效用計算等技術混合而成。按照資源形態來分,主要經歷了以下不同的發展階段:
什么是云計算?云計算的概念已經由來很久了,各種版本不一。從物理上講,就是將所有的計算資源、網絡資源、存儲資源及應用等資源從本地挪到互聯網的一個集中區域去計算。之后通過網絡進行互聯,獲得相關的結果。從邏輯上講,就是改變了傳統IT的服務模式,從大鍋飯到按需分配的進化。就像我們用水用電一樣,你不需要自己購買發電機,購買水泵,只需要通過電卡或者水卡充值購買即可,根據自己的使用需求。 簡單地說云計算是一種未來引領技術發展的主要架構之一,很多的應用都基于云計算。云提供商通過云端應用提供各種多元化的服務到用戶端,用戶只需要使用即可,不需要額外的運維和維護成本。 總之云的最大特點就是按需汲取、隨時擴展和按量計費。
云計算的類型云計算是個很大的概念,不同的業務場景會需要不同的云計算框架和應用。為此從業務的應用場景可分為公有云、私有云和混合云。 ? 公有云公有云從文字上就可以看出,云被建立在第三方的區域,而不是自己建立的。一般是由第三方機構進行建立并通過互聯網提供各種各樣的應用給用最終使用者。公有云廠商按照用戶的需求,進行資源的分配,提供各種不同層級的服務給用戶。國內類似阿里云、華為云、京東云,國外類似AWS和微軟的Azure等。 ? 私有云私有云顧名思義,就是云平臺由自己企業內部建立,不對外提供服務。所有資源自給自足,按照企業的實際情況進行彈性伸縮。私有云的初期構建成本較高,長期看是比傳統IT的投資要低。從控制權上來講,私有云較公有云具備更好的控制權。 ? 混合云混合云是指將公有云和私有云通過專線進行互聯互通,既可以享受公有云的速度與強大的計算能力,又可以保證數據存儲在企業在私有云中保證數據的安全可控。因此,混合云也是未來企業主要的服務模式和發展方向。 主流云平臺目前云平臺主要分為兩大陣營,開源系和商業系,其主要目的是管理云資源和提供云服務。兩大陣營的代表產品有開源的云管平臺OpenStack和商業平臺領導者VMware。 VMware與OpenStack相比,是兩種截然不同的設計架構和理念。無論是從設計、安裝部署、功能和維護方面都有較大的差異。虛擬化領域的領導者VMware套件是以虛擬化技術為核心,通過其強悍的虛擬化能力,虛擬計算資源、網絡資源和存儲等資源提供靈活的資源分配能力。其ESXi是當前最流行、最穩定的虛擬機管理系統。其提供優秀的部署架構和穩定的運行平臺。做為商業軟件,VMware自然經過了全面的測試,并且具有單一的部署架構,簡單明了。由于VMware具有健壯的架構和穩定的部署機制,成為很多高規格用戶在數據中心級環境中的首選。 而OpenStack作為一個開源系統,沒有任何一家單獨的公司控制OpenStack的發展路線。OpenStack本身是年輕的,但是卻具有巨大的市場動力,與此同時,很多大公司都在支持OpenStack的發展,例如IBM、Dell、HP等。有了如此多公司的資源投入,OpenStack的發展將是多元化的。 作為企業IT決策者,可以根據自身的實際需求和技術考量來決定使用哪一種云平臺,提供適合業務發展的計算基礎。 云計算的服務模式云服務的類型主要分為三種,基礎設計即服務(IAAS)、平臺即服務(PAAS)和軟件即服務(SAAS)。為了理解,以前將使用各種服務的簡稱。 ? IAAS基礎設施即服務算是整個云平臺中最基礎也是最重要的一塊,處于PAAS層以下。用于提供各種資源給應用,比如計算資源、網絡資源、存儲資源和其他優化性資源,如vCDN加速、云防護等。 國內外提供這種層面的服務商很多,比如AWS、阿里等等。用戶只需要安裝自己的操作系統和應用即可,底層硬件無需知曉。 ? PAAS平臺即服務包括IAAS層和基礎開發環境。位于IAAS層的上方,用戶無需自己安裝各種軟件開發環境,只需要申請相關的環境后,進行開發即可。開發環境以下的部分均由云提供商負責。使開發人員僅僅關注自己的開發上,提高了開發的效率和質量。 ? SAAS算是更為靈活的一種服務交付模式,用戶無需投入任何的資源進行軟件的開發和運營。只需要通過互聯網連接到自己需要的軟件即可工作。SAAS改變了很多企業的服務模式,實現了應用的靈活擴展和安全提供服務。類似Google的Gmail、微信、釘釘等,數不勝數。
OpenStack的前世今生由上文可知,OpenStack是開源云管平臺之一,可以通過其對虛擬化資源進行調度管理,幫助企業快速實現云的建設與業務價值釋放。 什么是OpenStack?學習OpenStack之前大家一定要先知道什么是OpenStack。OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發并發起的,以Apache許可證授權的自由軟件和開放源代碼項目。是一個開源的云計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環境,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的云計算管理平臺。通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。 OpenStack本身是一個屬于IAAS層的服務,用于對基礎設施的管理,如計算資源、存儲資源和網絡資源等。它的社區擁有超過130家企業及1350位開發者,這些機構與個人都將OpenStack作為基礎設施即服務(IaaS)資源的通用前端。OpenStack項目的首要任務是簡化云的部署過程并為其帶來良好的可擴展性。 OpenStack組件介紹OpenStack是由多個關鍵的組件組成,相互之間通過消息隊列進行通信,當然只是其中一種,還有API等方式。多種組件相互配合,最終完成用戶在OpenStack平臺上的各種動作。隨著時間的推移,越來越多的組件被開發用于優化OpenStack平臺,完善平臺功能。以下簡單介紹一下幾個主要的核心組件,每個組件都有個好記的代號,比如Nova、Glance、Keystone、Ceilometer、Horizon、Cinder、Swift、Heat等等,其余的組件,大家可以訪問OpenStack官方進行學習。
? 控制組件控制節點和它的名字一樣,是對其余各個類型節點的管理。主要包括管理支持服務、基礎管理服務和擴展管理服務。如MySQL、消息隊列,其它支持組件等。 ? 計算組件代號為Nova,主要用于虛擬化資源的載體,提供各種虛擬機的建立。分配各種計算資源到虛擬機,如CPU、內存等。此節點相對于其他節點來說,需要更多的CPU和內存資源。 ? 鏡像組件代號為Glance,主要用于提供OpenStack平臺的鏡像服務。負責磁盤和服務器虛擬鏡像的查詢、注冊和傳輸的功能。Glance本身其實并不存儲鏡像,它只是一個代理,充當鏡像存儲服務和其他Openstack組件之間的紐帶。所有的磁盤和鏡像存儲在OpenStack的后端服務上,比如對象存儲系統或者本地存儲系統中。 ? 塊存儲組件代號為Cinder,主要提供OpenStack的塊存儲服務,為云環境提供塊設備的創建、添加和卸載。Cinder目前支持多種主流的存儲平臺(Linux server storage ,Ceph,CloudByte,Coraid,EMC(VMAX and VNX),GlusterFS,IBM Storage(Storwize family,SAN Volume Controller,and XIV Storage System),Linux LIO,NetApp,Nexenta,Scality,SolidFire and HP(Store Virtual and StoreServ 3Par falilies)。塊設備適用于對應性能要求較高的應用場景,比如數據庫。塊設備的快照功能可以實現基于塊存儲卷的數據備份,而且也可以利用快照進行數據恢復。 ? 網絡組件代號為Neutron,主要提供OpenStack的網絡服務,之前的代碼為Quantum,后改名為Neutron。Neutron提供云計算環境下的虛擬網絡功能,目的是為OpenStack云更靈活地劃分物理網絡,在多租戶環境下提供給每個租戶獨立的網絡環境。該模塊最開始是 Nova 的一部分,叫 nova-network,后來從 Nova 中分離出來。該模塊之所以重要是因為如果沒有虛擬網絡服務,OpenStack 就變為單純提供虛擬機實例和虛擬存儲服務的平臺,這就違背了提供分布式虛擬服務的云計算核心價值。 ? 認證組件代號為KeyStone,主要提供了用戶目錄的集中式存儲,以及相關的授權服務,便于其他OpenStack服務的訪問。提供創建用戶和租戶,并且以基于角色的方式限制用戶租戶訪問云計算中的計算、網絡、存儲等資源。 ? 對象存儲組件代號為Swift,是OpenStack所有組件中最早的之一,還有一個是Nova組件。主要提供對象存儲,存儲的是一些資源文件,如圖片、代碼等文件。在OpenStack平臺中,任何的數據都是一個對象。是一個可擴展并且提供了冗余的存儲系統。 OpenStack發展路線OpenStack經過9年多的演進,版本也從最早的Austin版本發展到了現在最新的Queens版本。功能上不斷的完善,組件兼容性越發穩定。以下是出自官方的OpenStack版本Release時間表。 (本文首發于2018年,相關版本信息請以官網最新發布為準) 通過眾多企業及社區專業人士的代碼貢獻,OpenStack平臺將會越來越穩定,承載越來越多的關鍵服務。 OpenStack架構設計思路 OpenStack是一個靈活性非常強的云管理平臺,各種組件靈活搭配,實現單一或者冗余的不同架構。所有的架構都應按照不同的業務場景進行設計,沒有任何的架構是萬年不變的,所以要求云平臺架構師要深入的理解業務需求,從而設計一個符合需求的好架構。一個樓能蓋多高就要看它的地基好不好,骨架合不合理。 下文將主要講兩個典型的OpenStack架構,單一架構不在這次的討論范圍內,因其主要是用于測試和學習環境,不具備生產環境的要求。 典型架構——基本節點部署方式業務場景: 公司IT主要要求搭建一套基于OpenStack的私有云平臺系統。主要承載公司內部的非核心系統及一些輕應用。要求IT可用率必須滿足兩個9,業務對實時在線要求不高。 架構設計: 經分析,架構設計不需要過于復雜。在TCO控制得當的情況下,只需要滿足基本的功能即可,無需投入更多的高可靠功能。 如上圖所示,主要包括3個控制節點(含網絡節點)、N個計算節點(根據實際情況自定決定)、1個塊存儲節點及1個鏡像節點。控制節點和網絡節點實現了冗余,保證了主要功能的高可用。由于對業務實時性要求不高,所以VM都存儲在Nova節點的本地,無法自動實現遷移,出故障后需要管理員介入。管理流量通過千兆網卡,數據流量通過萬兆網卡傳輸,保證了數據的隔離。 典型架構——高可用節點部署方式業務場景: 同樣的場景,不同的是老板要求業務的實效性和平臺的高可靠性。主要承載公司的核心系統,比如郵件系統、OA系統、SRM等關鍵系統。 架構設計: 經分析,這樣的架構要求要比第一個場景復雜很多。架構師要考慮平臺的高可靠,同時也要確保問題發生后,對業務應用沒有影響,或者說影響到最低。 如上圖所示,主要包括3個控制節點(含網絡節點)、N個計算節點(根據實際情況自定決定)、2個塊存儲節點、1個鏡像節點以及1個自動化部署工具節點。同時采用了IBM GPFS分布式文件系統對計算節點數據進行存儲,3副本存儲。這種架構保證了平臺功能的高可用,同時也確保了數據的可靠性和高可用。由于對業務實時性要求高,所以VM都存儲在GPFS存儲中,可以自動實現遷移,出故障后無需管理員介入。管理流量通過千兆網卡,數據流量通過萬兆網卡傳輸,保證了數據流量的隔離。 總結云計算是個未來技術發展的趨勢,會隨著業務的不同,發展出不同的云架構。OpenStack做為開源云管理平臺之一,在眾多熱心技術人員和多家公司的鼎力支持下,已經越來越穩定,成為眾多企業的私有云甚至公有云的首選平臺。但是對于未來的發展,OpenStack依然面臨很多的挑戰。 1) 技術方面: OpenStack屬于開源軟件,很多組件是由不同的個體或者機構自行開發的。組件過多,導致整體OpenStack的安裝部署相對于成型的商業軟件較為復雜。由于沒有專業的測試團隊在社區,所以拍錯和升級較苦難。 2) 投資方面: OpenStack的發展離不開資金的支持。在9年多的發展過程中,得到了多家國際IT巨頭的支持與代碼奉獻。各家公司在這方面投入的資金也相對較大。由于是開源環境,運維難度高,所以人力成本和研發成本也是很高的。 3) 市場方面: 現在商業成熟的產品很多,比如VMware、Hyper-V cloud等。所以OpenStack要與這些廠商爭奪地盤,必須想辦法突出自身的技術優勢,優化自己的技術劣勢。從現在趨勢來看,還是任重而道遠。 不管在今天還是未來,在社區和熱心貢獻者的共同努力下,OpenStack在發展上將得到更多的支持,技術上變得越發成熟穩定,市場占有率也會大幅提升。 原題:OpenStack云計算技術淺談 本文作者:張志強,多年的云計算、虛擬化架構設計、企業信息化建設、自動化運維經驗,擁有豐富的混合元架構及管理經驗。 相關資料,歡迎閱讀下載:
|
|