4

每當我需要移動到新機器,或者拿到筆記本電腦,或者搞砸了我時,我開始厭倦設置所有開發工具註冊表不斷的安裝和卸載。關於在虛擬機中運行我的開發工具的建議

這麼新的計劃。我聽說過人們虛擬化他們的開發環境,這聽起來像個好主意。唯一的問題是我沒有足夠的經驗來運行虛擬機,所以當我只是不知道時,我會做我總是這樣做的,我問的是stackoverflow。

您是否在虛擬機中運行開發環境?我應該注意什麼?有什麼非顯而易見的優勢?

我已經在戴爾Optiplex 760上安裝了VMWare服務器的免費版本,XP在我公司的Active Directory域中。

其中我創建了一個名爲Dev Tools並安裝了XP的25 gig虛擬機,它不在任何域中。這是Visual Studio,TortoiseSVN,Git,Ruby,Toad等要去的地方。我還將創建一個用於存儲代碼文件的虛擬磁盤。

一些其他問題:

  • 我應該做我的日常網頁瀏覽的主機上,或者我應該旋轉起來另一個虛擬機呢?在決定是否將非開發應用程序(如GIMP)安裝到主機或新VM時,使用什麼經驗法則?
  • 我的開發數據庫呢?應該得到它自己的VM嗎?
  • 什麼是身體硬派的最佳安排?我應該避免讓主機和客戶端虛擬機在同一個虛擬機上嗎?我正在計劃購買SSD - 我如何優化它將提供的速度?
  • 開發沒有管理員權限的.NET是一個痛苦的屁股,但我應該打擾作爲管理員在我的主機上運行?
  • 備份我的25臺gig開發工具機器的任何優秀解決方案?你多久進行一次備份?我不想從現在開始恢復它,並且不得不花費幾天更新那裏的每一個應用程序。

回答

2

虛擬機就是......機器。瀏覽你想要的地方。我在我的主機上瀏覽,但我也使用Foxmarks保持機器之間的同步,所以我瀏覽的內容並不重要。

如果你的主機盒上有磁盤,CPU和RAM,我建議在另一個盒子上設置數據庫。如果需要,可以稍後將其輕鬆移動到其他地方(即使是物理主機)。它也迫使你在一個(可能)更真實的情況下工作,讓db機器遠離app機器。

如果你可以擺動它,在不同的物理磁盤和控制器上擁有VM硬盤映像(或更好的原始HD訪問)通常會提供更好的性能。儘管如此,我不會爲一般的開發箱擔心太多。

通常,在開發環境中作爲管理員運行是意外存在訪問依賴性問題的好方法。最低特權原則適用。

3

我發現它非常適合使用虛擬機操作系統進行開發而不是基本操作系統。在工作良好的情況下輕鬆備份整個開發環境的能力,如果發生可怕的事情,在5分鐘內恢復它是一種解脫。

我們的團隊在安裝了所有開發人員工具的情況下使用了參考虛擬機。新開發人員將獲得參考虛擬機的副本,並可隨意使用它。我們使用了一個包含IDE,客戶端,應用服務器和數據庫服務器的虛擬機,因爲這樣做使一切變得簡單。我不認爲把這些放在不同的虛擬機中會提供任何優勢。

對於網頁瀏覽,我發現是否在虛擬機或基本操作系統上執行操作並不重要 - 大部分時間我只是使用虛擬機。至於自定義應用程序,它們通常安裝在基本操作系統上。有幾次,團隊成員(包括我自己)遇到了問題,或者犯了一些錯誤,導致其開發環境的某些部分搞砸了。我們不再花費數小時來解決問題,而是再次獲取參考虛擬機,更新代碼並重新開始。所以最好不要與虛擬機捆綁在一起 - 在基本操作系統上安裝自定義應用程序,並將重要內容保存到基本或網絡驅動器中,以便快速更換。

+1

+1易於重新成像的可能性和快速設置新開發盒的能力是一個真正的優勢 – Paolo 2009-12-29 19:00:25

+0

IMO這就是大型企業IT部門應該如何處理開發PC。限制基本操作系統,但爲開發人員提供具有管理權限的虛擬機。 – 2009-12-29 20:06:40

1

我有一個虛擬機,用於每種Web開發。一個用於.NET的東西,一個用於PHP的東西,另一個用於演示新技術或工具。與我無關的事情發生在我的正常桌面上(Word,遊戲,瀏覽娛樂,CD刻錄工具等)

我可以在我的網絡和任何機器上移動這些虛擬機,也可以輕鬆地扁平化一臺新機器,而無需再擔心重新配置整個開發環境。在我的腦海裏,不會混淆工作和愉悅,這讓我很容易。一旦我啓動開發虛擬機,我處於工作模式,所以我全屏幕並開始工作。我無法玩遊戲或通過書籤訪問我的Twitter,所以我感覺效率更高。

我要留意的重大問題是讓您的虛擬機快速運行。建議使用這樣的第二塊磁盤,固態硬盤,優化客戶端操作系統和其他方面的東西(我沒有很好的處理方法),使得打字速度更快。如果您無法以與普通桌面相同的響應速度鍵入IDE,則從長遠來看,您可能不會使用虛擬機。

2

我喜歡將虛擬機用於開發服務器,如數據庫,apache等。實際的開發工作在我的主機上,在那裏我有我的代碼庫和emacs。因爲我更喜歡linux,所以備份我的代碼和工作區配置可以在git或rsync中完成,並且允許我在任何地方快速建立開發工作區。我喜歡認爲我每月大約備份一次虛擬映像,而這些虛擬映像是在兩臺機器上鏡像的。

相關問題