私有云是爲一個客戶單獨使用而構建的,於是提供對數據、安全性和服務質量的最有效控制。前置條件是客戶擁有基礎設施,並可使用基礎設施在其上部署應用程序。其核心屬性是專有的資源。本篇文章將會結合 網易雲信的實踐經驗,以全局概述的方式帶你們認識點播私有化平臺構建的總體架構面貌。
《高併發IM系統架構優化實踐》數據庫
雲計算的出現,經過硬件的虛擬化將大量的服務器硬件抽象爲巨大的資源池,能夠動態的爲用戶提供基礎設施、平臺和應用三種形式的服務。目前企業的使用方式有公有云和私有云。公有云下,企業能夠拋棄複雜的基礎設施構建和維護,按需購買計算資源和應用服務。可是考慮到一些數據的敏感性和網絡互連互通問題的限制,企業將本身最核心的業務徹底託管至公有云有很大顧慮。所以,基於業務上的可靠性、安全性、可控性,不少企業選擇建設私有云。後端
私有云是爲一個客戶單獨使用而構建,於是提供對數據、安全性和服務質量的有效控制。前置條件是客戶擁有基礎設施,並可使用基礎設施在其上部署應用程序。其核心屬性是專有的資源。緩存
基礎服務包括:安全
能力管理集羣包括:服務器
經過提供基礎服務和能力管理集羣構建平臺服務,用戶只須要在此基礎上接入業務應用,集成播放SDK和上傳SDK,便可快速構建點播服務。網絡
上圖闡述了點播私有化平臺的最小部署集羣,其中控制集羣包含經過基於Openstack進行的硬件資源虛擬化、Docker和Kubernetes實現的容器服務管理、基於虛擬資源和容器的哨兵監控以及帳號管理。計算集羣包含點播服務組件的部署以及依賴的存儲、數據管理服務。架構
整個私有化平臺從底層向上構建包括:硬件資源的虛擬化、數據存儲服務構建、點播組件服務部署。併發
上圖闡述了將硬件資源虛擬化的分層抽象架構:負載均衡
IaaS:基於Openstack的雲計算基礎服務(包括雲計算、雲網絡和本地存儲)
將硬件資源虛擬化爲雲主機,支持雲主機的管理操做(建立、啓動、中止、重啓、刪除、快照、修改規格、離線遷移、修改雲主機名稱等操做)、鏡像快照管理、安全組管理、網絡資源管理(經過管理內網IP和外網IP浮動池,使用獲取,銷燬釋放至IP池)、監控報警(雲主機的各項指標監控)。
Pass服務:基於IaaS構建的多租戶PaaS服務(包括存儲服務、數據庫)
Kubernetes:多租戶的集羣編排的容器服務
Kubernetes服務爲分佈式應用服務提供容器的建立、編排、調度、服務發現、彈性伸縮等功能。基於Kubernetes的特性同時融合基礎服務的負載均衡服務可以保證服務的高可用、高可靠、彈性擴容、不一樣級別的服務隔離。
管理服務:提供用戶管理和API操做相關服務
提供產品的開發環境、測試環境、線上環境等生命週期的容器服務平臺。經過SOA服務化系統的部署,支持靜態資源發佈、後端服務的動態擴容發佈、服務的自動上下線等。
基於MySQL在計算節點上進行主從部署,隔離網絡環境,提供私有網絡實例。全部實例都是高可用實例,即每一個實例都有master和slave角色。slave宕機時,不會對服務產生影響,master發生宕機的狀況,會切換至slave實例,同時服務管理會拉起master實例。從而提供穩定可靠的數據庫服務,提供多重安全防禦措施和專業的備份、恢復等功能。
基於S3設備,同時提供多節點的斷點上傳、以及圖片和視頻處理雲信息獲取服務。提供高可用、支持斷點續傳,同時針對視頻文件特性,獲取視頻文件元信息的存儲特性。其中上傳服務和雲信息獲取服務採用Docker鏡像部署,保證服務的管理自動化。
全部點播組件的部署基於Docker鏡像,經過容器管理服務保證服務的高可用以及自動化管理。組件圖以下所示:
私有云相比較於公有云,在數據安全、充分利用現有硬件和軟件資源、服務質量、管理流程上有突出優點。基於Docker構建點播私有云平臺在具備以上優點的同時,還具有資源彈性管理、監控完善、部署簡易、自動化維護等特性。
總體來講,私有云因爲其特性,在實施過程當中,運維成本遠遠高於開發成本。因此,在面向用戶交付實施的過程必需簡易,後續維護儘可能作到自動化。盡大可能減小人工介入。本文構建過程當中採用的架構技術特色(Openstack、Docker、Kubernetes、zookeeper)比較符合這些特色。本文以全局概述的方式試圖帶你們認識點播私有化平臺構建的總體架構面貌。後續將會在此基礎上不斷深刻每一個過程的細節,探討實現的考慮點和合理性。想要獲取更多產品乾貨、技術乾貨,歡迎關注網易雲信博客。