資源調(diào)度一般分為兩個階段:一是實現(xiàn)物理資源的虛擬化(即資源的抽象)由于當(dāng)前機器的性能越來越好,硬件配置越來越高,直接用物理機跑業(yè)務(wù)比較浪費,所以將物理機分割成更小單位的虛擬機,這樣可以顯著提升機器的利用效率,在公司內(nèi)部一般采用容器技術(shù)來隔離資源。二是將資源虛擬化后進一步在時間和空間上實現(xiàn)更細(xì)粒度的編排、優(yōu)化資源的使用。
1.一些數(shù)據(jù)
如果公司的幾萬臺機器都是物理機,那么資源的使用率稍低:CPU、內(nèi)存和硬盤使用率都較低,例如大部分 proxy代理機器對內(nèi)存和CPU的要求都比較低,我們完全可以用一個4核8GB內(nèi)存的容器替代一臺物理機。
經(jīng)過簡單的計算,我們將物理機(48核120GB)進行容器化(4核8GB),一臺物理機可以當(dāng)成12臺機器使用,使用率可以提升12倍。由此可見,將物理資源統(tǒng)抽象成統(tǒng)一的虛擬資源對提升效率非常有用。
2.資源調(diào)度提升穩(wěn)定性和運維效率
對物理機資源進行虛擬化可以提升資源的利用率,而對資源的良好調(diào)度可以提升業(yè)務(wù)的穩(wěn)定性和運維效率, Docker p的火爆也驗證了這一點,很多公司也在進行 Docker化改造,原因如下。
(1)提升運維效率。 Docker I的火爆很大程度要歸因于它解決了應(yīng)用的標(biāo)準(zhǔn)化運維問題,使得應(yīng)用的部署和運維變得非常簡單,只需要一個鏡像就可以部署,使服務(wù)的應(yīng)用依賴和部署自動化,減少了人為的干預(yù)。
(2)提升穩(wěn)定性。既然可以做到標(biāo)準(zhǔn)化的部署,那么就可以把應(yīng)用和運行的機器解耦,解耦后,硬件的差異和故障不會影響上層的應(yīng)用,就可以做彈性伸縮和調(diào)度了。
3.統(tǒng)一資源抽象
將網(wǎng)站制作物理資源統(tǒng)一抽象成可以定制化的集合,對上層應(yīng)用屏蔽時間和空間上的差異即應(yīng)用不用關(guān)心跑在哪臺物理機上、哪個機房甚至哪個數(shù)據(jù)中心,不用擔(dān)心宕機的影響,在資源不夠用時還可以自動擴容。