Domanda

Che cosa ragazzi raccomandare come buoni riferimenti per la creazione di un server di prova (XAMPP su xp pro), un server di gestione temporanea e un server di produzione si affianca anche svn? Sono un noob allo sviluppo "hardcore", ma voglio iniziare con il piede giusto e impostare i miei ambienti, come fanno i professionisti. Ho diversi progetti fino a venire e voglio fare due passi in avanti, invece di un passo avanti e due indietro.

Le mie principali aree di almeno comprensione sono ... mantenendo i percorsi dei file corretti tra tutti i server ei database (che si occupano di localhost / site.com / file.html vs www.site.com/file.com), spingendo gli aggiornamenti alla server successivo - test per staging alla produzione, così come usando svn (ci sarà avere più persone che lavorano sugli stessi progetti allo stesso tempo).

Ogni progetto avrà un singolo server in modo da informazioni bilanciamento del carico e la creazione di più server non è necessario. Stiamo anche pensando di usare NetBeans o Eclipse per svn, se non diversamente suggerito.

Produzione e messa in scena i server saranno LAMP durante il test sarà XAMPP su xp pro. Grazie per tutto l'aiuto!

È stato utile?

Soluzione

In risposta alla richiesta del Chad per ulteriori esempi dell'ambiente cartelle e file di configurazione, ecco ulteriori informazioni:

Abbiamo le impostazioni utilizzate dalla scissione del progetto in file di configurazione; stiamo costruendo siti web, quindi i file di configurazione sono referenziate dal web.config.

Per esempio nella nostra cartella di configurazione abbiamo un ConnectionStrings.config con questo all'interno (compilando le tue informazioni al posto delle [] s ovviamente):

<connectionStrings>
    <add name="APP"
         connectionString="Data Source=[];Initial Catalog=[];uid=[];password=[]"
         providerName="System.Data.SqlClient" />
</connectionStrings>

Percorso che è:

Site root
|--> Configuration

Così viene fatto riferimento nella configurazione web con questo:

<connectionStrings configSource="Configuration\ConnectionStrings.config" />

Quindi, nella nostra cartella della soluzione avremmo questa struttura:

Solution folder
|--> Environments
  |--> Development
    |-->Configuration
      |--> ConnectionStrings.config
  |--> Production
    |-->Configuration
      |--> ConnectionStrings.config
  |--> Staging
    |-->Configuration
      |--> ConnectionStrings.config
|--> Src
  |--> Project folder (site root)
    |--> Configuration
      |--> ConnectionStrings.config

La stessa cosa con le altre impostazioni, normalmente messi in nostro AppSettings.config. Quindi le cose come i percorsi dei file o qualsiasi altra impostazione che avrebbe cambiato.

<appSettings>
    <add key="FilePath" value="C:\FileStorage"/>
</appSettings>

Altri suggerimenti

3 parti alla tua domanda:

1) le differenze di file di configurazione tra i server - abbiamo Ambiente cartelle nel nostro progetto che abbiamo memorizzare il file di configurazione per abilitare mantenere più versioni

.

Così come:

Solution folder
    |--> Environment
      |--> Development
      |--> Staging
      |--> Production
    |--> Src
      |--> Project folders

I nostri script di build vengono poi costruite per accettare un parametro per l'ambiente ed estrarre la cartella ambiente corretto, sovrascrivendo i file originali in quanto li distribuisce.

2) Spingendo modifiche al codice ai server di ambiente - in SVN abbiamo creato filiali per l'ambiente per ogni progetto. Così come:

SVN Root
|--> Project
  |--> Branches
    |--> RB-Development
    |--> RB-Staging
  |--> Trunk

Tronco essere il nostro codice di produzione.

Abbiamo anche creare un nuovo ramo per ogni set di funzionalità che stiamo lavorando su. Poi, quando si è pronti per la distribuzione che unirla al ramo ambiente corretto; un tool di creazione sta monitorando quei rami d'ambiente e auto-implementa al ramo corretto quando il codice viene commesso.

3) Più persone usano SVN - creano rami del progetto per ogni elemento verticale imposta si dovrà lavorare su. Così, per un carrello della spesa tipo di app, si dovrebbe avere caratteristiche sul cliente, prodotti, ordini, ecc ... questo ridurrà il numero di persone che lavorano sullo stesso ramo, allo stesso tempo. Quindi unire codice come necessario fra quei rami ed ogni altro o ai rami ambiente. Sembra più complicato di quanto non sia in realtà.

Bene. Avere l'applicazione di sviluppo negozio e configurazione di produzione. Cose come l'accesso al database e sentieri. Non c'è alcuna ragione per mantenere stessi percorsi per server diversi (soprattutto se si mescolano Unix e Windows)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top