infoq:能否介紹下目前gaia平台的狀態?你們什麼時候開始使用docker的?有多大的規模?
除了yarn之外,其實我們對docker本身也做了一定的修改和bug修復,對於registry等服務也做了優化,保證了其服務的高可靠和效能。
實現方面,我們並沒有使用社群提供的docker排程器,我們研發gaia的時候社群還沒有相應的排程器,並且我們也有特殊要求,需要同時支援同時支援docker型別應用和非docker型別應用。
infoq:你們如何確定哪些業務適合使用docker?
羅韓梅:我們認為,docker提供了一種在安全、可重複的環境中自動部署軟體的方式,拉開了基於雲計算平台發布產品方式的變革序幕,因此,其實docker對於gaia來講,只是乙個選擇,我們並不主動向業務推廣docker,而是docker on gaia的整套方案,所以,我們對於需要共享資源、降低成本,需要支援快速的動態擴容縮容、容災容錯,以及大規模分布式系統尤為建議使用docker on gaia。infoq:能否詳細介紹下你們對docker以及registry做了哪些優化?
羅韓梅:對於docker,我們主要做了三個方面的優化:首先是bug修復,比如docker非0退出時rm不生效,對於bindmount為true時config path無法清除等bug。其次是優化docker的資源管理策略,比如記憶體的hardlimit的管理策略,不但使使用者程序容易被kill,更加造成了資源的浪費,對使用者估計自己業務的資源需求也非常高。gaia引入了emc(elastic memory control)的彈性記憶體管理機制。最後乙個方面是資源管理緯度,docker在資源管理緯度方面只有cpu和記憶體兩個維度,這對於共享的雲環境下需要完善,也是目前相對於虛擬機器不足的地方。gaia引入磁碟容量管理,網路出入頻寬控制以及磁碟io的控制維護。其實不僅僅在docker層做控制,還將會引進排程器,不但實現資源的隔離,還要實現資源的保證。infoq:能否介紹下目前的乙個workflow?對於registry的優化,主要有下面幾個方面:
容量問題。開源的registry是單機模式,其容量會受單個機器的限制。我們修改儲存driver,取締原有的mount方式,開發後端儲存driver,直接使用hdfs,實現了儲存的無限容量。
可靠性和可用性的問題。單機版本的docker registry,其可靠性和可用性都成了最大的問題,我們引入資料平台部的tpg系統,實現registry server的無狀態化,便於實現服務的高可用性。
效能問題。將單機版的registry擴充套件成registry集群,並實現在registry server pool中的負載均衡,提公升效能。
網路問題。解決了全國不同idc的gaia集群對registry的訪問,採取就近訪問的原則,不產生跨idc流量。
自動同步官方映象。docker提供的官方映象中,有很多還是非常有價值的,而官方的registry又在牆外,為此,我們自動同步docker的官方映象到我們的私有倉庫中。
羅韓梅:目前使用docker on gaia的方式有三種:1)通過gaia portal;2)直接呼叫gaia api;3)通過上層各種paas平台透明間接使用gaia。比如在第一種方式中,使用者通過gaia portal提交應用,之後gaia排程器會自動分配資源,並且部署、啟動docker容器,使用者可以在portal上直接檢視每個例項的狀態、日誌、異常等,甚至可以直接通過webshell登陸。同時,也可以根據需求對應用進行擴容、縮容、重啟,以及灰度變更、停止例項/應用等操作。infoq:目前平台主要部署了哪些服務?服務之間的排程是如何實現的?
infoq:萬台規模的docker容器,網路問題是如何解決的?
羅韓梅:網絡卡及交換鏈路的頻寬資源是有限的。如果某個作業不受限制產生過量的網路流量,必然會擠占其它作業的網路頻寬和響應時延。因此gaia將網路和cpu、記憶體一樣,作為一種資源維度納入統一管理。業務在提交應用時指定自己的網路io需求,我們使用tc(traffic control)+ cgroups實現網路出頻寬控制,通過修改核心,增加網路入頻寬的控制。具體的控制目標有:在某個cgroup網路繁忙時,能保證其設定配額不會被其他cgroup擠占;
在某個cgroup沒有用滿其配額時,其他cgroup可以自動使用其空閒的部分頻寬;
在多個cgroup分享其他cgroup的空閒頻寬時,優先順序高的優先; 優先順序相同時,配額大的占用多,配額小的占用少;
儘量減少為了流控而主動丟包。
張北將成規模150萬台伺服器的雲計算產業基地
作為張北雲計算產業集聚區的重要部分,張北雲聯資料中心 張北資料港資料中心將於近期試執行。隨後,北京多家網際網路企業將陸續把資料中心遷到張北雲計算產業集聚區。屆時,張北縣風光旖旎的草原上將建起北京大資料的 後花園 形成規模達到150萬台伺服器的雲計算產業基地。張北縣地處發展雲計算的 緯度 地區,是距離...
Ant 大規模應用中的應用
large scale 的應用通常意味著 目錄較多,層次較深 依賴較多,構建指令碼依賴的第三方ant task,專案依賴的第三方庫等 測試較多,構建時間反饋週期較長 需要在不同作業系統上執行 需要在不同團隊成員的機器上執行 由於以上原因,導致ant指令碼較長 通常有兩種風格的解決方案 一是使用ant...
docker搭建大規模測試環境的實踐
當今網際網路行業發展迅速,產品架構逐漸複雜,導致環境搭建困難。測試環境不一致。因為搭建環境困難,環境不多,所以一套環境有多人使用,容易造成環境的互相踩踏問題。隨著業務的發展和時間的積累,我們發現case越來越多。我們希望能夠用分布式的執行方式在多台機器上併發執行,以提公升執行速度。但是測試機器稀缺,...