運行Docker:物理機vs虛擬機,五方面詳細對比!

從2013年3月dotCloud公司發佈第一個版本的Docker以來,已經有越來越多的公司將自己的線上業務跑在了Docker裡面,大量的實戰經驗證明Docker是一種值得信賴和擁抱的技術。不論網上,還是各種技術交流會上,大家也都在交流Docker的使用經驗,Docker的話題很多,本篇就針對“Docker運行在物理機還是雲主機上,該如何選擇?”這個話題展開討論。

對於這個問題,很多朋友第一反應可能是先找找官網有沒有類似的較佳實踐,筆者也順著這個思路來,在搜索之後發現Docker官方並不要求你一定要將Docker跑在物理機或者雲主機上,它更關注的是應用而非基礎架構,無論是物理機,還是雲主機,無論你的操作系統是CentOS,Fedora,Ubuntu,Debian,MAC,Windows它都支持。

官方沒有明確的較佳實踐,那對於新用戶來說怎麼辦呢?

習慣性的想到了另一條路“借鑑”;對於新用戶,借鑑是個不錯的選擇,看看大公司都是怎麼用的,比如BAT,京東,網易他們是怎麼用的。不過就筆者在與這些公司的朋友交流之後發現,這條路似乎也給不了我們答案。他們的Docker跑在物理機和雲主機裡面都有,大家也都用的很好。

兩條途徑都給不了我們現成的答案,那看來只能靠自己了。

明確了Docker在物理機和雲主機裡面都能跑,而且每個場景也都有人在線上用,那我們就來比較一下,各種的優勢和不足,簡單點就從五個關鍵字出發。

1.性能

性能包括CPU性能和IO性能,相同配置的情況下,物理機都是勝出的,這點源自於雲主機的硬件都是由軟件模擬出來的(passthrough硬件給雲主機的情況,暫不考慮,因為一般情況下passthrough的雲主機很難得到,且成本較高),性能到底損耗多少呢?

國外有人做過相關的測試,使用了一臺8核32G Amazon EC2 m4.2xlarge 雲主機和一臺8核32G的物理機進行對比測試,測試的結果是物理機上比雲主機上運行Docker,在IO和CPU方面要快25%-30%,當然這個結果只能代表他的測試場景,但大家也可以參考他的測試方法,在自己的環境裡面親測一下。25%-30%的性能優勢,物理機完勝;(附上鍊接性能測試連接

https://www.stratoscale.com/blog/containers/running-containers-on-bare-metal/ )。

2.多租戶

同一個Docker節點,如果多人使用,且對於某些用戶的工作負載無法共享內核或者需要監聽相同的端口。在這種情況下,因為雲主機提供了額外的隔離層,所以是物理機無法滿足的,雲主機完勝。

3.自動化

自動化,是目前大家都繞不開的話題,因為對於繁瑣重複的事情,誰都不喜歡天天干(特別是運維),所以大部分公司,都有運用自動化,差別在於大公司有完整的平臺,小公司有一堆腳本。

目前各大雲基本都有各自的API,可以非常方便的管理自己的雲主機,創建,刪除,都非常方便。但是對於物理機的API,這個就非常困難了,因為涉及到不同的型號,使用IPMI也需要做大量的適配,目前能提供物理機租賃的雲廠商也沒有好用的API提供給用戶。所以當需要臨時搞活動的時候,結合自動化/API, 將Docker跑在雲主機上是能滿足需求的方案。

4.靈活性

靈活性包括兩方面,一是服務器配置調整;雲主機配置調整,只需要關機,頁面升配,開機,整個升配過去1-2分鐘就能搞定;物理機調整配置,首先需要確認是否支持,比如硬盤槽位夠不夠,服務器網口夠不夠,網線是否布好,交換機口夠不夠等等,即使可以升配,那升級硬盤還要系統裡面重新做raid,升級內存還需要開機箱等等,一系列繁瑣的操作,最終完成升配那最快也需要幾個小時。1-2分鐘 PK 幾個小時,雲主機完勝。

二是用戶配額,雲主機的配置是靈活的,可定製的,比如某個用戶,需要搭建一套測試環境,需要8核16G的資源就夠了,這種情況下,一臺雲主機即可滿足。但如果使用物理機的話,就非常不靈活了,因為物理機在採購的時候,通常是一個規格的,不可能窮舉不同的規格。所以這一點上,雲主機完勝。

5.災難恢復

硬件故障,這個誰都無法完全避免,那麼出現故障的時候,恢復一臺雲主機和恢復一臺物理機哪個更快?目前的公有云,很多都採用的計算節點和存儲節點分開的架構,存儲節點做了高可用,所以計算節點出現硬件故障時,只需要將雲主機做遷移,再開機即可完成故障恢復。時間可以控制在5分鐘內完成。

物理機故障恢復,首先需要判斷是什麼故障,一般硬盤故障都不影響系統(物理機硬盤都會做raid進行保護),內存故障,主板故障,如果有備機,那可以進行更換至少30分鐘+,如果沒有備機,那就需要報修,派單,上門更換,整個流程走完需要1-2天(這個還取決你購買的服務,服務器是否過保等等);5分鐘 PK 1-2天,雲主機完勝。


分享到:


相關文章: