Zwirtualizowane środowiska programistyczne w sieciach przedsiębiorstw

11

Staramy się wdrożyć środowisko programistyczne wykorzystujące wirtualizację dla małego zespołu 4 programistów w organizacji korporacyjnej. Umożliwiłoby to nam utworzenie oddzielnych środowisk programistycznych, testowych i testowych, a także dostęp do nowych systemów operacyjnych, które są wymaganiami dla systemów lub narzędzi, które oceniamy. Zmieniliśmy przeznaczenie istniejącej maszyny klasy stacji roboczej, wrzuciliśmy 24 GB pamięci RAM i RAID-10 i wszystko szło dobrze, dopóki nie podjęliśmy próby dodania maszyny do domeny.

Teraz rozpoczynamy wojnę, z którą wszyscy deweloperzy korporacyjni od początku musieli walczyć - walkę o lokalną kontrolę środowiska programistycznego i testowego. Administratorzy sieci i IT zgłosili obawy, począwszy od „ESX Server jest korporacyjnym standardem”, po serwery nie są dozwolone w sieciach VLAN klienta ”, aż do„ [wypełnij puste miejsce] nie jest zestawem umiejętności, które są obecnie w posiadaniu lokalnych lub organizacja informatyczna przedsiębiorstwa ”.

Gdybyśmy mieli taką potrzebę, moglibyśmy uzasadnić sprzęt klasy produkcyjnej i formalne wsparcie IT, ale zajęłoby to dużo czasu i wymagałoby dużego bólu głowy. Nawet wtedy formalne przydzielenie zasobów IT może potrwać miesiące, traktując to jako system produkcyjny - a nawet gdybyśmy to zrobili, prawdopodobnie stracilibyśmy lokalną kontrolę, której potrzebujemy.

Wyobrażam sobie, że wielu z was miało podobne problemy z kontrolą programistów w środowiskach nieprodukcyjnych - w szczególności w zakresie wirtualizacji - więc moje pytania są następujące:

  1. Jakie strategie i argumenty pomogły ci pozyskać ludzi z infrastruktury (IT i sieci), aby umożliwić istnienie tego rodzaju silosów w przedsiębiorstwach, które mają standardowe zasady sieci i bezpieczeństwa, które ogólnie (i zrozumiale) wykluczą tego rodzaju nie- ( centralnie) zarządzana infrastruktura?
  2. Czy uważasz, że jest to kwestia technicznego uzasadnienia - czy raczej politycznej walki o kontrolę i własność?
  3. Jeśli skończyło się na środowisku programistycznym zarządzanym przez IT, to ile było przeszkodą w codziennym programowaniu i testowaniu?
  4. Czy ktoś w końcu przeniósł swoje środowisko programistyczne do odłączonej sieci VLAN lub całkowicie oddzielnej sieci, aby uniknąć tych problemów z dostępem do sieci?

Ponadto nie jest to święta wojna Hyper-V vs. ESX (byłoby nam dobrze - ale Hyper-V został wybrany, ponieważ jest „darmowy” z MSDN do tych celów [tak, VMWare ma również darmowe narzędzia - ale dobre narzędzia zarządzania na ogół nie są] i łatwiej byłoby nimi zarządzać lokalni programiści w „Sklepie Microsoft”) - więc argumenty za lub przeciw są poza zakresem tego pytania.

Jest to również mniej wirtualizacji niż sprzętu fizycznego - przypuszczam, że to samo pytanie można by zadać bez komponentu równania do wirtualizacji.

Załóżmy również, że zespół programistów zapewnił już zarządzanie zarządzaniem poprawkami i antywirusem lub integrację z istniejącymi systemami korporacyjnymi, jeśli będą go obsługiwać. Ten scenariusz, z różnymi pytaniami, jest również opublikowany na SF, miejmy nadzieję, że wzbudzi przeciwny punkt widzenia.

ScottBai
źródło
Dlaczego próbujesz zwirtualizować maszyny programistów? Jaki problem próbujesz rozwiązać? Twoi programiści, administratorzy sieci i informatycy i tak cię o to zapytają, więc równie dobrze możesz rozlać tutaj fasolę.
Robert Harvey
2
OK, aby być jasnym: Chcemy mieć możliwość posiadania oddzielnych środowisk programowania, testowania i produkcji na żądanie; zautomatyzowane testowanie jednostkowe / CI; dostęp do systemu operacyjnego i / lub narzędzi, które obecnie nie działają w naszym środowisku produkcyjnym, ale są wymaganiami dla systemów lub narzędzi, które oceniamy; Szczerze mówiąc, myślałem, że zalety programistów posiadających środowiska testowe do testowania i wdrażania, a także ogólne zastosowanie wirtualizacji zostały zaakceptowane i ustalone. To prawda, że ​​lokalna kontrola administracyjna nie jest wymagana dla wszystkich, ale niektóre z nich.
ScottBai,
1
Podajesz słuszną uwagę na temat mojej sprawy (korzyści) - ale tak naprawdę była to część pytania. Obecne środowisko deweloperskie składa się ze stacji roboczych programistów połączonych z wdrożeniem na serwerze produkcyjnym, do którego twórcy mają ograniczone prawa (kopiowanie plików + indywidualne bazy danych SQL DBO). Oczywiście nie jest to optymalne (jestem tam nowy, ale wszyscy już wiedzieli, że to duży problem). W przeciwnym razie jest to dobre pytanie, ponieważ część wirtualizacji nie jest tak naprawdę znaczącym czynnikiem różnicującym, niż gdybyśmy mieli istniejące maszyny fizyczne pełniące tę rolę.
ScottBai,

Odpowiedzi:

7

Odszedłeś od rezerwacji i próbujesz to uzasadnić.

Tu nie chodzi o wirtualizację; Chodzi o kontrolę i odpowiedzialność. Dział IT odpowiada za bezpieczeństwo i niezawodność systemów firmy. Aby mieć pewność, że działają, dział IT utrzymuje ich kontrolę. Zbudowałeś system, który nie jest pod kontrolą IT, a teraz staje się problemem.

Z mojego doświadczenia wynika, że ​​programiści chcą mieć własne systemy:

  • IT nie reaguje. Nowe środowisko zajmuje tygodnie, ale teraz potrzebujesz go.
  • Potrzebujesz kontroli; Nie dadzą ci tego. Musisz mieć możliwość ustawiania uprawnień, instalowania komponentów itp. IT ci na to nie pozwoli.

Ostatecznie, kiedy przejdziesz do produkcji, będziesz potrzebować całkowicie zarządzanego systemu informatycznego. Ale podczas rozwoju potrzebujesz elastyczności. Jakieś sugestie:

  • Zaprzyjaźnić się. poznać niektóre osoby z branży IT; Porozmawiaj z nimi twarzą w twarz. Wyjaśnij swoją sytuację i zapytaj, co można zrobić. Możesz uzyskać uprawnienia administratora do serwera deweloperskiego po prostu pytając.
  • Uruchom lokalnie. Jeśli możesz uruchamiać części aplikacji na swoich lokalnych komputerach, możesz nie potrzebować serwera lub możesz uniknąć zablokowanej instancji DB.
  • Zdobądź sponsora. Nic tak się nie porusza, jak wiceprezes i mówi: „Dlaczego blokujesz mój projekt?” Wykorzystaj siłę sponsora swojego projektu.
  • Do chmury! Jeśli pokryje go budżet twojego projektu, po prostu hostuj na EC2 - omijasz cały dział IT. Ryzyko zostaje zhakowane i zwolnione za udostępnianie informacji firmy poza zaporą.
  • Uruchom długą grę. Złóż wnioski o odpowiednio autoryzowane i administrowane serwery wcześniej. Kiedy dostaniesz skargę na swój homebrew, powiedz, że nadal czekasz na oficjalnych serwerach.
  • Preallocate. Zamów serwery, które Twoim zdaniem mogą być potrzebne w przyszłości. Następnie wykorzystaj je ponownie, gdy masz rzeczywiste potrzeby.
Sean McMillan
źródło
Bardzo ważne punkty. +1 za wskazówkę dla sponsora, przez większość czasu działa jak urok!
Saul Delgado
To świetna odpowiedź - niekoniecznie ta, którą koniecznie chciałem usłyszeć, ale myślę, że trafiłeś w sedno. Teraz zdaję sobie sprawę, że jest to kwestia tego, że deweloperzy mają uzasadnioną potrzebę środowiska programistycznego - ale mają wrażenie, że IT nie reaguje, a zatem nie próbują współpracować z nimi, aby zaspokoić nasze potrzeby. O ile lubię bawić się sprzętem, wolałbym mieć środowisko zarządzane przez IT ze środowiskiem programistycznym (pełne prawa), środowiskiem testowym (prawa tylko do wdrożenia), testowaniem (bez uprawnień) i produkcyjnym (bez uprawnień) ) i nie musi zarządzać całą infrastrukturą.
ScottBai,
2

Chociaż jestem amatorem w takich sytuacjach, wydaje się, że potrzebny jest odpowiedni i dobrze skonstruowany argument, aby uzasadnić szefom departamentów potrzebę dodatkowych wydatków (i rozległości) zasobów informatycznych. Prawdopodobnie potrzebujesz dobrego mówcy, który jest w stanie pośredniczyć w kwestiach i powiązać potencjalną wartość wniosku z tymi, którzy skończą za to płacić.

Problem jest w rzeczywistości tym, który zasługuje na prawdziwe rozważenie: jedna grupa chce środowiska deweloperskiego, ale to wywiera pewną presję na drugą grupę, która czuje się odpowiedzialna, w rzeczywistości jest odpowiedzialna za bezpieczeństwo całego systemu, sieciowanie jest szczególnie tym, co IT jest uzasadnione cenne o.

Uderza mnie, że możliwość przeniesienia niektórych zasobów do potencjalnie lukratywnego projektu, a nawet po prostu wolnego środowiska dla programistów, została zastąpiona racjonalizacją rynku w zakresie wirtualizacji jako środka ograniczania kosztów i kontroli zasobów.

Nie zrozumcie mnie źle, nie jestem przeciwny wirtualizacji. Ale przychodzi mi do głowy, że często istnieją bardzo dobre i możliwe do wyjaśnienia działania pozwalające grupie programistycznej mieć prawo do oddzielnego królestwa, które byłoby bardziej produktywne w środowisku i potencjalnie bezpieczniejsze niż wirtualizacja wszystkiego.

Na pewno firma może zaoszczędzić pieniądze, wykorzystując chmurę do regularnych prac biurowych między biurami, tam jest bardzo przydatna. (jest to forma wirtualizacji, ale inna, wiem)

Załóżmy jednak, że programista zgłasza niemożliwy do zidentyfikowania błąd, którego nie można debugować, ponieważ pojawia się pytanie, czy aplikacja / program zepsuł się z powodu implementacji wirtualizacji (tj. Czy nie wystąpiłby w samodzielnym komputerze), a następnie staje się nieproduktywne, aby tracić czas na próby wyśledzenia błędu, który nie jest tak naprawdę w programowaniu, ale w implementacji VM.

Mam nadzieję, że wszystko jest jasne. Nie mam odpowiedzi na konkretny przypadek, ale myślę, że mam nadzieję, że są to przydatne rozważania pod względem problemu, i zdecydowanie zaleciłbym, aby omówić takie kwestie w sposób otwarty i pełny z udziałem obu zaangażowanych działów i być może przedstawiciela zarządzanie przedsiębiorstwem, które ostatecznie będzie musiało uzasadnić zakup. Stąd moja sugestia dobrego mówcy lub pośrednika!

Przypuszczalnie, jeśli wymaga to większej liczby pracowników, może to być pozytywna rzecz (jest tam wielu bezrobotnych), ale w dziale programistów może być wystarczająca ilość inteligentnych rozwiązań informatycznych, aby sami dodać rolę administratora serwera dla własnej grupy?

Wiem, że to naprawdę bardzo ważne, więc nie chcę być nonszalancki, ale są chwile, kiedy myślę, że konsolidacja i dodanie ról do istniejących pracowników stanowi zbyt duże obciążenie dla ich osobistego czasu, co zwykle kończy się niechęcią , szczególnie gdy mogą być częścią radykalnie nowej i udanej inżynierii oprogramowania.

Nie zazdroszczę twojemu problemowi, ale zazdroszczę miejscu pracy, które jest w pełni zaangażowane w wprowadzanie nowych projektów, nowego oprogramowania i nowych pomysłów. Szczerze życzę powodzenia i mam nadzieję, że mój wkład będzie pomocny.

Mihaly

MihalyK1a
źródło
1

Dział IT ma rację.

Prawdopodobnie zarządzają tysiącami aplikacji na setkach systemów. Jedynym sposobem, aby to zrobić skutecznie, jest uruchomienie kilku wybranych standardowych stosów oprogramowania na jeszcze mniejszej liczbie standardowych konfiguracji sprzętowych.

Jeśli podążysz tą drogą, w miarę zbliżania się do produkcji napotkasz coraz więcej problemów - w najgorszym przypadku konieczne będzie ponowne uwzględnienie całej aplikacji, aby działała w standardowym środowisku produkcyjnym na kilka dni przed uruchomieniem.

Lepiej współpracuj z grupą IT i poproś o skonfigurowanie dla ciebie standardowych środowisk testowych, za co płacą. - Jak na ironię prawdopodobnie skonfigurują maszynę wirtualną dla każdego środowiska.

Programiści powinni programować, niech faceci z infrastruktury IT zapewnią infrastrukturę, a faceci z sieci skonfigurują sieci - tak działają korporacje!

Również jeśli twoja aplikacja jest tak niestandardowa, że ​​dział IT nie rozważy zbudowania środowiska testowego - nie będziesz miał szans na uzyskanie go w środowisku produkcyjnym. Porozmawiaj z architektami korporacyjnymi, dowiedz się, jakie środowiska są standardowe i spróbuj ich użyć. Jeśli naprawdę nie możesz zaimplementować aplikacji przy użyciu standardowego oprogramowania / sprzętu, musisz złożyć formalny wniosek o architekturę korporacyjną, aby zatwierdzić infrastrukturę jako wyjątkowy przypadek.

James Anderson
źródło
0

Będziesz musiał przedstawić swoją sprawę zarządowi, która:

  1. Posiadanie zwirtualizowanego środowiska spełnia co najmniej jedno ze specyficznych wymagań firmy (takich jak elastyczność obsługi wielu platform) oraz

  2. Możesz wdrożyć go w bardziej terminowy sposób, przy niższych kosztach niż IT, i

  3. Lokalna kontrola obniży koszty i skróci czas wprowadzania produktów na rynek, oraz

  4. Możesz zaspokoić obawy związane z bezpieczeństwem i konserwacją IT oraz

  5. Nie wpłynie to na wydajność programisty.

Ostatni jest duży, jeśli.   Omówiłem ten problem z wieloma osobami specjalizującymi się w tego rodzaju wirtualizacji. Mówią mi, że zanim rzucisz w to wystarczająco dużo sprzętu, aby był tak responsywny jak lokalny komputer, nie będzie żadnych oszczędności na kosztach sprzętu.

Tak więc wykazane oszczędności kosztów będą musiały przybrać formę elastyczności konfiguracji i możliwości zmiany tych konfiguracji w mgnieniu oka.

Robert Harvey
źródło
Dziękujemy za zainteresowanie i odpowiedź - ale nie jestem pewien, czy rozumiesz Q lub naszą intencję. Kłócisz się z wirtualizacją - ale to nie jest pytanie. Również dobra odpowiedź, jeśli Q było uzasadnieniem dla osób płacących rachunki, dlaczego jest to dobry pomysł - ale moje pytanie nie jest takie; chodzi o to, jak sprawić, by działy międzyorganizacyjne, które nie płacą rachunków ani nie dbają o poziom produktywności działu, aby grały dobrze, dopuszczając wyjątek od normalnej działalności. A może mówisz, że to tylko kwestia uzasadnienia i wszystko jest w porządku?
ScottBai,