<button id="hu96j"><acronym id="hu96j"></acronym></button><dd id="hu96j"><pre id="hu96j"></pre></dd>
        <video id="hu96j"><font id="hu96j"><th id="hu96j"></th></font></video>
          <nav id="hu96j"></nav>
        <tbody id="hu96j"><center id="hu96j"><video id="hu96j"></video></center></tbody>

      1. <dd id="hu96j"><track id="hu96j"></track></dd>

        <dd id="hu96j"></dd>
        <rp id="hu96j"><acronym id="hu96j"></acronym></rp>
      2. <button id="hu96j"></button>

        • 保存到桌面加入收藏設為首頁
        IDC話題

        彭哲夫揭示“芒果TV的技術架構演變”

        時間:2015-07-16 22:20:51   作者:彭哲夫   來源:服務器托管   閱讀:18052   評論:0
        內容摘要:強有力的技術支撐平臺是保障業務得以快步發展的堅實后盾,這一事實無疑在芒果TV得到了更深刻的印證。短短一年半的時間技術機構的改變讓芒果TV上線一年半的時間內迅速擴展,搶占了時間優勢和發展先機。
        彭哲夫揭示“芒果TV的技術架構演變”
            借由湖南廣播電視這一亞洲前五的廣播電視系統的東風,以及其下的所有內容資源的獨播權利,芒果TV僅在上線一年半的時間內,就已經積累緯過50000小時的長時高質的視頻資源,以及超千萬級別的用戶規模,可以說是廣電行業在互聯網產品領域的一個標桿式的品牌。懷著對其業務和技術的好奇,以及對當前云服務對于廣電行業的支撐力的表現的探索,牛小七對芒果TV平臺部核心技術團隊負責人彭哲夫進行了深入的訪談,去探尋這位內部人士眼中的發展與未來。
         
        相比互聯網公司,傳統媒體的開發模式更追求穩定
         
            彭哲夫之前在豆瓣工作多年,負責Douban App Engine的研發,深諳互聯網領域的技術發展規則。而芒果TV的平臺建設,也是隨他進入而起,從典型的互聯網公司到傳統行業的互聯網部門,這其中的差別,他可謂深有體會。
         
        經彭哲夫介紹,從全局來看,目前芒果TV的主要業務包含三個方面,均由芒果TV的技術平臺部門來支撐。
         
            第一條線是湖南本地的 IPTV 內容。
         
            第二條是OTT 線,這一條線擁有千萬級別的真金白銀的付費用戶。
         
            第三條線是網站內容,這也是芒果TV的技術平臺部門主要支撐的業務。因為獨播策略內容為王,芒果TV現在要承擔湖南衛視所有節目的互聯網渠道轉播工作。同時,芒果TV另辟蹊徑,在互聯網直播技術上也往前走了一大步,例如前幾天的 Billboard,全球同步直播;跨年晚會,五機位自由選擇視角互聯網直播等。
         
            公司性質、所處領域與業務線的不同也帶來了工作方式的不同,因此當談到與前東家豆瓣的對比時,彭哲夫說到,“我認為,互聯網企業講究短平快,國企下的互聯網產品機構尤其是媒體領域會更加謹慎一些。這樣帶來的結果就是迭代速度會變慢,周期會拉長,i相應的穩定性會更高。另外,在技術選型上也比較保守。”
         
        芒果TV平臺架構的演變
         
            雖然領域存在差異,但技術上的追求則是共通的,更由于有錢任性,芒果TV甚至可以比互聯網圈i大多數求“活下去”的公司更能在自己領域和技術的某些方面冒進。“對于內部方案而言,目前我們也在做改進,將好的新的技術逐步引入到公司工作流當中。例如,從SVN切換到GIT,再比如大規模使用Redis-Cluster和Docker技術來簡化線上基礎設施等。”彭哲夫一直在盡自己最大的努力,引入業界優秀的解決方案來提升芒果TV的系統性能,降低運維成本。由他的負責平臺部核心技術團隊,目前主要是在做基于Docker的調度平臺以及整個公司的基礎設施。他們在沒有參考任何其他調度編排系統的情況下自行研發了調度編排系統,現在這個系統驅動了還鸗V的Redis集群,實現了毫秒級的擴容和縮容,保證4個9的可用性和6個9的數據可靠性。
         
            在訪談中,彭哲夫向我們詳細揭示了芒果TV的技術架構演變。
         
        自建系統平臺,支撐核心業務
         
            在加入芒果TV之后,彭哲夫結合以往在豆瓣的經驗,實現了類似 DAE 架構的一個新 PaaS —— Nebulium Engine(NBE),其基于兩級Nginx結構,服務發現基于Skydns,配置存儲在etcd。在運行時完全用 Docker 來進行隔離,并將控制層移到了 Container 之外。
         
            但在這個過程中,出現了一個讓人很頭疼的問題——那就是在芒果 TV 內部并沒有一個大一統的強勢語言,作為系統開發方,他們只能把 Runtime 的控制權完全交給業務方去決定。因此,綜合大半年線上運行結果來看,在資源管理和工作流整合上,NBE 做得并不是很好。
         
            原因有很多,一方面是基礎設施和之前豆瓣比實在太糟糕,如果說豆瓣是21世紀的互聯網公司的話,那么當時的芒果TV還停留在19世紀的傳聲筒時代;另一方面,各敫餮的語言都需要支持,在放開 Runtime 之后,平臺部門對于資源競爭和預估是完全沒有任何能力去做的,恰恰業務方又希望平臺部能完全解決這些問題。舉個例子,Python GIL 限定在非多進程模式下最多吃死一個核,但是隔壁組上了個 Java 的中間件。這時就只能看著 Python 業務方肜純尢旌暗亓恕
         
        這時期的系統架構如下圖所示。
        彭哲夫揭示“芒果TV的技術架構演變”
         
            于是在2014 年底,開發者們重新回顧了一遍 Borg 和 Omega 相關的信息,開始了第二代NBE,也就是今天的主角——Project Eru——的開發。這一次他們拋棄了以前做一個PaaS的思路,而是決定去實現一個類似于Borg的服務編排和調度平臺。
         
        第二代NBE——Project Eru
         
            到目前為止,Eru平臺可以混編Offline和Online的服務(binary/script),對于資源尤其是CPU資源實現了自由維度(0.1、0.01、0.001等)的彈性分配,使用 Redis 作為數據總線對外進行消息發布,動態m知集群所有的 Containers 狀態并監控其各項數據等。此外,把基于Docker的Image Layer特性和Git version結合起來,實現了自動化的 build/test 流程,統一了線上部署環境。同時解決了 Runtime 的污染問題,使得業務能快速地擴容和縮容。
        系統架構如下圖所示。
        彭哲夫揭示“芒果TV的技術架構演變”
         
            看上去變化不大,實際上內部的設計和反饋回路等與第一代截然不同。業務層方面,在邏輯上使用了類似于Kubernetes的Pod來描述一組資源,使得Eru有了Container的組資源控制的能力。但是和 Kubernetes 不同的是,Pod 僅僅是邏輯上的隔離,主要用于業務的區分,而實際的隔離則基于網絡層。對于 Dockefile,這里不允許業務方自行寫Dockerfile,而是通過標準化的 App.yaml統一Dockerfile的生成s通用化的 Entrypoint 則滿足了業務一份代碼多個角色的復用和切換,使得任何業務幾乎都可以完全無痛地遷移上來。
         
            另外,第一代NBE是個完整的閉環,一個業務由生到死都有NBE本身各個組件的身影。但在Eru中放棄了以前考慮的完整閉s設計。由于第一代NBE打通了項目整個生命周期的每一個環節,但實際上落地起來困難重重,并且使得Dot(Master)的狀態太重沒法 Scale Out,因為它是單點部署,可靠性上會糟糕一些。所以Eru中每一個Core都是一個完整的無狀態的邏輯核心,使其在能夠Scale Out的同時可靠性也比 NBE 第一代要健壯得多。
         
            因此,在這個體系下,業務推薦會根據自身業務特性,通過監控自身數據、訂閱 Eru 廣播、調用Eru-Core的API ,實現復雜的自定義的部署擴容等操作。在系統中,并會去強行干涉或者建立一系列規則去限定這些事情 這也是它不屬于PaaS的原因。
         
            總的來說,Eru平臺項目的設計思路是以組合為主,依托于現有的 Redis 解決方案,通過“消息”將各個組件串起來,從而使得整個平臺的擴展性和自由度達到業務的需求。除了一些特定的方法,比如構建 Image,其他的諸如構建 Dockerfile,如何啟動應用等,均不做強一致性的范式去規范業務方/服務方怎么去做,當然這和芒果TV本身體系架構有關,但主要還是為了減少落地成本。
         
        引入公有云服務,構建360度方案
         
            為了同時抓住核心業務外和邊緣性業務,又不能讓突發業務影響到核心業務的發展,芒果TV目前選擇的是私有云加公有云的混合云解決方案。彭哲夫所負責的平臺部門核心技術團隊,已經圍繞核心業務打造了屬于自己的私有云業務平臺,以確保業務的正常運行。而隨著業務量的增加,以及突發事件的頻起,芒果TV本地私有平臺已經不能滿足全部業務的需求,但自建數據中心來處理并發流量,又會造成資源浪費、增加成本負載?;谶@些情況,芒果TV開始積極尋找公有云服務提供商,而七牛作為候選方案提供商,針對轉播和直播兩類業務別提出了360度的解決方案,以備具體場景的需求。
         
            首先,七牛采用優化的EC技術,使單位存儲的冗余度從傳統3副本降到1.125,并率先達到了16個9的可靠性。由于廣電屬于受到監管比較嚴格的傳統行業,客戶也會對云存儲存在的傳輸性能和隱秘性等方面感到擔憂。對此,一份數據在上傳時,七牛先將其打散,每一臺服務器都是子因素,分批量將這些文件存在對應的服務器上,從而使任何一臺服務器的宕機都不會影響其他備份服務器的正常運轉。
         
            同時,將媒體文件進行切片加密保存,最大程度保證了數據的私密性。在音視頻處理方面,七牛有快速轉碼、視頻水印、打點、快速轉格式等在線應用,并且將計算資源作為一個池,可以進行動態擴張和縮小。在內容分發方面,七牛推出了自研的多CDN管理平臺,能夠幫助用戶透明并自助式地監控和管理各個CDN節點在上傳、存儲、下載、分發等各個環節做好健康管理,實現一站式服務。
         
        結語
         
            強有力的技術支撐平臺是保障業務得以快步發展的堅實后盾,這一事實無疑在芒果TV得到了更深刻的印證。同時,芒果TV引入云服務打造360度技術方案,不僅節約了大量的時間和成本,更幫芒果TV在上線一年半的時間內迅速實現業務擴展,搶占了時間優勢和發展先機。相信在互聯網+風口下,謀求突破和轉型的廣電機構/企業還有很多,云服務勢必會為這次優雅轉身起到相當大的助推作用。
         


        IDCsped 提供最新的IT互聯網資訊,本著分享、傳播的宗旨,我們希望能幫助更多人了解需要的信息!

        部分文章轉載自互聯網、部分是IDCsped原創文章,如果轉載,請注明出處:www.idcsped.com !
        微信號:13430280788  歡迎加微信交流!

        標簽:彭哲夫  芒果TV云架構解析  公有云服務  IDC話題  
        相關評論

        銷售電話:13430280788

        Copyright © 2012-2017 | www.idcsped.com 版權所有

          粵公網安備 44010502001126號  粵ICP備12006439號-1
        Powered by OTCMS V3.61
        日韩欧美永久中文字幕视频
          <button id="hu96j"><acronym id="hu96j"></acronym></button><dd id="hu96j"><pre id="hu96j"></pre></dd>
            <video id="hu96j"><font id="hu96j"><th id="hu96j"></th></font></video>
              <nav id="hu96j"></nav>
            <tbody id="hu96j"><center id="hu96j"><video id="hu96j"></video></center></tbody>

          1. <dd id="hu96j"><track id="hu96j"></track></dd>

            <dd id="hu96j"></dd>
            <rp id="hu96j"><acronym id="hu96j"></acronym></rp>
          2. <button id="hu96j"></button>