Ambienti di sviluppo virtualizzati in reti aziendali

11

Stiamo tentando di implementare un ambiente di sviluppo utilizzando la virtualizzazione per un piccolo team di 4 sviluppatori all'interno di un'organizzazione aziendale. Ciò ci consentirebbe di creare ambienti di sviluppo, test e staging separati, oltre a consentire l'accesso a nuovi sistemi operativi che sono requisiti per sistemi o strumenti che stiamo valutando. Abbiamo ri-proposto una macchina di classe workstation esistente, abbiamo gettato 24 GB di RAM e RAID-10 e stavamo andando bene fino a quando non abbiamo tentato di aggiungere la macchina al dominio.

Ora stiamo iniziando la guerra che tutti gli sviluppatori di imprese dall'inizio dei tempi hanno dovuto combattere: la lotta per il controllo locale di un ambiente di sviluppo e testing. Gli amministratori di rete e IT hanno sollevato dubbi che vanno da "ESX Server è lo standard aziendale" a "i server non sono consentiti sulle VLAN client" a "[fill-in-the-blank] non è un set di competenze attualmente posseduto nel locale o organizzazione IT aziendale ".

Potremmo giustificare l'hardware di classe produttiva e il supporto IT formale se necessario, ma ci vorrebbe del tempo e ci sarà un sacco di mal di testa. Anche in questo caso potrebbero essere necessari mesi per ottenere le risorse IT assegnate trattandole come un sistema di produzione, e anche se lo facessimo, avremmo probabilmente perso il controllo locale di cui abbiamo bisogno.

Immagino che molti di voi abbiano avuto lotte simili sul controllo degli sviluppatori degli ambienti non di produzione e, in particolare, della virtualizzazione, quindi le mie domande sono le seguenti:

  1. Quali strategie e argomentazioni ti hanno aiutato a conquistare l'infrastruttura (IT & Network) per consentire a questi tipi di silos di esistere all'interno di aziende che dispongono di policy di rete e di sicurezza standard che generalmente (e comprensibilmente) precludono questo tipo di infrastruttura non gestita (centralmente)?
  2. Hai scoperto che si tratta di una giustificazione tecnica o di una lotta politica per controllo e proprietà?
  3. Se si è finito con un ambiente di sviluppo gestito dall'IT, quanto di un roadblock è stato per lo sviluppo e il test di tutti i giorni?
  4. Qualcuno ha finito per spostare il proprio ambiente di sviluppo su una VLAN disconnessa o su una rete completamente separata per evitare questi problemi di accesso alla rete?

Inoltre, questa non è una guerra santa Hyper-V contro ESX (ci staremmo bene con entrambi - ma Hyper-V è stato selezionato poiché è "libero" con MSDN per questi scopi [sì, anche VMWare ha strumenti gratuiti - ma i buoni strumenti di gestione in genere non lo sono] e sarebbero più facili da gestire da parte degli sviluppatori locali in un "Microsoft Shop") - quindi gli argomenti a favore o contro non rientrano nell'ambito di questa domanda.

Questo è anche meno di una virtualizzazione contro hardware fisico - suppongo che la stessa domanda possa essere posta senza il componente di virtualizzazione all'equazione.

Supponiamo inoltre che il team di sviluppo abbia già assicurato la gestione delle patch e l'antivirus, oppure si integri con i sistemi aziendali esistenti, se lo supporteranno. Questo scenario, con domande diverse, è anche pubblicato su SF per sperare di ottenere il punto di vista opposto.

    
posta ScottBai 28.09.2011 - 04:11
fonte

4 risposte

7

Sei andato "fuori dalla prenotazione" e stai cercando di giustificarlo.

Non si tratta di virtualizzazione; Si tratta di controllo e responsabilità. Il reparto IT è responsabile della sicurezza e dell'affidabilità dei sistemi dell'azienda. Per assicurarsi che funzionino, IT li tiene sotto il proprio controllo. Hai costruito un sistema non sotto il controllo dell'IT e sta diventando un problema.

Le solite ragioni per cui i programmatori vogliono i propri sistemi, nella mia esperienza, sono:

  • L'IT non risponde. Ci vogliono settimane per ottenere un nuovo ambiente, ma ne hai bisogno ora.
  • Hai bisogno di controllo; Non te lo daranno. Devi essere in grado di impostare permessi, installare componenti, ecc. L'IT non te lo consente.

In definitiva, quando si va in produzione, si vorrà un sistema gestito dall'IT completamente bloccato. Ma mentre stai sviluppando, hai bisogno di flessibilità. Alcuni suggerimenti:

  • Fai amicizia. conosci alcune persone nell'IT; Parla con loro faccia a faccia. Spiega la tua situazione e chiedi loro cosa si può fare. Potresti essere in grado di ottenere i diritti di amministratore su un server di sviluppo semplicemente chiedendo.
  • Esegui locale. Se puoi eseguire porzioni dell'applicazione sui tuoi computer locali, potresti non aver bisogno di un server, oppure puoi scappare con un'istanza DB bloccata.
  • Ottieni uno sponsor. Niente può influenzare l'IT come un VP in arrivo e dire "Perché stai bloccando il mio progetto?" Usa il peso dello sponsor del tuo progetto.
  • Verso il cloud! se il budget del tuo progetto lo copra, ospitalo solo su EC2: elimini l'intero reparto IT. I rischi vengono violati e vengono licenziati per consentire alle informazioni aziendali di uscire dal firewall.
  • Esegui il gioco lungo. Inserisci le richieste di server correttamente autorizzati e amministrati in anticipo. Quando ricevi lamentele riguardo al tuo homebrew, dì che stai ancora aspettando sui server ufficiali.
  • Prealloca. Richiedi server che ritieni possano essere necessari in futuro. Quindi ri-sceglierli quando hai esigenze effettive.
risposta data 28.09.2011 - 16:17
fonte
2

Per quanto io sia un dilettante in tali situazioni, sembra che sia necessario un argomento appropriato e ben costruito per giustificare ai responsabili dei dipartimenti la necessità di spese extra (e di estensione) delle risorse IT. Probabilmente vuoi un buon oratore che sia in grado di mediare i problemi e collegare il valore potenziale della proposta a chi finisce per pagarlo.

Il problema è in realtà uno che merita una considerazione reale: un gruppo desidera l'ambiente Dev, ma ciò mette una certa pressione sull'altro gruppo che si sente responsabile, infatti è responsabile della sicurezza dell'intero sistema, in particolare il networking essendo qualcosa che IT gli incarichi sono giustamente preziosi.

Mi sembra che la possibilità di off-site di determinate risorse per un progetto prospetticamente redditizio o anche solo un ambiente gratuito per gli sviluppatori sia stata superata da una razionalizzazione del mercato per la virtualizzazione come misura di controllo dei costi e delle risorse.

Ora non fraintendermi, non sono contrario alla virtualizzazione, tutt'altro. Ma mi viene in mente che esistono spesso resine molto buone e spiegabili per consentire a un gruppo di sviluppo di avere diritto a un regno separato che sarebbe più produttivo un ambiente e potenzialmente più sicuro della semplice virtualizzazione di tutto.

Sicuramente un business può risparmiare denaro utilizzando il cloud per la roba da partitiere tra gli uffici, è molto utile lì. (è una forma di virtualizzazione, ma diversa, lo so)

Supponiamo tuttavia che uno sviluppatore sollevi un errore non identificabile che non può essere sottoposto a debug perché esiste una domanda sull'eventualità che l'applicazione / il programma si sia interrotto a causa dell'implementazione della virtualizzazione (ovvero che non si verificherebbe in un computer autonomo ) quindi diventa controproducente sprecare tempo cercando di rintracciare il bug che non è in realtà nella programmazione, ma nell'implementazione VM.

Spero di essere stato chiaro. Non ho la risposta per il caso specifico, ma ritengo che si tratti di considerazioni utili per quanto riguarda il problema, e raccomando vivamente che tali questioni siano discusse apertamente e pienamente con entrambi i dipartimenti coinvolti, e forse un rappresentante del gestione aziendale che alla fine dovrebbe fare il caso per l'acquisto. Da qui il mio suggerimento di un buon oratore o intermediario!

Presumibilmente se richiede più dipendenti, potrebbe essere una cosa positiva (ci sono un sacco di disoccupati là fuori) ma potrebbero esserci abbastanza intelligenze IT nella sezione sviluppatore per aggiungere un ruolo come amministratore del server per il proprio gruppo stesso ?

So che è in realtà abbastanza importante, quindi non desidero essere irriverente, ma ci sono momenti in cui penso che il consolidamento e l'aggiunta di ruoli ai lavoratori esistenti faccia troppo carico sul loro tempo personale, che tendono a finire con il risentimento, specialmente quando potrebbero essere parte di qualcosa di radicalmente nuovo e di successo nell'ingegneria del software.

Non invidio il tuo problema, tuttavia invidio il posto di lavoro completamente impegnato a realizzare nuovi progetti, nuovi software e nuove idee. Vi auguro sinceramente buona fortuna, e spero che i miei contributi siano di qualche aiuto.

Mihaly

    
risposta data 08.05.2015 - 13:12
fonte
1

Il reparto IT ha effettivamente un punto.

Probabilmente gestiscono migliaia di applicazioni su centinaia di sistemi. L'unico modo per farlo in modo efficace è avere alcuni stack software standard selezionati che girano su un numero ancora inferiore di configurazioni hardware standard.

Se segui questo percorso incontrerai sempre più problemi man mano che ti avvicini alla produzione - nel peggiore dei casi dovrai ridirigere l'intera applicazione per essere eseguita in un ambiente di produzione standard giorni prima di andare in diretta .

È meglio lavorare con il gruppo IT e chiedergli di configurare per te alcuni ambienti di test standardizzati, è quello che sono pagati per fare. - Ironicamente, probabilmente installeranno una macchina virtuale per ogni ambiente.

I programmatori dovrebbero programmare, lasciare che i ragazzi dell'infrastruttura IT forniscano l'infrastruttura e i membri della rete configurino le reti - il modo in cui funzionano le aziende!

Inoltre, se la tua applicazione è così non standard che l'IT non considererà la creazione di un ambiente di test, avrai zero possibilità di ottenerlo in produzione. Parlate con voi architetti aziendali per scoprire quali ambienti sono standard e provare a utilizzarli. Se davvero non è possibile implementare la propria applicazione utilizzando il software / hardware standard, è necessario presentare una richiesta formale per l'architettura aziendale per approvare l'infrastruttura come caso eccezionale.

    
risposta data 28.09.2011 - 05:52
fonte
0

Dovrai fare il tuo caso con la gestione che:

  1. Avere l'ambiente virtualizzato soddisfa uno o più requisiti specificati dalla società (come la flessibilità di supportare più piattaforme), e

  2. Puoi implementarlo in modo più tempestivo, con un costo inferiore a quello consentito dall'IT e

  3. Avere controllo locale ridurrà i costi e ridurrà i ritardi del time-to-market e

  4. Puoi soddisfare i problemi di sicurezza e manutenzione dell'IT e

  5. La produttività del programmatore non sarà influenzata.

L'ultimo è un grande if. Ho discusso questo problema con un numero di persone specializzate in questo tipo di virtualizzazione. Mi dicono che, nel momento in cui lanci abbastanza hardware per renderlo reattivo come un PC locale, non ci saranno risparmi sui costi dell'hardware.

Quindi i vostri risparmi dimostrati dovranno arrivare sotto forma di flessibilità nella configurazione e la possibilità di modificare tali configurazioni in qualsiasi momento.

    
risposta data 28.09.2011 - 04:37
fonte

Leggi altre domande sui tag