Security

開發人員在企業環境中執行自己的 VM 伺服器需要什麼

  • January 25, 2015

這個場景也發佈在 SO 上,針對不同的觀眾提出了不同的問題——我很高興我這樣做了,因為我收到了一些非常好的回复。

我們正在嘗試為企業組織內的一個由 4 名開發人員組成的小型團隊使用虛擬化實現開發環境。這將允許我們建立單獨的開發、測試和登台環境——以及允許訪問我們正在評估的系統或工具所需的新作業系統。

我們重新使用了一台現有的工作站級機器,投入了 24GB RAM 和 RAID-10,並且在我們嘗試將機器添加到域之前做得很好。

現在,我們開始了所有企業開發人員從一開始就必須進行的戰爭——爭奪開發和測試環境的本地控制權。網路和 IT 管理員提出了許多問題,從“ESX 伺服器是企業標準”到“客戶端 VLAN 上不允許伺服器”到“

$$ fill-in-the-blank $$不是本地或企業 IT 組織目前擁有的技能組合”。 我們可能可以證明生產級硬體和正式的 IT 支持是合理的(閱讀:如果必須,我們可以證明需要,但這需要時間並且涉及很多令人頭疼的問題)——但正式獲得 IT 資源可能需要幾個月的時間通過將其視為生產系統來分配 - 即使我們這樣做了,我們也可能會失去我們想要的本地控制。

我想你們中的許多人在開發人員控制非生產環境方面與企業內的開發人員有過類似的鬥爭,所以我的問題如下:

  1. 您的開發人員提出了哪些論據,讓您支持這些類型的孤島存在於企業中,這些孤島具有標準的網路和安全策略,通常(並且可以理解)排除這種類型的非(集中)管理的基礎設施?
  2. 這只是開發人員提出技術或業務理由並確保更新檔管理和 AV 將會發生的問題 - 還是更多的控制權和所有權的政治鬥爭?
  3. 如果可以選擇,您是更願意在授予開發人員本地管理員權限的同時獲得硬體/作業系統的所有權和支持,還是讓他們完全管理它,同時確保他們建立更新檔管理/AV 並在它們引起問題時向他們收取責任?
  4. 如果您成功阻止了開發人員對您的基礎設施上的“流氓伺服器”進行本地控制,那麼開發人員是否只是應得的,或者他們(或您)是否將開發環境移動到斷開連接的 VLAN/完全獨立的網路?

限制此問題範圍的幾個假設:

  1. 重申一下,這是針對開發環境的——不需要生產負載或可支持性。沒有任何外部可訪問的。
  2. 這不是 Hyper-V 與 ESX 的聖戰(我們都可以接受 - 但選擇 Hyper-V 是因為它在 MSDN 中“免費”用於這些目的$$ yes, VMWare has free tools too - but the good management tools generally aren’t $$,並且本地開發人員在“Microsoft Shop”中更容易管理) - 因此支持或反對任何一個的論點都超出了這個問題的範圍。
  3. 開發團隊已經保證管理更新檔管理和防病毒,或者在 IT 支持的情況下與現有的企業系統集成 - 但無論您是否願意接受,這肯定在範圍內。

首先,我確實看到了您的管理員拒絕的一些原因:

  • IT 還負責報告更新檔管理、防病毒軟體、pci 合規性、年度(或更頻繁的)安全審計等。這不僅僅是讓您保證這些事情得到解決的問題,而且還需要能夠向外界證明。

例如,我在一所小型大學執行網路,我們有一個物理實驗室,裡面有一些數據收集機器用於學生實驗。他們唯一要做的就是從科學儀器中收集數據並列印出結果(直接連接到列印機),供學生分析並交給教師。它們永遠不會在網際網路上——甚至 AV 和 Windows 更新都是通過本地網路應用的。它們連接到網路並執行 AV 軟體的唯一原因是向我的監控軟體報告它們仍然存在並且是最新的明確目的。這很愚蠢,因為他們實際上移除網路連接會安全,但他們首先是通過教育補助金支付的,所以這些是我的報告要求。

  • 不管你喜不喜歡,*從開發人員的角度來看,你的開發伺服器是一個生產系統。*給它一個月的時間,如果由於您將設置的程序假設伺服器可用而導致工作失敗,開發人員將很難完成工作。避免/限制員工因技術故障而閒置的情況是企業仍然使用集中式 IT 部門的一個重要原因。
  • 如果“ESX Server 是企業標準”,您需要遵循這一點。目前,hyper-v、vmware、xen 和其他人的工作方式之間存在顯著差異,不能僅僅假設為一個機器建構的機器在另一個機器上執行良好。如果您要這樣做,IT 將需要在某個時候幫助管理它,並且他們不想在機器上有一堆可能導致問題的雜物之後將其轉換為 vmware。
  • 總有一天,這台機器會變舊,要麼需要更多的定期維護,要麼設置一個標準的更換週期。即使是新伺服器有時也會出現故障。這種情況幾乎總是發生在 IT 部門出現問題之後,導致人們無法完成工作。通過及早負責伺服器,IT 可以做得更好,確保您避免未來的計劃外中斷。
  • 這是個人的,但我可以告訴你,我不想在我的網路周圍做的事情是另一個偽裝成伺服器的桌面。在過去的幾年裡,我已經處理了足夠多的事情來維持我的一生。

也就是說,IT 需要能夠支持這一舉措。他們僅僅說“不”是不夠的。挑戰他們提出滿足您(非常真實)需求的替代方案。這裡唯一的政治情況應該是他們的替代方案可能有更高的標價(因為他們正在計劃你還看不到的成本),所以問題將是誰必須為此買單。IT 不會想要,因為他們沒有為此做預算,但您會猶豫,因為這是您為(目前)滿意的解決方案所花費的 6 倍。

此外,聽起來您可能會在走路之前嘗試跑步。你想改進你的開發過程。作為一名前開發人員,我認為這很棒。但不要只扔掉一堆虛擬機和“環境”(即:dev、stage、qa 等)。規劃新流程的外觀——開發人員將如何完成工作。你會使用持續集成嗎?自動化建構?使用什麼軟體來支持他們?是否允許開發人員將程式碼移動到生產或登台,還是只有 QA 才有這種能力?您需要單獨的分期嗎?兩個開發分支(一個用於 vNext,一個用於 vCurrent 的錯誤)呢?

您可能需要一台伺服器,以便開發主管或經理可以解決所有問題,但如果是這樣,那麼這需要成為第一步,並且需要在開發人員實際使用之前完成設置和初始流程設計採用。

引用自:https://serverfault.com/questions/316200