Wir versuchen, eine Entwicklungsumgebung mithilfe von Virtualisierung für ein kleines Team von 4 Entwicklern innerhalb einer Unternehmensorganisation zu implementieren. Dies würde es uns ermöglichen, separate Entwicklungs-, Test- und Staging-Umgebungen einzurichten und den Zugriff auf neue Betriebssysteme zu ermöglichen, die Anforderungen an Systeme oder Tools sind, die wir evaluieren. Wir haben einen vorhandenen Computer der Workstation-Klasse neu konzipiert, 24 GB RAM und RAID-10 eingebaut und es ging uns gut, bis wir versuchten, den Computer zur Domäne hinzuzufügen.
Jetzt beginnen wir den Krieg, den alle Unternehmensentwickler seit jeher führen mussten - den Kampf um die lokale Kontrolle einer Entwicklungs- und Testumgebung. Die Netzwerk- und IT-Administratoren haben Bedenken geäußert, die von "ESX Server ist der Unternehmensstandard" über "Server sind in Client-VLANs nicht zulässig" bis zu "[Fill-in-the-Blank] sind keine Fähigkeiten, die derzeit auf lokaler Ebene vorhanden sind oder Unternehmens-IT-Organisation ".
Wir könnten Hardware der Produktionsklasse und formellen IT-Support rechtfertigen, wenn wir müssten, aber es würde Zeit brauchen und eine Menge Kopfschmerzen mit sich bringen. Selbst dann könnte es Monate dauern, bis IT-Ressourcen offiziell zugewiesen werden, indem dies als Produktionssystem behandelt wird - und selbst wenn wir dies tun würden, würden wir wahrscheinlich die lokale Kontrolle verlieren, die wir benötigen.
Ich stelle mir vor, dass viele von Ihnen ähnliche Probleme mit der Entwicklersteuerung von Nichtproduktionsumgebungen hatten - und insbesondere mit der Virtualisierung -, daher lauten meine Fragen wie folgt:
- Welche Strategien und Argumente haben Ihnen dabei geholfen, die Mitarbeiter der Infrastruktur (IT & Netzwerk) für sich zu gewinnen, damit diese Arten von Silos in Unternehmen existieren können, die über Standard-Netzwerk- und Sicherheitsrichtlinien verfügen, die diese Art von Nicht- (und verständlicherweise) generell ausschließen würden zentral) verwaltete Infrastruktur?
- Haben Sie festgestellt, dass dies eine Frage der technischen Rechtfertigung ist - oder eher ein politischer Kampf um Kontrolle und Eigenverantwortung?
- Wenn Sie eine IT-verwaltete Entwicklungsumgebung hatten, wie groß war die Blockade für die tägliche Entwicklung und das Testen?
- Hat jemand seine Entwicklungsumgebung in ein nicht verbundenes VLAN oder ein völlig separates Netzwerk verschoben, um diese Netzwerkzugriffsprobleme zu vermeiden?
Dies ist auch kein heiliger Krieg zwischen Hyper-V und ESX (wir wären auch damit einverstanden - aber Hyper-V wurde ausgewählt, da es mit MSDN für diese Zwecke "kostenlos" ist [ja, VMWare hat auch kostenlose Tools - aber das Gute Management-Tools sind im Allgemeinen nicht] und würden von den lokalen Entwicklern in einem "Microsoft Shop" einfacher zu verwalten sein. Argumente für oder gegen beide sind daher nicht Gegenstand dieser Frage.
Dies ist auch weniger eine Virtualisierung als eine physische Hardware - ich nehme an, dass die gleiche Frage ohne die Virtualisierungskomponente zur Gleichung gestellt werden könnte.
Nehmen Sie außerdem an, dass das Entwicklerteam bereits zugesichert hat, entweder Patch-Management und Antivirus zu verwalten oder in die vorhandenen Unternehmenssysteme zu integrieren, wenn diese dies unterstützen. Dieses Szenario mit verschiedenen Fragen wird auch auf SF veröffentlicht, um hoffentlich den gegnerischen Standpunkt zu ermitteln.
quelle
Antworten:
Sie haben die Reservierung "verlassen" und versuchen, dies zu rechtfertigen.
Hier geht es nicht um Virtualisierung. Es geht um Kontrolle und Verantwortung. Die IT-Abteilung ist verantwortlich für die Sicherheit und Zuverlässigkeit der Systeme des Unternehmens. Um sicherzustellen, dass sie funktionieren, behält die IT sie unter ihrer eigenen Kontrolle. Sie haben ein System erstellt, das nicht unter der Kontrolle der IT steht, und es wird jetzt zu einem Problem.
Die üblichen Gründe, warum Programmierer meiner Erfahrung nach ihre eigenen Systeme wollen, sind:
Wenn Sie in die Produktion gehen, benötigen Sie letztendlich ein IT-verwaltetes System, das vollständig gesperrt ist. Aber während Sie sich entwickeln, brauchen Sie Flexibilität. Einige Vorschläge:
quelle
So sehr ich in solchen Situationen ein Amateur bin, scheint ein angemessenes und gut konstruiertes Argument erforderlich zu sein, um den Abteilungsleitern die Notwendigkeit der zusätzlichen Kosten (und der Ausdehnung) der IT-Ressourcen zu rechtfertigen. Sie möchten wahrscheinlich einen guten Redner, der in der Lage ist, die Themen zu vermitteln und den potenziellen Wert des Vorschlags mit denen in Verbindung zu bringen, die dafür bezahlen.
Das Problem ist tatsächlich eines, das eine echte Überlegung verdient: Eine Gruppe möchte die Entwicklungsumgebung, aber das setzt die andere Gruppe unter Druck, die sich verantwortlich fühlt, tatsächlich für die Sicherheit des Gesamtsystems verantwortlich ist, insbesondere die Vernetzung ist etwas, das von der IT gerechtfertigt ist wertvoll über.
Es fällt mir auf, dass die Möglichkeit, bestimmte Ressourcen für ein prospektiv lukratives Projekt oder sogar nur eine freie Umgebung für Entwickler außerhalb des Standorts zu platzieren, jetzt durch eine Marktrationalisierung für Virtualisierung als Kostensenkungs- und Ressourcenkontrollmaßnahme ersetzt wurde.
Versteh mich jetzt nicht falsch, ich bin nicht gegen Virtualisierung, weit davon entfernt. Mir fällt jedoch ein, dass es oft sehr gute und erklärbare Gründe gibt, um einer Entwicklungsgruppe den Anspruch auf einen separaten Bereich zu ermöglichen, der in einer Umgebung produktiver und potenziell sicherer wäre, als nur alles zu virtualisieren.
Sicher, ein Unternehmen kann Geld sparen, indem es die Cloud für reguläre Abteilungsaufgaben verwendet. Dort ist es sehr nützlich. (Es ist eine Form der Virtualisierung, aber anders, ich weiß)
Angenommen, ein Entwickler gibt einen nicht identifizierbaren Fehler aus, der nicht behoben werden kann, da die Frage besteht, ob die Anwendung / das Programm aufgrund einer Virtualisierungsimplementierung fehlerhaft ist (dh dass sie in einem eigenständigen Computer nicht auftreten würde) wird kontraproduktiv, um Zeit damit zu verschwenden, den Fehler aufzuspüren, der nicht in der Programmierung, sondern in der VM-Implementierung enthalten ist.
Ich hoffe ich bin klar. Ich habe keine Antwort auf Ihren speziellen Fall, aber ich denke, dies sind hoffentlich nützliche Überlegungen in Bezug auf das Problem, und ich würde dringend empfehlen, solche Fragen offen und vollständig mit beiden beteiligten Abteilungen und möglicherweise einem Vertreter der zu erörtern Unternehmensführung, die sich letztendlich für den Einkauf einsetzen müsste. Daher mein Vorschlag eines guten Redners oder Vermittlers!
Vermutlich, wenn mehr Mitarbeiter erforderlich sind, könnte dies eine positive Sache sein (es gibt viele Arbeitslose da draußen), aber es gibt möglicherweise genug IT-Smarts im Entwicklerbereich, um eine Rolle wie Serveradministrator für die eigene Gruppe selbst hinzuzufügen?
Ich weiß, dass es eigentlich ziemlich wichtig ist, deshalb möchte ich nicht leichtfertig sein, aber es gibt Zeiten, in denen ich denke, dass die Konsolidierung und Hinzufügung von Rollen zu bestehenden Arbeitnehmern ihre persönliche Zeit viel zu stark belastet, was sie häufig ärgern vor allem, wenn sie Teil eines radikal neuen und erfolgreichen Software-Engineerings sein könnten.
Ich beneide Sie nicht um Ihr Problem, aber ich beneide den Arbeitsplatz, der sich voll und ganz mit neuen Designs, neuer Software und neuen Ideen beschäftigt. Ich wünsche Ihnen von Herzen viel Glück und hoffe, dass meine Beiträge hilfreich sind.
Mihaly
quelle
Die IT-Abteilung hat tatsächlich einen Punkt.
Sie verwalten wahrscheinlich Tausende von Anwendungen auf Hunderten von Systemen. Die einzige Möglichkeit, dies effektiv zu tun, besteht darin, einige ausgewählte Standard-Software-Stacks auf noch weniger Standard-Hardwarekonfigurationen auszuführen.
Wenn Sie dieser Route folgen, treten immer mehr Probleme auf, wenn Sie sich der Produktion nähern. Im schlimmsten Fall müssen Sie die gesamte Anwendung neu faktorisieren, damit sie Tage vor dem Start in einer Standardproduktionsumgebung ausgeführt werden kann.
Arbeiten Sie besser mit der IT-Gruppe zusammen und bitten Sie sie, einige Standardtestumgebungen für Sie zu konfigurieren. Dafür werden sie bezahlt. - Ironischerweise werden sie wahrscheinlich eine virtuelle Maschine für jede Umgebung einrichten.
Programmierer sollten programmieren, die IT-Infrastruktur-Mitarbeiter die Infrastruktur bereitstellen lassen und die Netzwerk-Mitarbeiter die Netzwerke konfigurieren - so arbeiten Unternehmen!
Auch wenn Ihre Anwendung nicht dem Standard entspricht und die IT nicht in Betracht zieht, eine Testumgebung zu erstellen, haben Sie keine Chance, sie in die Produktion zu bringen. Sprechen Sie mit Ihren Unternehmensarchitekten, um herauszufinden, welche Umgebungen Standard sind, und versuchen Sie, sie zu verwenden. Wenn Sie Ihre Anwendung mit der Standardsoftware / -hardware wirklich nicht implementieren können, müssen Sie eine formelle Anfrage für die Unternehmensarchitektur stellen, um Ihre Infrastruktur als Ausnahmefall zu genehmigen.
quelle
Sie müssen sich beim Management dafür einsetzen, dass:
Die virtualisierte Umgebung erfüllt eine oder mehrere der speziell festgelegten Anforderungen des Unternehmens (z. B. die Flexibilität, mehrere Plattformen zu unterstützen)
Sie können es schneller und kostengünstiger als die IT implementieren
Durch die Kontrolle vor Ort werden die Kosten gesenkt und die Markteinführungsverzögerungen verringert
Sie können die Sicherheits- und Wartungsbedenken der IT erfüllen
Die Produktivität des Programmierers wird nicht beeinträchtigt.
Der letzte ist ein großes Wenn. Ich habe dieses Problem mit einer Reihe von Leuten besprochen, die sich auf diese Art der Virtualisierung spezialisiert haben. Sie sagen mir, dass es keine Hardware-Kosteneinsparungen geben wird, wenn Sie genug Hardware darauf werfen, um so reaktionsschnell wie ein lokaler PC zu sein.
Ihre nachgewiesenen Kosteneinsparungen müssen also in Form von Flexibilität bei der Konfiguration und der Möglichkeit erfolgen, diese Konfigurationen jederzeit zu ändern.
quelle