CASE STUDY N#1 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley

Pagina creata da Angelo Giovannini
 
CONTINUA A LEGGERE
CASE STUDY N#1 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
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 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
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 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
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 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
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 Deploy e automazione di un'applicazione scalabile con il supporto di SaltStack per Corley
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