3 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
我一直很喜歡Vagrant這個(gè)工具,兩三年前就用它來進(jìn)行自己項(xiàng)目的環(huán)境維護(hù),那時(shí)候主要是做測試,由于Vagrant將操作系統(tǒng)環(huán)境進(jìn)行了標(biāo)準(zhǔn)化,我很容易就能讓自己的應(yīng)用系統(tǒng)以及相關(guān)的測試結(jié)果保持穩(wěn)定。
Vagrant還有一個(gè)好處,Ruby社區(qū)比較偏愛Mac,但是線上的系統(tǒng)基本都是Linux,所以開發(fā)環(huán)境所做的測試是有疑問的,特別是遇到一些有so依賴的gem,這時(shí)一個(gè)和線上完全一樣的環(huán)境就特別重要。
其實(shí)上面的表述不太準(zhǔn)確,Vagrant也有各種provider,我所說的場景,基本上都是virtualbox的provider,所以這些地方正確的說法是 vagrant/virtualbox。
和Docker相比,vagrant/virtualbox組合的成本還是很高的,無論是setup一個(gè)環(huán)境還是reset一個(gè)環(huán)境,都需要一段時(shí)間的等待,Vagrant只是把virtualbox的操作DSL了而已,底層的做法沒有變化。而Docker由于本質(zhì)上就是一個(gè)進(jìn)程,因此天生就是輕量級(jí)的。對于運(yùn)行時(shí)間在分鐘級(jí)別的自動(dòng)化測試工作,Docker顯然有很大的優(yōu)勢。
當(dāng)然,也有人會(huì)認(rèn)為Docker不能模擬完整的操作系統(tǒng),不過這恐怕是一個(gè)優(yōu)點(diǎn)而不是缺點(diǎn)。我在以前的文章中已經(jīng)說過了,這里概述一下主要觀點(diǎn)——
Docker簡化了操作系統(tǒng)這個(gè)基礎(chǔ)設(shè)施,讓應(yīng)用精簡為其最核心的形態(tài)——攜帶有限資源的進(jìn)程,在此基礎(chǔ)上更有利于架構(gòu)上的最佳實(shí)踐。
而對Ruby工程師而言,這個(gè)“最佳實(shí)踐”中肯定少不了的一條就是——微服務(wù)。
添加回答
舉報(bào)