摘要:本篇文章將會結合網易云信的實踐經驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。基于構建點播私有云平臺在具有以上優勢的同時,還具備資源彈性管理監控完善部署簡易自動化維護等特性。基于構建平臺,能夠自由管理創建云主機。
私有云是為一個客戶多帶帶使用而構建的,因而提供對數據、安全性和服務質量的最有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬性是專有的資源。本篇文章將會結合網易云信的實踐經驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。
推薦閱讀
《幾十萬人同時在線的直播間聊天,如何設計服務端架構?》
《高并發IM系統架構優化實踐》
云計算的出現,通過硬件的虛擬化將大量的服務器硬件抽象為巨大的資源池,可以動態的為用戶提供基礎設施、平臺和應用三種形式的服務。目前企業的使用方式有公有云和私有云。公有云下,企業可以拋棄復雜的基礎設施構建和維護,按需購買計算資源和應用服務。但是考慮到一些數據的敏感性和網絡互連互通問題的限制,企業將自己最核心的業務完全托管至公有云有很大顧慮。因此,基于業務上的可靠性、安全性、可控性,很多企業選擇建設私有云。
私有云是為一個客戶多帶帶使用而構建,因而提供對數據、安全性和服務質量的有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬性是專有的資源。
基礎服務包括:
緩存、數據庫、消息隊列等部署在PaaS層的服務,提供數據的存儲和訪問。
容器管理基于Docker和Kubernetes管理點播服務各個組件的生命周期。
能力管理集群包括:
上傳服務集群,基于S3設備的分布于不同節點的斷點上傳。
流媒體服務集群,支持視頻的邊下邊播等播放特性。
轉碼集群,處理視頻轉碼的引擎。
通過提供基礎服務和能力管理集群構建平臺服務,用戶只需要在此基礎上接入業務應用,集成播放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 實例。從而提供穩定可靠的數據庫服務,提供多重安全防護措施和專業的備份、恢復等功能。
PaaS層上存儲服務的構建基于 S3 設備,同時提供多節點的斷點上傳、以及圖片和視頻處理云信息獲取服務。提供高可用、支持斷點續傳,同時針對視頻文件特性,獲取視頻文件元信息的存儲特性。其中上傳服務和云信息獲取服務采用 Docker 鏡像部署,保證服務的管理自動化。
點播組件服務部署所有點播組件的部署基于 Docker 鏡像,通過容器管理服務保證服務的高可用以及自動化管理。組件圖如下所示:
Registry:服務注冊與發現的注冊中心。部署原生的zookeeper集群作為獨立的注冊中心,主要使用zookeeper提供的一致性同步協調能力和服務探活能力。zookeeper的部署采用Docker容器,利用容器的服務管理能力保障服務的穩定、高可用。
Consumer:調用遠程服務的服務消費方。包含對外提供的API接口和為直播錄制視頻存儲開放的接口。用戶通過接口進行視頻上傳、轉碼和管理。消費方服務部署采用Docker容器,利用容器的服務管理能力保障服務的穩定、高可用。
Provider:調用遠程服務的服務提供方。包含視頻處理服務、視頻檢測服務、錄制視頻處理服務、統計服務。提供方服務部署采用Docker容器,利用容器的服務管理能力保障服務的穩定、高可用。
Monitor:統計服務的調用次數和調用時間的監控中心。
組件間調用關系服務提供者啟動,向注冊中心注冊自己提供的服務。
服務消費者啟動,向注冊匯總新訂閱自己所需的服務。
注冊中心基于長連接推送服務提供者列表給消費者。
服務消費者從列表中,基于一定的負載均衡算法,選一臺進行調用,如果失敗,再選取另一臺調用。
服務消費者和提供者,內存中累計調用次數和時間,定時發送統計數據到監控中心。
優 點私有云相比較于公有云,在數據安全、充分利用現有硬件和軟件資源、服務質量、管理流程上有突出優勢。基于 Docker 構建點播私有云平臺在具有以上優勢的同時,還具備資源彈性管理、監控完善、部署簡易、自動化維護等特性。
(1)數據安全。由于存儲服務部署于用戶的硬件環境,構筑在防火墻之后,同時存儲服務的高可用,能夠保證用戶數據的可靠和安全。
(2)監控完善。上述描述的哨兵系統介入整個點播私有化平臺的構建過程,能夠及時上報各個過程中組件的異常情況。
(3)資源彈性管理。基于 Openstack 構建 IaaS 平臺,能夠自由管理創建云主機。基于 Docker 和 Kubernetes 構建容器管理服務,能夠基于服務鏡像自由創建服務,同時容器管理服務能夠做到彈性擴容。
(4)部署簡易、自動化維護。在通過事先編排好的腳本構建好基礎 IaaS 平臺后,利用服務鏡像能夠快速部署服務。容器管理服務的服務發現能力使得服務的維護變得簡單。
整體來說,私有云由于其特性,在實施過程中,運維成本遠遠高于開發成本。所以,在面向用戶交付實施的過程必需簡易,后續維護盡量做到自動化。盡大可能減少人工介入。本文構建過程中采用的架構技術特點(Openstack、Docker、Kubernetes、zookeeper)比較符合這些特點。本文以全局概述的方式試圖帶大家認識點播私有化平臺構建的整體架構面貌。后續將會在此基礎上不斷深入每個過程的細節,探討實現的考慮點和合理性。
隨著即時通訊以及音頻處理和壓縮技術的不斷發展,效果更好、適用范圍更廣、性能更高的算法和新的技術必將不斷涌現,如果你有好的技術或者分享,歡迎關注網易云信官方博客和 GitHub:
關注更多技術干貨內容:網易云信博客
歡迎關注網易云信 GitHub
歡迎關注網易云信官網
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32706.html
摘要:本篇文章將會結合網易云信的實踐經驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。基于構建點播私有云平臺在具有以上優勢的同時,還具備資源彈性管理監控完善部署簡易自動化維護等特性。基于構建平臺,能夠自由管理創建云主機。 私有云是為一個客戶單獨使用而構建的,因而提供對數據、安全性和服務質量的最有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬...
摘要:線上服務的有效監控和數據收集,一直是后端服務離不開的話題。在這個大數據時代,有了數據卻不做事情,等同于浪費。而南京移動的用戶量較大,也說明南京地區應該增設服務點。 線上服務的有效監控和數據收集,一直是后端服務離不開的話題。直播作為一種經典的分布式系統,監控以及數據收集更是必不可少的工作。如何對海量的服務集群有效的監控和保活,又如何抓取集群中的碎片數據中來優化服務?網易云信音視頻研發工程...
摘要:線上服務的有效監控和數據收集,一直是后端服務離不開的話題。在這個大數據時代,有了數據卻不做事情,等同于浪費。而南京移動的用戶量較大,也說明南京地區應該增設服務點。 線上服務的有效監控和數據收集,一直是后端服務離不開的話題。直播作為一種經典的分布式系統,監控以及數據收集更是必不可少的工作。如何對海量的服務集群有效的監控和保活,又如何抓取集群中的碎片數據中來優化服務?網易云信音視頻研發工程...
閱讀 880·2021-11-15 11:38
閱讀 1600·2021-09-24 09:48
閱讀 838·2021-09-24 09:47
閱讀 2270·2021-08-26 14:15
閱讀 3497·2019-08-30 11:09
閱讀 2601·2019-08-29 16:55
閱讀 1582·2019-08-26 14:01
閱讀 3032·2019-08-23 16:47