Sono piuttosto nuovo all'intero stack OSS di Netflix e alle distribuzioni in generale. Come sfondo per il mio attuale livello di conoscenza dal punto di vista operativo, il mio ruolo principale è quello di ingegnere applicativo front-end. Tuttavia, mi piace il lato operativo delle cose, quindi sto tentando di impostare una nuova strategia di distribuzione e gli strumenti per un nuovo progetto.
I nostri obiettivi
- Distribuzioni semplicissime (vogliamo premere un pulsante per aggiornare la produzione)
- Distribuzioni automatizzate per testare ambienti (usando Jenkins)
- Facilità di manutenzione (abbiamo un'app da scrivere, non vogliamo passare il tempo a armeggiare con problemi di produzione)
- Capacità di gestire un'architettura orientata ai servizi (molte piccole app, varie lingue e archivi dati)
- Abbastanza flessibilità per garantire che non dovremo cambiare strategia in qualunque momento presto (stiamo già cercando di allontanarci da RightScale)
Siamo d'accordo con un po 'più di tempo di installazione iniziale, se così facendo ci risparmieremo qualche mal di testa in futuro.
Quindi, seguendo queste linee, ho ascoltato podcast, guardato i talk di Ops e letto tonnellate di post sul blog e sulla base dei nostri obiettivi e di quelli che ho preso per formare alcune best practice, abbiamo iniziato a formare un piano usando Asgard, arrotolando il nostro pacchetto in un barattolo e trasformandolo in un AMI.
Avevamo pianificato tutto questo e apprezziamo i vantaggi del processo rispetto all'utilizzo di un server Chef e istanze convergenti al volo (ritenevamo che questo fosse soggetto a errori, data la nostra timeline limitata e la mancanza di comprensione intorno al flusso di lavoro di un server Chef). Tuttavia, un collega si è guardato un po 'in giro da solo e ha sentito che l'Elastic Beanstalk ha soddisfatto i nostri bisogni.
L'ho esaminato e ho creato un ambiente di test con un file WAR e un database RDS allegato. Le cose sembrano funzionare e credo che possiamo automatizzare le distribuzioni in un ambiente di test usando Jenkins tramite l'API AWS. Sembra abbastanza semplice ... forse troppo semplice.
Quello che mi chiedo è, qual è il trucco? Se l'Elastic Beanstalk è così semplice ed efficace, perché non ne parla più? Sto facendo fatica a trovare abbastanza opinioni e fatti oggettivi sulle due diverse strategie di schieramento, quindi ho pensato di chiedere in giro.
Usi Elastic Beanstalk? In tal caso, perché e quali fattori portano a tale decisione? Cosa ti piace e non ti piace?
Se non usi l'Elastic Beanstalk ma lo consideri, cosa usi e perché non hai usato l'Elastic Beanstalk?
Quali sono i vantaggi e gli svantaggi di una strategia di implementazione basata su Elastic Beanstalk per una SOA? Cioè, Elastic Beanstalk funzionerà bene con molte piccole applicazioni che si basano l'una sull'altra per funzionare?