欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

浙江移動容器云基于Dragonfly的統(tǒng)一文件分發(fā)平臺生產實踐

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名虛擬主機、營銷軟件、網站建設、龍?zhí)毒W站維護、網站推廣。

2018 年 11 月, 源于阿里巴巴的云原生鏡像分發(fā)系統(tǒng)—— Dragonfly 在 KubeCon 上海現場亮相,成為 CNCF 沙箱級別項目(Sandbox Level Project)。

Dragonfly 主要解決以 Kubernetes 為核心的分布式應用編排系統(tǒng)的鏡像分發(fā)難題。2017 年開源即成為阿里巴巴最為核心的基礎設施技術之一。開源一年以來,Dragonfly 已在諸多行業(yè)落地。

DCOS 是浙江移動容器云平臺,目前在平臺式運行的應用系統(tǒng)已有 185 套,包括手機營業(yè)廳、CRM 應用等核心系統(tǒng)。本文將主要介紹浙江移動容器云(DCOS)平臺以 Dragonfly 為改革“利器”,成功解決了運營商大規(guī)模集群場景下分發(fā)效率低、成功率低以及網絡帶寬控制難等問題;并反哺社區(qū),在 Dragonfly 界面功能、生產高可用部署層面對 Dragonfly 進行了升級。

DCOS 容器云在生產環(huán)境中

遇到的挑戰(zhàn)

隨著浙江移動容器云(DCOS)平臺的持續(xù)完善,承載應用不斷增加,在運行容器數量接近 10000 個。采用傳統(tǒng) C/S(Client-Server)結構的分發(fā)服務體系已經越來越無法適應大規(guī)模分布式應用在代碼包發(fā)布、文件傳輸時的場景:

  • 計算結點因網絡異常等原因,導致代碼包下載失敗,對應用代碼包的完整性和一致性構成影響。

  • 在多用戶高并發(fā)情況下,可能會出現 TB 級的文件傳輸,單點性能瓶頸增加了應用發(fā)布時長。

Dragonfly 簡介

P2P(Peer-To-Peer)是一種點對點網絡技術,通過各結點互聯,將網絡中的資源和服務分散在各個結點上。信息的傳輸和服務實現直接在結點之間進行,避免了傳統(tǒng) C/S 結構可能的單點瓶頸。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

CNCF 開源文件分發(fā)服務解決方案 Dragonfly,是一種基于 P2P 與 cdn 技術,構建了適用于容器鏡像和文件的分發(fā)系統(tǒng),有效解決了企業(yè)大規(guī)模集群場景下文件和鏡像分發(fā)效率、成功率低以及網絡帶寬控制的問題。

Dragonfly 的核心組件:

  • SuperNode:超級結點,以被動 CDN 方式從文件源下載文件并生產種子數據塊,在 P2P 網絡中,充當網絡控制器,調度結點之間的分塊數據傳輸;

  • dfget proxy:部署在計算結點的代理,負責 P2P 結點的數據塊下載和結點間的數據共享。

Dragonfly 分發(fā)工作原理(以鏡像分發(fā)為例):
容器鏡像不同于普通文件,由多層存儲構成,下載也是分層下載,非單一文件。每層的鏡像文件都會被分割為 block 數據塊并作為種子。下載結束后,通過每層鏡像唯一的 ID 和 sha256 算法,重新組合成完整的鏡像。確保下載過程的一致性。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐
Dragonfly 鏡像下載模式的過程如下圖所示:

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐
  1. dfget-proxy 攔截客戶端 docker 發(fā)起的鏡像下載請求(docker pull)并轉換為向 SuperNode 的dfget 下載請求;

  2. SuperNode 從鏡像源倉庫下載鏡像并將鏡像分割成多個 block 種子數據塊;

  3. dfget 下載數據塊并對外共享已下載的數據塊,SuperNode 記錄數據塊下載情況,并指引后續(xù)下載請求在結點之間以 P2P 方式進行數據塊下載;

  4. Dokcer daemon 的鏡像 pull 機制將最終將鏡像文件組成完整的鏡像。

根據 Dragonfly 的上述特性,浙江移動容器云平臺結合生產實際決定引入 Dragonfly 技術對現行代碼包發(fā)布模式進行改造,通過 P2P 網絡分攤發(fā)布時產生的單一文件服務器傳輸帶寬瓶頸,并利用 Docker 本身的鏡像 pull 機制來保證整個發(fā)布過程鏡像文件的一致性。

解決方案:統(tǒng)一分發(fā)平臺

架構設計與實現

功能架構設計

在 Dragonfly 技術的基礎上,結合浙江移動容器云生產實踐,統(tǒng)一分發(fā)平臺的總體設計目標如下:

  • 利用 Dragonfly 技術和文件下載校驗功能,解決目前生產發(fā)布過程中應用代碼包發(fā)布不一致、發(fā)布時間過長的問題;

  • 支持客戶端界面化,屏蔽后臺命令行細節(jié),簡化操作流程,效率更高;

  • 支持 Mesos、K8s、Host、VM 等多種云環(huán)境下的分發(fā),并實現集群的自主發(fā)現,支持用戶通過統(tǒng)一分發(fā)平臺對目標集群進行統(tǒng)一化管理;

  • 增加用戶權限控制和任務帶寬限制,支持多租戶多任務的分發(fā);

  • 優(yōu)化 P2P Agent 部署方式,支持更快速的計算結點 P2P 組網。

基于上述目標,統(tǒng)一分發(fā)平臺的總體架構設計如下:

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐
  • P2P 網絡層是支持不同異構集群接入(主機集群、K8s 集群、Mesos 集群)的由多個計算結點構成的分發(fā)網絡;

  • 分發(fā)服務層由功能模塊和存儲模塊構成,是整個通用分發(fā)系統(tǒng)的核心架構。其中,用戶接入鑒權模塊提供系統(tǒng)登錄審核功能;分發(fā)控制模塊基于 Dragonfly,實現 P2P 方式的任務分發(fā);流量控制模塊提供租戶對不同任務的帶寬設置功能;配置信息數據庫負責記錄網絡層目標集群、任務狀態(tài)等基本信息;用戶通過狀態(tài)查詢模塊可實現對分發(fā)任務執(zhí)行進度的透明掌控;

  • 用戶操作層由任意數量的界面化用戶客戶端構成。

技術架構實現

根據上述平臺設計目標與總體架構分析,容器云團隊在開源組件的基礎上進行了平臺功能的二次開發(fā),具體包括:

  • 開發(fā)界面化用戶客戶端 Client;

  • 引入 Harbor 開源鏡像倉庫進行鏡像存儲,Minio 對象存儲服務進行文件存儲;

  • 使用 MySQL、redis 作為 CMDB,由 MySQL 負責管理集群狀態(tài)、用戶信息等,為面向集群的“一鍵式”任務創(chuàng)建提供支撐。通過 Redis 保存分發(fā)任務狀態(tài)信息,提供高并發(fā)、低延遲的狀態(tài)查詢服務;

  • 平臺核心服務層(Docktrans)和 API 服務網關層(Edgetrans)都是是無狀態(tài)、面向集群的、可動態(tài)橫向擴展的核心組:

    • API 網關封裝了系統(tǒng)內部架構,主要負責接收并轉發(fā) Client 發(fā)起的任務請求以及實現用戶對各功能模塊的接入鑒權,并對外可提供定制化的 API 調用服務;

    • 核心服務層是平臺各功能模塊業(yè)務邏輯處理的引擎。在分發(fā)過程中,核心服務層將通過統(tǒng)一的遠程調用向 P2P 代理結點同時發(fā)起下載請求,完成客戶端——任務集群“一對多”的分發(fā)過程。

  • df-master 與 df-client 均為 Dragonfly 組件,df-master 即 Dragonfly 中的超級節(jié)點 SuperNode,df-client 即 P2P 網絡中的對等節(jié)點代理 dfget proxy。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

技術特色

  • df-client 實現容器鏡像化。通過輕量級的容器部署,加快了組網效率。新接入網絡層的集群 host 結點可通過鏡像下載、啟動的方式,秒級完成 P2P Agent 結點啟動;

  • 核心接口層(Docktrans)屏蔽了dfget 底層命令行細節(jié),提供了界面化的功能,簡化了用戶操作。通過統(tǒng)一遠程調用方式下發(fā)至多個 P2P 任務結點,解決了用戶需要逐臺進行 dfget 等下載操作的問題,簡化了“一對多”的任務發(fā)起模式。

核心功能模塊|分發(fā)控制接口交互流程

如下圖所示,統(tǒng)一分發(fā)平臺的核心模塊在進行任務分發(fā)時的工作流程具體如下:

  1. 用戶通過 Client 建立鏡像或文件分發(fā)任務;

  2. 分發(fā)模塊首先通過平臺 API 服務網關(Edgetrans)的鑒權功能判斷用戶是否具有分發(fā)功能的權限;

  3. 用戶通過鑒權后,設置分發(fā)任務參數,提供集群ID,平臺從 MySQL 數據庫讀取集群配置信息實現集群結點的自主發(fā)現。用戶也可以指定多個結點 IP 作為自定義集群參數;

  4. 根據分發(fā)類型,核心服務層(Docktrans)分發(fā)功能模塊將不同的前端分發(fā)請求轉換為 dfget(文件)或者 Docker pull(鏡像)命令,通過統(tǒng)一遠程調用 Docker Service 服務將命令下發(fā)至多個結點 df-client 進行相應的處理;

  5. 在任務進行過程中,任務進度與任務事件日志分別寫入 Redis 與 MySQL 數據庫提供用戶對任務狀態(tài)的查詢能力。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

生產環(huán)境改造成果

截至目前,生產共運行 200 余個業(yè)務系統(tǒng) 1700 多個應用模塊,已全部優(yōu)化為鏡像發(fā)布模式。發(fā)布耗時和發(fā)布成功率得到明顯改善:

采用 P2P 鏡像發(fā)布后,業(yè)務多應用一次上線的月均發(fā)布成功率穩(wěn)定在 98%。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

4 月后容器云平臺開始用 P2P 鏡像發(fā)布方式代替?zhèn)鹘y(tǒng)分發(fā)系統(tǒng)的代碼包發(fā)布方式,多應用一次集中上線發(fā)布耗時相較與改造之前大幅降低,平均下降 67%。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

同時,容器云平臺選取了多個應用集群進行單應用的 P2P 鏡像發(fā)布改造效果測試。可以看出,單個應用發(fā)布耗時相較于改造前大幅降低,平均下降 81.5%。


浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

后續(xù)推廣

統(tǒng)一文件分發(fā)平臺已有效解決了浙江移動容器云應用在代碼發(fā)布過程中的效率和一致性問題,成為平臺的重要組成部分之一。同時,也支持更多大規(guī)模集群中進行高效文件分發(fā)的場景。可陸續(xù)推廣至:集群批量安裝介質分發(fā)以及集群批量配置文件更新。

社區(qū)共建|界面功能展示

直接引入 Dragonfly 后誕生的社區(qū)訴求

  • 缺少圖形化界面,用戶使用成本高,操作效率低;

  • 缺少用戶權限管理和分發(fā)審計功能,無分發(fā)管控能力;

  • 不支持用戶“一對多”的集群操作模式。云環(huán)境下,用戶通常需要向自己所管理的集群同時進行分發(fā),但現有模式僅支持用戶在單結點進行分發(fā)操作;

  • 傳統(tǒng) Agent 應用軟件包部署方式效率低,不利于大規(guī)模集群的快速伸縮擴展。作為系統(tǒng)軟件,增加了對宿主系統(tǒng)的入侵性。

目前,客戶端界面化開發(fā)工作基本完成,已進入生產測試和部署中。分發(fā)平臺總體規(guī)劃 4 大核心功能:任務管理,目標管理,權限管理和系統(tǒng)分析,現已開放前三項功能。

權限管理界面

權限管理,即用戶管理,為不同用戶提供個性化的權限管理功能,具體如下:

  • 支持不同角色(超級管理員、任務集群管理員、任務管理員)用戶創(chuàng)建、刪除、修改;

  • 支持不同權限集合的定制化組合(角色創(chuàng)建),用戶權限賦權;

  • 支持外部系統(tǒng)用戶接入與權限授權(暫未開放)。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

目標管理界面

目標管理,即用戶進行任務分發(fā)的目標集群結點管理,為用戶提供管理集群的 P2P 組網和集群結點狀態(tài)信息健康功能,具體如下:

  • 支持不同用戶集群的創(chuàng)建和刪除;

  • 支持在用戶所管理集群下,容器自動化 Agent 部署快速新增、刪除 P2P 網絡結點,并對結點狀態(tài)進行監(jiān)控;

  • 支持不同類型,如 host(虛擬機、物理機)集群、K8s 集群、Mesos 集群的接入,同時,支持直接讀取 K8s、Mesos 集群結點信息,批量接入 P2P 網絡層。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

任務管理

任務管理提供文件或鏡像分發(fā)任務的創(chuàng)建、刪除、停止、信息查看等功能,具體如下:

  • 支持鏡像預熱模式(可設置計劃分發(fā)任務,提前發(fā)布鏡像或文件分發(fā)至各結點);

  • 支持容器鏡像等多格式文件的分發(fā);

  • 支持指定任務集群多結點“一鍵式”任務創(chuàng)建、執(zhí)行、刪除、終止和已執(zhí)行任務的“一鍵復制”;

  • 支持對發(fā)布文件版本的創(chuàng)建和刪除管理;

  • 支持對分發(fā)任務狀態(tài)與任務日志的查看。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐
浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

系統(tǒng)分析(計劃開放)

預計后續(xù)將開放系統(tǒng)分析功能,為平臺管理員、用戶提供任務分發(fā)耗時、成功率等數據和任務執(zhí)行效率統(tǒng)計圖表,通過數據統(tǒng)計與預測,有效支撐平臺向智能化方向演進。

社區(qū)共建|生產高可用部署

鏡像庫主備容災部署,主備之間通過鏡像同步保持數據一致性。

  • P2P 發(fā)布由 df-master 和 df-client 構成(藍色部分),df-master 從鏡像庫拉取鏡像形成 P2P 種子,每個機房配置兩個 df-master 形成高可用;

  • P2P 分發(fā)只在本機房分發(fā),避免跨機房流量;

  • 每個機房配置兩個 mirror(備用鏡像庫),當 P2P 分發(fā)方式異常無法工作時計算結點會自動到 mirror 上下載鏡像, mirror 通過負載均衡實現高可用。

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

目前,我們計劃把界面功能展示貢獻給 CNCF Dragonfly 社區(qū),進一步豐富 CNCF Dragonfly 社區(qū)周邊生態(tài)。未來,我們希望更多人參與進來,一起為社區(qū)繁榮貢獻力量。

本文作者:

陳遠崢浙江移動云計算架構師

王淼鑫浙江移動云計算架構師

Dragonfly 社區(qū)分享

Dragonfly 社區(qū)貢獻者太云在 Dragonfly Meetup 分享到:

“目前,Dragonfly 已經成為 CNCF Sandbox 項目,Star 數 2700+,有很多企業(yè)用戶正在使用 Dragonfly 來解決他們在鏡像或者文件分發(fā)方面遇到的各種問題。未來,我們將不斷完善和改進 Dragonfly,為云原生應用提供更加豐富強大且簡便的分發(fā)工具。期待與大家共同努力,讓 Dragonfly 早日成為 CNCF 畢業(yè)項目。”

項目地址

https://github.com/dragonflyoss/Dragonfly

Dragonfly Roadmap

浙江移動容器云基于 Dragonfly 的統(tǒng)一文件分發(fā)平臺生產實踐

分享標題:浙江移動容器云基于Dragonfly的統(tǒng)一文件分發(fā)平臺生產實踐
文章路徑:http://chinadenli.net/article12/ppcjdc.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站建設標簽優(yōu)化網站導航網站制作搜索引擎優(yōu)化定制網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)