2010-02-19 11 views
8

È stato scritto molto sulla distribuzione di applicazioni di crunch di dati su EC2/S3, ma mi piacerebbe sapere qual è il tipico flusso di lavoro per lo sviluppo di tali applicazioni?Flusso di lavoro per lo sviluppo di applicazioni di crunch numerico su amazon ec2/S3

Diciamo che ho un 1 TB di dati di serie temporali per cominciare e sono riuscito a memorizzare questo su S3. Come scriverei applicazioni e fare analisi dei dati interattive per costruire modelli di machine learning e poi scrivere programmi di grandi dimensioni per testarli? In altre parole, come si fa a configurare un ambiente di sviluppo in una situazione del genere? Avvio di un'istanza EC2, sviluppo software su di esso e salvataggio delle modifiche, e spegnimento ogni volta che voglio lavorare?

In genere, accendo R o Pylab, leggo i dati dalle unità locali e faccio le analisi. Quindi creo applicazioni basate su quell'analisi e lasciamo perdere quei dati.

Su EC2, non sono sicuro di poterlo fare. Le persone mantengono i dati localmente per l'analisi e usano EC2 solo quando hanno grandi lavori di simulazione da eseguire?

Sono molto curioso di sapere cosa stanno facendo gli altri, in particolare le start-up che hanno la loro intera infrastruttura basata su EC2/S3.

risposta

2

Creiamo una linea di base, custom AMI con tutti i programmi che sappiamo che avremo sempre bisogno già nell'AMI.

Il software che sviluppiamo (e aggiornare costantemente) viene memorizzato sulla memoria esterno (usiamo un repository Maven, ma è possibile utilizzare qualsiasi cosa che funziona bene con l'ambiente.

Abbiamo poi il fuoco su nostra abitudine AMI con tutto abbiamo bisogno su di esso, distribuire l'ultima versione del nostro software da Maven, e siamo pronti per partire

Così il flusso di lavoro è la seguente:.

Setup

Creare un AMI personalizzato con roba avremo sempre bisogno di

corso

sviluppare software in locale Distribuzione binari a storage esterno (repository Maven nel nostro caso) fuoco fino istanze multiple di personalizzato in base alle esigenze AMI Copia i binari da una memoria esterna in ogni istanza Esegui su ogni istanza

+0

Grazie per aver condiviso questo. Quindi, in pratica, manterrai una copia locale dei dati e svilupperai anche localmente (off-amazon) ma eseguirai esperimenti su Amazon? – signalseeker

+0

La nostra azienda non è esperimenti, ma essenzialmente è ciò che facciamo. Parte dell'applicazione esterna include tabelle e regole fiscali molto grandi. Li manteniamo nella nostra rete e inviamo aggiornamenti ad Amazon ogni volta che cambiano le tariffe o le regole (di solito a mezzanotte alla fine di ogni mese). –

0

I-barra-Abbiamo una certa esperienza nel fare il genere di cose che stai cercando di fare. Ciò che Eric J. ha detto in sintesi lo riassume. Ma permettetemi di reiterare,

  1. Configurare un repository di codice su un server che è sempre attivo. Usiamo la sovversione. Questo server non deve essere una macchina ec2, o molto bene potrebbe anche essere un ec2. La tua scelta.

  2. Creare un AMI personalizzato di; (a) Verifica della base di codici su una macchina EC2. (b) Installazione di tutte le dipendenze del codice su questa macchina. (c) Salva immagine su s3.

  3. La prossima volta avviare con AMI salvata in 1.Esegui i tuoi esperimenti, modifica il codice come preferisci, controlla le modifiche in sovversione in modo che quando torni lo fai salvare lì.

  4. Un'alternativa è utilizzare un volume EBS. Ogni volta che avvii un'istanza EC2, allega il volume EBS. Questo volume può contenere il tuo codice e qualsiasi altra cosa di cui hai bisogno per persistere nel cloud!

+0

Grazie. Quindi, ancora una volta, il punto importante è che tutto lo sviluppo/analisi avviene fuori amazzone e una volta che sei pronto per eseguire esperimenti, lo hai impostato su un cluster ec2 personalizzato. – signalseeker

Problemi correlati