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