Come impostare ambienti di sviluppo, gestione temporanea, produzione e QA


8

Sono in procinto di impostare nuovi server per un'organizzazione. Quali sono gli standard o le migliori pratiche per la creazione di un nuovo ambiente con sviluppo, test, stadiazione e produzione (o sono aperto ad altri livelli con cui non ho familiarità)? Inoltre, ho sentito parlare di organizzazioni che suddividono i server in SQL, applicazioni, server Web, ecc. Dove posso trovare buoni esempi di possibili soluzioni per l'installazione del server?

La virtualizzazione di questi ambienti in poche caselle fisiche è una buona pratica?

Ho cercato online alcune idee su come altre organizzazioni hanno impostato il loro ambiente, ma non sto trovando nulla di specificamente utile. Accolgo con favore tutti i link a cui puoi indirizzarmi per discutere della costruzione di un'intera soluzione aziendale per un'azienda medio-piccola.

Ho appena trovato questo link: http://dltj.org/article/software-development-practice/ Mi piacerebbe trovare altri articoli come questo se qualcuno conosce qualcuno di buono a cui può indirizzarmi.

Prima di sottovalutare la mia domanda, si prega di inviare commenti per farmi provare a spiegare di più. Potrei non sapere abbastanza per porre le domande giuste.


2
Penso che la prima cosa che dovresti fare è spiegare l'effettivo compito che devi compiere. A cosa serve la domanda? Quanto carico avrà? Quali cambiamenti pensi di ottenere? (Come: hai bisogno di 4 livelli, Dev, Test, Stage, Prod)
MichelZ,

1
Il requisito è ospitare molte (meno di 50) applicazioni Intranet personalizzate. Questi sono tutti nello stack di Microsoft. Attualmente stiamo utilizzando un server Sql di sviluppo e server Web locali per lo sviluppo e un server Sql e un server Web separati che ospitano i nostri ambienti di test e di produzione. So che le cose potrebbero essere fatte molto meglio di quello che stiamo facendo, motivo per cui ho originariamente pubblicato questa domanda. Semplicemente non ho bisogno di sapere quale sia il "migliore" con la mia esperienza.
TreK,

2
Non è una risposta in sé, quindi inserirò un commento. Una cosa di cui devi essere dannatamente sicuro è che hai un meccanismo (ad esempio chiave API, convalida IP) per garantire che i tuoi ambienti di test non possano accedere al tuo ambiente di produzione.
HTTP500,

Risposte:


8

Questa è una domanda piuttosto carica. Il mio consiglio generale è di focalizzare la vostra attenzione sulla gestione della complessità e consentire al sistema di crescere organicamente.

virtualizzazione:

Vuoi davvero evitare l'espansione del server e in questi giorni tutto è virtualizzato. Scegli una piattaforma che ti consenta di aggiungere rapidamente server virtuali e gestirli in modo efficiente. Una tendenza che ho visto è quella di avere due (ad esempio) cluster AIX o VMWare, uno per prod, uno per non prod. Il non-prod è usato per tutti gli ambienti di sviluppo, test e staging. Questi ambienti sono perfetti per server Web o application server, ma proverei a evitare di mettere database di produzione di grandi dimensioni in crescita come VM (almeno su Windows).

Banche dati

Questi possono facilmente sfuggire di mano ogni volta che devono condividere risorse con altri server. Avere sempre database in esecuzione su un sistema operativo dedicato, mai condiviso con un'applicazione o un server Web a meno che non ci sia una buona ragione per farlo. Se si utilizza una macchina virtuale o hardware è l'unica domanda.

Desideri un'infrastruttura scalabile che non ti limiti se, ad esempio, dovessi passare a una soluzione cluster. Molti database andranno bene in una VM, ma per i pochi che alla fine avranno bisogno di più potenza di quella che è conveniente fornire in un ambiente VM, ti ritroverai a desiderare di metterli invece su hardware grezzo .

Se non stai parlando di Windows, alcune di queste linee guida non saranno pertinenti. È pratica comune accettata mettere grandi database in crescita come LPAR in un hypervisor AIX, per esempio.

Conservazione

Non è possibile avere una virtualizzazione reale (con mobilità VM e clustering host) senza archiviazione condivisa. I server Prod, Dev, Test e QA sembrano tutti uguali per il tuo spazio di archiviazione, tuttavia potresti voler dedicare un po 'di tempo a trovare un modo per dare la priorità al tuo prodotto. È una pessima idea, ad esempio, avere un database prod pesantemente tassato che condivide dischi (set di raid, pool, qualunque cosa) con un server di sviluppo. Lo sviluppatore può colpire i dischi con la stessa forza del prod, a volte, e l'ultima cosa di cui hai bisogno è capire se una sorta di test è ciò che rallenta la tua produzione.

Chiedi a qualcuno che conosce il tuo spazio di archiviazione di sedersi e analizzare tutti i potenziali colli di bottiglia (porte, cache, controller, disco, ecc.) E fare del tuo meglio per prevenire la contesa per il maggior numero possibile di questi tra prod e non-prod.

Detto questo, a volte le persone dell'applicazione devono eseguire benchmark di sviluppo per aiutare a quantificare gli effetti di una nuova patch o qualcosa del genere. In questa situazione, potresti dover essere in grado di offrire loro quantità simili (o almeno quantificabilmente diverse) di potenza di accumulo.


1

A cosa ti serve questo ambiente? Il software del fornitore o la tua organizzazione stanno facendo il proprio sviluppo?

Non so se questo aiuterà, ma sia HP che Dell cadranno da sole per entrare e valutare il tuo data center attuale e darti una raccomandazione per rinnovare o creare da zero. I lettori del forum possono dare buone risposte strette ma senza vedere "quello che hai e dove sei quello che vuoi e dove devi essere" sarà difficile darti una risposta solida. Fatti un favore e mantieni un fornitore di hardware perché ragioni di amministrazione.

Abbiamo il nostro datacenter orientato a questo in mente (Abbiamo l'hardware in atto per farlo)

Ambiente blade VMWare C7000 Hp blade con backend SAN EMC, connessione in fibra da 8 gig.

Questo ci consente di limitare i costi di spawl, elettricità e aria condizionata. Sarebbe usato per macchine di prova, server per prove di concetto, server di produzione che non necessitano di hardware univoco per l'applicazione (dongle USB, schede fax, ecc.)

Ambiente Physical Blade Server C7000 Hp Contenitore blade con HBA 16 blade collegato a backend SAN EMC tramite fibra da 8 gig.

Questi sarebbero per le macchine che richiedono una grande quantità di RAM e CPU ma senza aggiunte hardware univoche. Le macchine virtuali vanno bene, tranne quando richiedono un'enorme quantità di CPU o RAM. VMWare consente a vmotion di spostare vmserver su una macchina host per bilanciare l'utilizzo dell'hardware. Il settore immobiliare VM è conveniente solo se utilizzato al massimo. Significa che macchine più piccole invece di alcune grandi. Questo dipende anche dal sistema che stai cercando di alzare.

Server fisico (da 1U a 5U)

HP DL360 - Server DL 5xx. Hardware speciale come 4x 8 core CPUS e 256 Gigs ram, schede seriali per interfacce telecom o schede fax di fascia alta collegate a più linee telefoniche. In questo gruppo sarebbero inclusi i server che il fornitore ha richiesto una grande memoria locale.

Questo è un esempio ma non una risposta completa. Seriamente, parla con un fornitore di hardware e lascia che ti diano un'idea di dove ti trovi e come renderlo migliore / più efficiente.


0

Quali sono gli standard o le migliori pratiche per la creazione di un nuovo ambiente con sviluppo, test, stadiazione e produzione.

Questo dipende dal budget tra le altre considerazioni. Non sono sicuro se ci sono standard ma vorresti mantenere lo stesso sistema operativo e altri software su tutte le scatole. Usa strumenti di automazione come Puppet per automatizzare e standardizzare le tue build.

La visualizzazione di questo ambiente in poche caselle fisiche è una buona pratica?

La virtualizzazione? Sì. Ottima pratica Ma devi convalidare le tue configurazioni se possono funzionare come macchine virtuali.

Ho sentito di organizzazioni che hanno suddiviso i server in SQL, applicazioni, server Web, ecc. Dove posso trovare buoni esempi di possibili soluzioni per l'installazione del server?

Probabilmente altri possono intervenire, ma immagino che vorresti installare componenti diversi su server diversi per diversi motivi tra aggiornamenti e disponibilità del sistema operativo e delle applicazioni.


1
Tutto dipende dalle dimensioni del suo progetto. Non penso che tu abbia bisogno di nulla di tutto ciò per il tuo database privato di home movie ... :) Penso che abbiamo bisogno di maggiori informazioni da OP
MichelZ,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.