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