CASE STUDY N#1 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
CASE STUDY N#1 CASE STUDY N#1 Deploy e automazione di un’applicazione scalabile con il supporto di SaltStack per Corley © Enter srl - ISO 9001/27001 Quality System Certification - All rights reserved - www.entercloudsuite.it 1
CASE STUDY N#1 SUMMARY I risultati • Abbattimento dei costi dell’infrastruttura del Il deploy e 50% rispetto al prezzo di corrispondenti server dedicati* l’automazione di un’applicazione • Riduzione consistente del time to market, sia in fase di installazione della prima infrastruttura scalabile con il che in occasione dei successivi adattamenti: il risparmio di tempo per l’introduzione di un supporto di SaltStack nuovo nodo è stato stimato nell’intorno del 95% • Miglioramento della velocità dell’applicazione, per effetto di bassi tempi di latenza garantiti da un’infrastruttura cloud situata in Italia I protagonisti Walter Dal Mut e Gabriele Mittica, soci fondatori • Abbattimento dei tempi di gestione per effetto di Corley. Corley è un’azienda nata nel 2012 di tool di automazione, quali SaltStack, che che riunisce professionisti con un’esperienza fanno chiamate ad Enter Cloud Suite attraverso pluriennale nei servizi cloud e nello sviluppo di le API standard di OpenStack applicativi web. • Affidabilità dell’applicazione anche in caso di problematiche dei server su cui risiede. Il settore Servizi IT e sviluppo web La sfida Corley si è trovata di fronte alla necessità di fare il deploy di Cwitter, un’applicazione PHP-MySQL, con previsione di 800 utenti contemporanei. L’esigenza ” Abbiamo creato un’infrastruttura a livelli, scalabile automaticamente in base alle necessità dell’applicazione. Questo ci ha permesso di non allocare risorse di calcolo eccessive che era quella di avere un’infrastruttura conveniente, sarebbero rimaste inutilizzate. Con Enter Cloud scalabile e in alta affidabilità su cui poter installare Suite abbiamo risparmiato tempo e denaro. l’applicazione, senza doverne modificare il codice sorgente ad ogni aggiornamento o estensione dell’infrastruttura. CONTATTACI PER SAPERNE DI PIÙ O PER CHIEDERE UN PREVENTIVO La soluzione info@entercloudsuite.com Creazione di un’architettura su Enter Cloud Suite +39 02 25514886 composta da 19 nodi e 4 livelli (proxy, applicativo, cache, dati), deploy dell’applicazione, esecuzione di operazioni di automazione e orchestrazione con SaltStack per gestire gli aggiornamenti e scalare * Dati rilevati il 21 luglio 2014, confrontando il prezzo l’infrastruttura. delle istanze di ECS con il prezzo di server dedicati OVH 2
CASE STUDY N#1 CASE STUDY • 1° livello: proxy • 2° livello: applicativo • 3° livello: caching (per velocizzare l’applicazione) • 4° livello: base dati (tipica base dati MySQL) I protagonisti Walter Dal Mut e Gabriele Mittica, soci fondatori Mettere tutto su un server solo avrebbe generato di Corley. Corley è un’azienda nata nel 2012 una serie di problemi. che riunisce professionisti con un’esperienza In primis, ci sarebbe stata una cannibalizzazione pluriennale nei servizi cloud e nello sviluppo di di risorse: ad esempio, Memcached e MySQL “si applicativi web. sarebbero rubati la RAM”, perché entrambi i servizi ne fanno largo uso. Secondariamente, sarebbe stato difficile gestire la scalabilità perché ognuno dei La sfida livelli scala a modo proprio. Da ultimo, non sarebbe Corley ha sviluppato un’applicazione, Cwitter, che, stata comunque garantita l’alta affidabilità, essendo come Twitter, consente agli utenti di pubblicare l’applicazione residente su un singolo nodo. brevi messaggi di testo. Può essere utilizzata per generare meccaniche di networking durante eventi dedicati ad una cerchia La soluzione di persone come, ad esempio, tutti i partecipanti ad Per far fronte a queste criticità, è stata scelta un grande congresso. l’infrastruttura cloud di Enter Cloud Suite. Trattandosi di un’applicazione esposta a picchi In particolare, da un punto di vista architetturale, di traffico forti ma limitati nel tempo (nel caso invece di utilizzare una o più macchine per tutta specifico si parla di un massimo di 800 utenti l’applicazione replicata più volte nella sua interezza, contemporanei), si è posto il problema di come sono state utilizzate istanze diverse per ciascuno creare un’infrastruttura efficiente e scalabile, con dei differenti livelli dell’applicazione; questo ha lo scopo di evitare inutili costi durante i tempi consentito di gestire la scalabilità in funzione delle morti: di fatto, prima e dopo l’evento nessun effettive esigenze di calcolo di ciascun livello e di utente avrebbe usato l’applicazione. Inoltre, data ottimizzare l’investimento in risorse. l’importanza dell’evento, doveva essere garantita l’alta affidabilità. “Gestire un’infrastruttura realmente cloud Cwitter è un’applicazione PHP-MySQL con una e distribuita è impensabile senza dei tool struttura “classica”, articolata in 4 livelli: di automazione”, sostiene Walter. Fig. 1. Home page Cwitter 3
CASE STUDY N#1 Per automatizzare la scalabilità dell’infrastruttura, Analoghi benefici sono stati raggiunti per la è stato usato il tool SaltStack, che facilita velocizzazione delle operazioni di aggiornamento. l’orchestrazione delle operazioni di deploy di un software su più macchine, attraverso chiamate API “Corley lavora sull’ottimizzazione alle risorse di Enter Cloud Suite. Enter Cloud Suite, delle applicazioni a 360°”, ribadisce Walter. infatti, rende immediata la creazione di nuove risorse. SaltStack ha facilitato l’automazione anche Poter far affidamento su un’infrastruttura della parte software dell’applicazione. con tempi di latenza convincenti, più bassi Separare i servizi è stato anche utile per di alcuni provider americani, ha consentito di monitorarne la corretta funzionalità, oltre che a poter migliorare ulteriormente le performance gestire il dimensionamento dell’infrastruttura in dell’applicazione. modo più efficiente. Non ci sono stati problemi ma, in caso si fossero verificati, un’architettura cloud “A noi interessa l’affidabilità del servizio, avrebbe consentito di identificare più facilmente i non tanto l’affidabilità del server”. colli di bottiglia e di gestirli prontamente. Sul tema dell’alta affidabilità, è stata considerata In questo senso Enter Cloud Suite è stato un la tecnica della “fiamma pilota”: una piccolissima servizio particolarmente utile. Poter replicare istanza, su un’altra region, ad Amsterdam. In caso di l’infrastruttura su una seconda region, in caso di disastro o di un semplice problema di connettività down (non verificatosi) della prima, ha consentito sull’area geografica di Milano, l’intera infrastruttura di realizzare un’applicazione in alta affidabilità. avrebbe potuto essere ricostruita, partendo dalla fiamma pilota, sul nodo di Amsterdam in pochi minuti e, con un semplice cambiamento del Il progetto tecnico puntamento del DNS, l’applicazione avrebbe girato Per quanto riguarda l’architettura, ad ogni livello sulla nuova infrastruttura in Olanda. sono state abbinate istanze proporzionate al Infine, la scelta è ricaduta su Enter Cloud Suite compito e alle necessità di calcolo che ciascun livello anche per motivi di tempi di latenza. Come deve svolgere (Fig. 2). region primaria è stata scelta l’Italia, visto che Per le funzionalità di proxy, sono state create 3 gli accessi all’applicazione si sarebbero verificati macchine con il taglio più basso e1standard.x1. principalmente da punti di accesso alla rete italiana. Anche per i server web sono state create 8 istanze molto piccole con flavor e1standard.x1 (1 CPU, 0,5 GB RAM, 20 GB storage); difficilmente un server I risultati Apache richiede molte risorse se deve solo eseguire La scelta di Enter Cloud Suite si è tradotta operazioni di web application, quindi degli script. innanzitutto in un risparmio del 50% rispetto ai costi Per il livello di cache e di gestione della sessione di un’infrastruttura dedicata*. (con utente univoco indipendentemente dal web Da un punto di vista del time to market, con l’aiuto server su cui fosse atterrato), sono state selezionate di SaltStack collegato ad Enter Cloud Suite, è stato 4 macchine e1standard.x4 “RAM intensive” (2 CPU, possibile ridimensionare l’infrastruttura o deployare 4 GB RAM, 160 GB storage), come richiesto da l’applicazione su un’infrastruttura gemella in una Memcached che lavora tutto in RAM. region differente in pochi minuti, con un risparmio La parte più complicata riguarda il livello del di tempo del 95% rispetto ad una riconfigurazione database. Partendo dal presupposto che il master manuale. Ad esempio, aggiungere una macchina deve solo scrivere e farlo spesso, mentre le tradizionale con funzioni di web server e collegarla macchine slave devono leggere velocemente, è stata ad un proxy comporta almeno 4 ore di lavoro; con configurata un’architettura master-slave composta SaltStack collegato ad Enter Cloud Suite tutte le da 1 macchina master e1standard.x4 (2 CPU, 4 GB operazioni si esauriscono in 10 minuti. RAM, 160 GB storage) e 3 macchine slave più potenti e1standard.x7 (4 CPU, 8 GB RAM, 1200 GB storage). Solo alle tre istanze di proxy è stato abbinato * Rilevazione fatta il 21 luglio 2014 su listini Enter Cloud un IP pubblico e, pertanto, le stesse sono state Suite e listini on line per server dedicati OVH. rese raggiungibili da fuori; le altre (web, caching, 4
CASE STUDY N#1 db) sono state mantenute private, grazie alla Aggiungendo una nuova istanza ad un gruppo, ad configurazione dei Security Group messi a esempio quello dei web server, SaltStack innesca disposizione da Enter Cloud Suite. Sono state la creazione di una nuova istanza, la aggiunge al quindi eliminate le connessioni con l’esterno non gruppo e il proxy automaticamente serve il necessarie, con un conseguente aumento della traffico al nuovo web server, su cui l’applicazione sicurezza dell’applicazione (Fig. 3). è stata resa disponibile. Con questo tipo di architettura, non essendoci Nelle figure 3 e 4 si illustrano alcune operazioni colli di bottiglia sul database, è stato sperimentato di esecuzione integrata su più macchine. come incrementando il numero di web server Il tutto, senza dover intervenire sul software aumentasse sensibilmente anche la possibilità dell’applicazione. di gestire molte più richieste al secondo, migliorando tangibilmente la performance “È l’infrastruttura che si adatta all’applicazione, dell’applicazione. non viceversa (...) Di fatto, osserva Gabriele, ci Entrando nel merito dell’orchestrazione siamo potuti concentrare sul continuous delivery dell’infrastruttura con SaltStack, di fatto sono dell’applicazione; l’infrastruttura di produzione, stati creati dei “gruppi” di istanze, per ciascuno dopo essere stata configurata, va da sola!”. dei quali sono state indicate regole sia relative alle risorse delle macchine appartenenti al gruppo sia relative al deploy della parte software. Fig. 2. Architettura di CTwitter su Enter Cloud Suite 5
CASE STUDY N#1 Fig. 3. Gestione dei security group Fig. 4. Creazione di una nuova macchina database a partire dal modello RDB definito precedentemente Fig. 5. Collegamento di un nuovo MySQL Slave direttamente in modo centralizzato e automaticamente replicato su tutti gli slave presenti Cosa dice il cliente di noi “Avere più server spaventa: con gli strumenti che allocare risorse di calcolo eccessive che sarebbero ci sono oggi, infrastrutture convenienti, aperte rimaste inutilizzate. Con Enter Cloud Suite abbiamo ed elastiche come Enter Cloud Suite e tool di risparmiato tempo e denaro.” orchestrazione e automazione come SaltStack, la gestione delle applicazioni risulta più facile, più rapida e meno costosa.” “Enter Cloud Suite ci ha aiutato a creare CONTATTACI PER SAPERNE DI PIÙ un’infrastruttura scalabile orizzontalmente per O PER CHIEDERE UN PREVENTIVO la nostra applicazione a più livelli: questo ci ha consentito di scalare in modo efficiente, veloce, con bassi tempi di latenza a tutto vantaggio delle performance dell’applicazione. Il tutto in tempo reale, senza dover chiedere aiuto a nessuno.” “Abbiamo creato un’infrastruttura a livelli, scalabile automaticamente in base alle necessità www.entercloudsuite.com dell’applicazione. Questo ci ha permesso di non info@entercloudsuite.com · +39 02 25514886 6
Puoi anche leggere