精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

實(shí)例分析京東Docker,彈性伸縮成重點(diǎn)

大小:0.8 MB 人氣: 2017-10-10 需要積分:1
不知不覺中,年中的618和年終的11.11已經(jīng)成為中國電商的兩大促銷日,當(dāng)然,這兩天也是一年中系統(tǒng)訪問壓力最大的兩天。對于京東而言,618更是這一年中最大的一次考試,考點(diǎn)是系統(tǒng)的擴(kuò)展性、穩(wěn)定性、容災(zāi)能力、運(yùn)維能力、緊急故障處理能力。彈性計(jì)算云是京東2015年研發(fā)部戰(zhàn)略項(xiàng)目,它基于Docker簡化了應(yīng)用的部署和擴(kuò)容,提高了系統(tǒng)的伸縮能力。目前京東的圖片系統(tǒng)、單品頁、頻道頁、風(fēng)控系統(tǒng)、緩存、登錄、團(tuán)購、O2O、無線、拍拍等業(yè)務(wù)都已經(jīng)運(yùn)行在彈性計(jì)算云系統(tǒng)中。
  過去的一段時(shí)間里,彈性計(jì)算云項(xiàng)目在京東內(nèi)部獲得了廣泛應(yīng)用,并且日趨穩(wěn)定成熟。一方面,這個(gè)項(xiàng)目可以更有效地管理機(jī)器資源,提高資源利用率;另外還能大幅提高生產(chǎn)效率,讓原來的申請機(jī)器上線擴(kuò)容逐漸過渡到全自動維護(hù)。京東彈性計(jì)算云項(xiàng)目將深刻影響京東未來幾年的基礎(chǔ)架構(gòu)。
  受訪嘉賓介紹
  劉海鋒,京東云平臺首席架構(gòu)師、系統(tǒng)技術(shù)部負(fù)責(zé)人。系統(tǒng)技術(shù)部專注于基礎(chǔ)服務(wù)的自主研發(fā)與持續(xù)建設(shè),包括分布式存儲、以內(nèi)存為中心的NoSQL服務(wù)、圖片源站、內(nèi)容分發(fā)網(wǎng)絡(luò)、消息隊(duì)列、內(nèi)部SOA化、彈性計(jì)算云等核心系統(tǒng),均大規(guī)模部署以支撐京東集團(tuán)的眾多業(yè)務(wù)。
  InfoQ:能否介紹下京東彈性計(jì)算云項(xiàng)目的情況,你們什么時(shí)候開始使用Docker的?目前有多大的規(guī)模?
  劉海鋒:彈性計(jì)算云項(xiàng)目在去年第四季度開始研發(fā),今年春節(jié)后正式啟動推廣應(yīng)用。經(jīng)過半年多的發(fā)展,逐漸做到了一定規(guī)模。截至6月17日,我們線上運(yùn)行了9853個(gè)Docker實(shí)例(注:無任何夸大)以及幾百個(gè)KVM虛擬機(jī)。京東主要的一些核心應(yīng)用比如商品詳情頁、圖片展現(xiàn)、秒殺、配送員訂單詳情等等都部署在彈性云中。彈性計(jì)算云項(xiàng)目也作為今年618的擴(kuò)容與災(zāi)備資源池,這估計(jì)是國內(nèi)甚至世界上最大規(guī)模的Docker應(yīng)用之一。隨著業(yè)務(wù)的發(fā)展以及IDC的增加,預(yù)計(jì)今年年底規(guī)模會翻兩番,京東大部分應(yīng)用程序都會通過容器技術(shù)來發(fā)布和管理。
  系統(tǒng)架構(gòu)可以這樣簡潔定義:彈性計(jì)算云 = 軟件定義數(shù)據(jù)中心 + 容器集群調(diào)度。整個(gè)項(xiàng)目分成兩層架構(gòu),底層為基礎(chǔ)平臺,系統(tǒng)名JDOS,通過『OpenStack married with Docker』來實(shí)現(xiàn)基礎(chǔ)設(shè)施資源的軟件管理,Docker取代VM成為一等公民,但這個(gè)系統(tǒng)目標(biāo)是統(tǒng)一生產(chǎn)物理機(jī)、虛擬機(jī)與輕量容器;上層為應(yīng)用平臺,系統(tǒng)名CAP,集成部署監(jiān)控日志等工具鏈,實(shí)現(xiàn)『無需申請服務(wù)器,直接上線』,并進(jìn)行業(yè)務(wù)特定的、數(shù)據(jù)驅(qū)動的容器集群調(diào)度與彈性伸縮。
  InfoQ:能否談?wù)勀銈兊腄ocker使用場景?在618這樣的大促中,Docker這樣的容器有什么優(yōu)勢?618中有哪些業(yè)務(wù)跑到Docker中?
  劉海鋒:目前主要有兩類場景:無狀態(tài)的應(yīng)用程序,和緩存實(shí)例。這兩類場景規(guī)模最大也最有收益。不同的場景具體需求不同,因此技術(shù)方案也不相同。內(nèi)部我們稱呼為“胖容器”與“瘦容器”技術(shù)。從資源抽象角度,前者帶獨(dú)立IP以及基礎(chǔ)工具鏈如同一臺主機(jī),后者可以理解為物理機(jī)上面直接啟動cgroup做資源控制加上鏡像機(jī)制。
  618這樣的大促備戰(zhàn),彈性計(jì)算云具備很多優(yōu)勢:非常便捷的上線部署、半自動或全自動的擴(kuò)容。Docker這樣的操作系統(tǒng)級虛擬化技術(shù),啟動速度快,資源消耗低,非常適合私有云建設(shè)。
  今年618,是京東彈性計(jì)算云第一次大促亮相,支持了有很多業(yè)務(wù)的流量。比如圖片展現(xiàn)80%流量、單品頁50%流量、秒殺風(fēng)控85%流量、虛擬風(fēng)控50%流量,還有三級列表頁、頻道頁、團(tuán)購頁、手機(jī)訂單詳情、配送員主頁等等,還有全球購、O2O等新業(yè)務(wù)。特別是,今年618作戰(zhàn)指揮室大屏監(jiān)控系統(tǒng)都是部署在彈性云上的。
  InfoQ:你們是如何結(jié)合Docker和OpenStack的?網(wǎng)絡(luò)問題是如何解決的?
  劉海鋒:我們深度定制OpenStack,持續(xù)維護(hù)自己的分支,稱之為JDOS(the Jingdong Datacenter Operating System)。JDOS目標(biāo)很明確:統(tǒng)一管理和分配Docker、VM、Bare Metal,保證穩(wěn)定高性能。網(wǎng)絡(luò)方面不玩復(fù)雜的,線上生產(chǎn)環(huán)境劃分VLANs + Open vSwitch。SDN目前沒有顯著需求所以暫不投入應(yīng)用。我們以『研以致用』為原則來指導(dǎo)技術(shù)選擇和開發(fā)投入。
  InfoQ:能否談?wù)勀銈兡壳盎贒ocker的workflow?
  劉海鋒:彈性計(jì)算平臺集成了京東研發(fā)的統(tǒng)一工作平臺(編譯測試打包上線審批等)、自動部署、統(tǒng)一監(jiān)控、統(tǒng)一日志、負(fù)載均衡、數(shù)據(jù)庫授權(quán),實(shí)現(xiàn)了應(yīng)用一鍵部署,并且全流程處理應(yīng)用接入,擴(kuò)容、縮容、下線等操作。支持半自動與全自動。
  InfoQ:這么多的容器,你們是如何調(diào)度的?
  劉海鋒:容器的調(diào)度由自主研發(fā)的CAP(Cloud Application Platform)來控制,并會根據(jù)應(yīng)用配置的策略來進(jìn)行調(diào)度;在創(chuàng)建容器的時(shí)候,會根據(jù)規(guī)格、鏡像、機(jī)房和交換機(jī)等策略來進(jìn)行創(chuàng)建;創(chuàng)建完容器后,又會根據(jù)數(shù)據(jù)庫策略、負(fù)載策略、監(jiān)控策略等來進(jìn)行注冊;在彈性調(diào)度中,除了根據(jù)容器的資源情況,如CPU和連接數(shù),還會接合應(yīng)用的TPS性能等等來綜合考慮,進(jìn)行彈性伸縮。
  目前已經(jīng)針對兩大類在線應(yīng)用實(shí)現(xiàn)自動彈性調(diào)度,一是Web類應(yīng)用,二是接入內(nèi)部SOA框架的服務(wù)程序。大規(guī)模容器的自動化智能調(diào)度,我們?nèi)栽谶M(jìn)一步做研究與開發(fā)。
  InfoQ:目前主要有哪些業(yè)務(wù)使用了Docker?業(yè)務(wù)的選擇方面有什么建議?
  劉海鋒:目前有1000個(gè)應(yīng)用已經(jīng)接入彈性云,涵蓋京東各個(gè)業(yè)務(wù)線,包括很多核心應(yīng)用。目前我們主要支持計(jì)算類業(yè)務(wù),存儲類應(yīng)用主要應(yīng)用到了緩存。數(shù)據(jù)庫云服務(wù)也將通過Docker進(jìn)行部署和管理。
  特別強(qiáng)調(diào)的是,業(yè)務(wù)場景不同,技術(shù)方案就有差別。另外,有些對隔離和安全比較敏感的業(yè)務(wù)就分配VM。技術(shù)無所謂優(yōu)劣和新舊,技術(shù)以解決問題和創(chuàng)造業(yè)務(wù)價(jià)值為目的。
  InfoQ:你們的緩存組件也跑在Docker中,這樣做有什么好處?IO什么的沒有問題嗎?有什么好的經(jīng)驗(yàn)可以分享?
  劉海鋒:我們團(tuán)隊(duì)負(fù)責(zé)一個(gè)系統(tǒng)叫JIMDB,京東統(tǒng)一的緩存與高速NoSQL服務(wù),兼容Redis協(xié)議,后臺保證高可用與橫向擴(kuò)展。系統(tǒng)規(guī)模增長到現(xiàn)在的三千多臺大內(nèi)存機(jī)器,日常的部署操作、版本管理成為最大痛點(diǎn)。通過引入Docker,一鍵完成容器環(huán)境的緩存集群的全自動化搭建,大幅提升了系統(tǒng)運(yùn)維效率。
  技術(shù)上,緩存容器化的平臺并不基于OpenStack,而是基于JIMDB自身邏輯來開發(fā)。具體說來,系統(tǒng)會根據(jù)需求所描述的容量、副本數(shù)、機(jī)房、機(jī)架、權(quán)限等約束創(chuàng)建緩存容器集群,并同時(shí)在配置中心注冊集群相關(guān)元數(shù)據(jù)描述信息,通過郵件形式向運(yùn)維人員發(fā)出構(gòu)建流水詳單,并通知用戶集群環(huán)境構(gòu)建完成。調(diào)度方面,不僅會考慮容器內(nèi)進(jìn)程,容器所在機(jī)器以及容器本身當(dāng)前的實(shí)時(shí)狀況,還會對它們的歷史狀況進(jìn)行考察。一旦緩存實(shí)例觸發(fā)內(nèi)存過大流量過高等擴(kuò)容條件,系統(tǒng)會立即執(zhí)行擴(kuò)容任務(wù)創(chuàng)建新的容器分?jǐn)側(cè)萘亢土髁?,為保證服務(wù)質(zhì)量,緩存實(shí)例只有在過去一段時(shí)間指標(biāo)要求持續(xù)保持低位的情況下才會縮容。在彈性伸縮的過程中,會采用Linux TC相關(guān)技術(shù)保證緩存數(shù)據(jù)遷移速度。
  InfoQ:使用過程中有哪些坑?你們有做哪些重點(diǎn)改進(jìn)?
  劉海鋒:坑太多了,包括軟件、硬件、操作系統(tǒng)內(nèi)核、業(yè)務(wù)使用方式等等。底層關(guān)鍵改進(jìn)印象中有兩個(gè)方面:第一,Docker本地存儲結(jié)構(gòu),拋棄Device Mapper、AUTFS等選項(xiàng),自行定制;第二,優(yōu)化Open vSwitch性能。比如,優(yōu)化Docker鏡像結(jié)構(gòu),加入多層合并、壓縮、分層tag等技術(shù),并采用鏡像預(yù)分發(fā)技術(shù),可以做到秒級創(chuàng)建容器實(shí)例;優(yōu)化Open vSwitch轉(zhuǎn)發(fā)層,顯著提升網(wǎng)絡(luò)小包延遲。
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?