Hardwareanforderungen für 100 virtualisierte Hochleistungs-Windows 7-Desktops?

7

Wir überlegen, ob wir später in diesem Jahr Client Hyper-V oder VMWare Player Pro zu neuen Windows 10-Desktops hinzufügen sollen, und lassen unsere Entwickler ihre Entwicklertools in einer Windows 7-VM auf ihrem lokalen Desktop ausführen. Aus Sicherheitsgründen haben sie keine Administratorrechte auf ihrer lokalen Workstation, die nur zum Hosten ihrer VMs und für Büroarbeiten verwendet werden, für die keine Administratorrechte erforderlich sind (z. B. E-Mail, Web, Microsoft Office usw.).

Die Entwickler hätten stattdessen Administratorrechte auf den VMs. Die VMs befinden sich in einem isolierten Netzwerk-VLAN und einer AD-Domäne ohne Internetzugang und ohne direkte Dateiübertragung oder Netzwerkzugriff zwischen der VM und dem Host. Die Benutzer werden alle ihre Entwicklungen und Tests innerhalb der VMs durchführen.

Ich konnte keinen echten "Player" für virtuelle Maschinen finden, der nur die Verwendung vorhandener VMs und die Erstellung neuer VMs bei der Installation auf einer Workstation ermöglicht.

Client Hyper-V funktioniert überhaupt nicht, es sei denn, die Benutzer haben entweder lokale Administratorrechte auf dem Hostcomputer oder sind Mitglieder der Gruppe der Hyper-V-Administratoren, wodurch sie die VM-Einstellungen unbegrenzt konfigurieren können, wodurch sie sich ziemlich einfach fortbewegen können Einschränkungen auch ohne Administratorrechte auf dem Host. VMWare Player ist nicht nur ein Player. Es ermöglicht auch das Erstellen neuer VMs, auch ohne Administratorrechte.

Gibt es eine alternative VM-Software, die die Verwendung vorhandener VMs auf ihrer lokalen Workstation ermöglicht, jedoch keine VM-Hardware hinzufügt oder neu konfiguriert?

Wenn dies nicht möglich ist, wie können wir in Hyper-V einen hochverfügbaren virtuellen Server erstellen, der die Leistung bietet, die für umfangreiche Softwareentwicklung, lange Abfragen und Builds sowie Debugging usw. erforderlich ist. Viele Entwickler arbeiten mit 10 oder mehr laufenden Anwendungen zur gleichen Zeit und haben 16 GB RAM auf ihren aktuellen Systemen.

Ich würde also vermuten, dass wir zwei sehr leistungsstarke Server mit einer großen Menge an RAM benötigen würden, um 100 VMs mit hohem Speicher gleichzeitig und eine Art virtuelles SAN auszuführen. Außerdem werden Speicherplatz und E / A benötigt, um 100 ausgelastete Workstation-VMs zu verarbeiten.

Wenn es 100 VMs gäbe, könnten wir jeweils 50 in einem 2-Mitglieder-Failovercluster ausführen. Wenn einer ausfällt, muss der andere problemlos in der Lage sein, die Last aller 100 zu bewältigen. Wir könnten auch geplante Live-Migrationen durchführen, um die Wartung eines solchen Windows Update-Neustarts auf den Hosts durchzuführen. Wir benötigen dann SCVMM, um sie zu verwalten und den Benutzern einen privaten Cloud-Zugriff zuzuweisen, damit sie auf die VMs zugreifen und Prüfpunkte auf ihren Software-Test-VMs erstellen / zurücksetzen können.

Da wir nur über begrenztes Geld verfügen, was wäre ein kostengünstiges Hardware-Design, mit dem dies funktionieren könnte (Serverspezifikationen usw.), und welche Preisspanne würden wir voraussichtlich mit Hardware eines Herstellers wie Dell oder HP usw. zahlen?

Wenn die Kosten astronomisch sind, kehren wir zum Plan zurück, VMs lokal auf Workstations hinzuzufügen, und versuchen, Wege zu finden, um die Benutzer daran zu hindern, nicht autorisierte VMs zu erstellen.

15SX
quelle
12
Haben Sie unbedingt benötigen , um Stop - Entwickler von ihrer eigenen VMs erstellen oder das Netzwerk zugreifen? Sind Sie 100% sicher? Oder war das nur eine "Anforderung", die ohne Angabe von Gründen von oben auferlegt wurde?
Michael Hampton
4
Das Ausführen von 50 Hochleistungs-Entwicklungsdesktops auf einem gemeinsam genutzten Server klingt in Bezug auf die Leistung wie ein Albtraum. Wir haben einige Tests mit vdi dev durchgeführt. Die Ergebnisse stimmten mit mehreren Einschränkungen überein, die in (empfohlene Lektüre) erwähnt wurden: brianmadden.com/blogs/brianmadden/archive/2013/05/16/…
ErikE
Der Titel der Frage ist keineswegs repräsentativ für den Inhalt der Frage.
TJ Crowder
13
Der Internetzugang und die Möglichkeit, Software herunterzuladen, sind ein unverzichtbarer Bestandteil des Toolset eines jeden Entwicklers. Ich würde mich weigern, in Ihrer Umgebung zu arbeiten, und wenn mir diese Einschränkungen nach der Anmeldung auferlegt würden, würde ich einen neuen Job finden. Viel Glück, etwas zu erreichen.
Ex Umbris
1
Ich muss dem Ende von Zrins Antwort zustimmen. Sie versuchen, ein soziales / politisches Problem in ein technisches zu verwandeln. Behandeln Sie Ihren Entwickler als Erwachsene. Sie sollten sich auf die Arbeit konzentrieren und keine neuen VMs erstellen.
thing2k

Antworten:

12

Wie wäre es damit, dies umzudrehen:

Die Workstations befinden sich in einem gesicherten LAN. Der Internetzugang ist mit einem Proxy auf eine Reihe von Websites auf der weißen Liste beschränkt, die Entwickler benötigen - wie StackExchange :). Entwickler haben Administratorrechte auf den Workstations.

Für alle anderen Anforderungen können sie eine Verbindung zu einer VM herstellen und haben (externe) E-Mail- und möglicherweise vollständigen Internetzugang, jedoch keinen Zugriff auf die arbeitsbezogenen Daten.

Auf diese Weise ist die erforderliche Leistung von VMs erheblich geringer. Vielleicht ist auch die Anzahl von ihnen geringer. Möglicherweise können Sie VMs bei Bedarf dynamisch zuweisen.

Die Hardwareanforderungen hängen stark von der erforderlichen Leistung ab, aber ich persönlich würde mich für ungefähr 10 billige Knoten mit 8 Kern-CPUs und 32 GiB RAM und jeweils einem sehr schnellen SSD-RAID entscheiden - und für eine ziemlich automatisierte Wartung. Dies gilt für den Fall, dass die VM nicht die Hauptarbeitsstation, sondern die Hilfsmaschine ist.

IIUC, Ihr Anliegen hier ist die Sicherheit des Codes und der Dokumentation, und Sie möchten ein System haben, in dem Sie den Entwicklern nicht vertrauen müssen (zu viel).

Ich habe eine sehr ähnliche Aufgabe für einen meiner Kunden, nur CAD statt Softwareentwicklung. Dies ist größtenteils ein soziales Problem, das wir mit technischen Mitteln lösen wollen.

Wie können Entwickler effizient arbeiten, ohne ständig und bequem auf programmierbezogene Websites und die StackExchange-Familie zugreifen zu müssen? :) :)

Zrin
quelle
3
+1 für das Umdrehen.
ErikE
3
Wenn alle VMs nur surfen und im Büro arbeiten, können Sie sie stark überzeichnen. Es sind keine 80 CPU-Kerne für 100 VMs erforderlich, von denen jede durchschnittlich 10% der unkorrelierten CPU-Auslastung aufweist.
usr
1
@usr stimmt, aber wenn die Hardware so billig ist, würde ich mir eher Sorgen machen, dass die Entwickler mich als Geizhals ansehen würden, als die Hälfte der Kerne im Leerlauf zu haben. Auf jeden Fall kann man mit weniger beginnen und dann nach Bedarf weitere Knoten hinzufügen.
Zrin
1
Ja, vielleicht wird es so umgeschaltet, dass die physische Box die Entwicklungsbox ist, anstatt dass die VM die Entwicklung ist. Wir müssten dann den Internet- und E-Mail-Zugriff aus dem regulären LAN entfernen, in das die physischen Boxen eingesteckt sind, und die VMs in einem getrennten VLAN verwenden, um Dinge auszuführen, die externen Zugriff erfordern (E-Mail, Surfen im Internet, Sofortnachrichten usw.). Ich würde vermuten, dass wir VDI mit Outlook, IM-Clients, Browsern, Webkonferenz-Clients usw. auf weniger teurer Serverhardware ausführen können.
15SX
1
Wenn Sie die Installationsmöglichkeiten der Entwickler einschränken, müssen Sie sicherstellen, dass die Autorisierung der Software schnell erfolgt. Wenn die Software abgelehnt wird, muss es einen sehr guten und klaren Grund geben. Haben Sie sich auch in Bezug auf Software die Whitelist angesehen? Es gibt Tools in Win7 Enterprise und einige, wenn nicht die meisten Enterprise AV-Systeme. Nur ein Gedanke.
thing2k