Sviluppo server remoto [chiuso]

0

Stiamo lavorando ad un progetto django che è ospitato su un'istanza di Amazon ec2. È in una fase molto iniziale, quindi le modifiche vengono apportate costantemente e la webapp deve essere aggiornata più di una volta al giorno. In questo momento, il ciclo di sviluppo assomiglia a:

  1. Il codice è stato modificato / aggiunto / eliminato.
  2. Viene trasferito in un repository di bitbucket.
  3. Accedo al server ec2 con ssh .
  4. Estrai il nuovo codice dal repository e unisci.
  5. Riavvia il server.

Anche se fa il lavoro, non mi sembra che sia il modo migliore per lavorare con i server remoti.

Quali sono le ben note tecniche di sviluppo sui server remoti?

    
posta khajvah 18.04.2015 - 10:49
fonte

2 risposte

1

Penso che ciò di cui hai bisogno è un server CI (Continuous Integration). Puoi ospitare il tuo, ad esempio Jenkins che ha integrazione BitBucket o utilizzare un servizio in hosting come CodeShip che ha un piano gratuito.

Potresti provare a impostare il tuo set di script per svolgere un lavoro simile, ma il settore ha già fornito una soluzione in questo ambito.

Non hai menzionato i test nella tua domanda, ma puoi anche ottenere questi strumenti CI per eseguire i test anche per te, quindi le build scadenti non entrano in produzione.

    
risposta data 18.04.2015 - 11:00
fonte
1

Esistono molte soluzioni possibili al tuo problema. È possibile scrivere facilmente script per automatizzare i passaggi del processo o utilizzare una soluzione di integrazione continua già pronta all'uso. Descriverò in breve la prima soluzione, in cui scrivi gli script per farlo da solo.

Sul server in cui è distribuita la tua webapp mywebapp , scrivi una piccola shell di script mywebapp_deployment_tool che distribuisce l'ultima versione dell'applicazione. Ti suggerisco di mantenere un ramo dedicato live o release corrispondente alla versione distribuita più recente e che è distinto dal ramo di sviluppo. Il lavoro dello script sarebbe quindi:

  1. Verifica il ramo live più recente.
  2. Riavvia il server (forse kill -HUP farebbe).

Ora crea un repository git di proprietà dell'infrastruttura di distribuzione¹¹ sul server e configura un hook git che attiverà il tuo mywebapp_deployment_tool ogni volta che un commit viene trasferito al live branch.

Sul tuo repository di sviluppo, configura un hook git che invierà automaticamente le merges al ramo live nel repository sul server. Questo, a sua volta, attiva lo script di distribuzione.

Nota inoltre che VirtualBox o jail di FreeBSD può essere utilizzato per configurare un ambiente in cui puoi testare la tua webapp prima di unire le modifiche a live .

¹ Questo significa solo che questo repository non dovrebbe essere usato per lo sviluppo.

    
risposta data 18.04.2015 - 17:11
fonte

Leggi altre domande sui tag