Grazie ad AWS, avremo maggiore ridondanza e resilienza per i nostri utenti globali e ciò ci offre prospettive completamente nuove in termini di crescita futura. 
Vijay Ramesh Lead Data Engineer

Change.org è la piattaforma di social change più grande del mondo, con oltre 130 milioni di utenti in 196 Paesi. In qualità di azienda di tipo “B” certificata, ovvero un nuovo tipo di società che sfrutta la potenza aziendale per il bene sociale, la missione aziendale consiste nell'offrire a chiunque ovunque si trovi il cambiamento che desidera vedere. Trattandosi di una piattaforma aperta, chiunque può avviare una campagna e mobilizzare immediatamente centinaia di persone a livello locale o centinaia di migliaia di persone in tutto il mondo, per creare il cambiamento, dal fermare il bullismo nelle scuole all'interrompere gli attacchi con acido in India. Change.org ha sede a San Francisco e tra gli investitori si annoverano Bill Gates, Richard Branson, Arianna Huffington e i fondatori di LinkedIn, Yahoo, Twitter ed eBay. 

Poiché Change.org è cresciuta rapidamente negli ultimi anni, soprattutto a livello internazionale, ha cercato di offrire nuove funzionalità del sito con maggiore regolarità. Tuttavia, all'organizzazione mancava l'elasticità per farlo con la precedente infrastruttura gestita tramite cloud. "Il nostro team data science desiderava in particolare iterare più rapidamente ma avevamo alcuni problemi con il nostro precedente ambiente che a volte rendeva impegnativa l'aggiunta rapida di nuove risorse" sostiene Vijay Ramesh, lead data engineer per data science presso Change.org. "Avevamo anche bisogno dell'agilità per eseguire le iterazioni utilizzando tipi molto diversi di topologie di macchine per l'apprendimento automatico. Volevamo ad esempio utilizzare macchine con molti core e utilizzare al contempo macchine più piccole con processi paralleli".

Change.org si affida molto anche all'integrazione continua (CI), ovvero una pratica di sviluppo che richiede l'integrazione di codice in un repository diverse volte al giorno, per assicurare codice ad alta qualità. Tuttavia l'organizzazione utilizzava un sistema CI sviluppato internamente che stava ritardando il rilascio di nuove caratteristiche. “Il completamento di ogni build CI richiedeva fino a un'ora, che è decisamente troppo” sostiene Ramesh. “Ciò rendeva troppo complesso testare rapidamente nuove caratteristiche e distribuirle.” Il sistema richiedeva inoltre troppi interventi di manutenzione pratici. “Diversi nostri ingegneri impiegavano qualche ora al giorno per mantenere il flusso di lavoro CI ma questa non è la nostra competenza principale” dichiara Ramesh. “Desideriamo focalizzare tutto il nostro tempo sullo sviluppo di nuove caratteristiche.”

L'organizzazione aveva inoltre bisogno di ridimensionare più facilmente la piattaforma del proprio sito Web per gestire i picchi di traffico. “Riscontriamo massicci picchi di traffico quando siamo citati dai media, ad esempio, ma per noi non era semplice gestire i nodi del server in tempo reale a supporto di tali picchi” sostiene Ramesh. “Era necessario un intervento manuale da parte nostra e ci voleva più di un'ora per rendere disponibili nuove risorse e metterle in produzione per rispondere a tali picchi.”

Determinato a trovare una piattaforma Web scalabile e più agile, il team di data science di Change.org ha deciso di spostare alcune delle proprie risorse di apprendimento automatico su Amazon Web Services (AWS). “Ci piaceva la flessibilità e la scalabilità di AWS” sostiene Ramesh. Il team data science ha iniziato a utilizzare le istanze di Amazon Elastic Compute Cloud (Amazon EC2) nella produzione per il targeting e-mail e il lavoro della pipeline batch.

Successivamente Change.org ha configurato due cluster Amazon Redshift per un totale di 16 terabyte ciascuno. Entrambi i cluster contengono tutti i dati relazionali e sugli eventi della società. Il primo è un cluster BI (Business Intelligence) di produzione che esegue lo streaming dei dati dei clienti da un database MySQL in Redshift. Il secondo cluster viene utilizzato per l'analisi offline e il dipartimento di ricerca e sviluppo raccoglie i dati sperimentali e degli eventi di registro da Amazon Simple Storage Service (Amazon S3) e li carica in Redshift. Questo cluster viene mantenuto aggiornato tramite il servizio AWS Data Pipeline. “Ci piace sperimentare nuove caratteristiche e modifiche al sito, così abbiamo creato un sistema dove i nostri ingegneri possono lavorare su tutto quello che desiderano senza doversi preoccupare di influenzare la produzione” afferma Ramesh. Gli analisti aziendali dell'organizzazione possono inoltre creare rapporti ed eseguire pannelli di controllo per analizzare i dati dei flussi di eventi in Redshift. Molti degli strumenti e-mail dell'organizzazione interrogano Redshift.

Anche se Change.org continua a mantenere alcune delle proprie risorse sul proprio ambiente locale, utilizza con maggiore frequenza le risorse AWS on demand e sta per eseguire la migrazione del proprio ambiente di produzione completo su AWS.

Change.org ha inoltre scelto di utilizzare Solano CI, una soluzione CI in hosting. Solano CI viene eseguito completamente su AWS utilizzando Elastic Load Balancing per instradare il traffico in ingresso, Amazon S3 per l'archiviazione dei dati e Amazon Relational Database Service (Amazon RDS) per eseguire il proprio database. Solano CI è un sistema scalabile progettato per ridurre il tempo di esecuzione dei test per gli sviluppatori, alleggerendo la manutenzione del sistema CI e ottimizzando l'utilizzo delle istanze AWS, riducendo sensibilmente il costo di proprietà. “Dall'implementazione di Solano CI, siamo riusciti a spegnere completamente il nostro sistema CI locale” afferma Ramesh.

Sfruttando l'elasticità on demand di AWS, Change.org è in grado di sviluppare nuove caratteristiche più velocemente. “Il nostro team data science può iterare molto velocemente grazie all'elasticità di AWS” afferma Ramesh. “Ad esempio, quando creiamo motori di raccomandazione, le richieste di calcolo variano molto in base al tipo di algoritmo che utilizziamo o alla quantità di dati coinvolti. Ora possiamo fare tutto nell'immediato con AWS, utilizzando solo le risorse di cui abbiamo bisogno in base a ciò che stiamo facendo per quel progetto. Pertanto non dobbiamo requisire server o pianificare in anticipo.”

L'organizzazione può anche fare affidamento sul proprio ambiente di test automatizzato Solano CI per ridurre i tempi di esecuzione dei test e distribuire nuove caratteristiche più velocemente nella produzione. Da quando è passata a Solano CI, l'organizzazione ha ridotto i propri tempi medi di creazione da un'ora a 15 minuti tramite la parallelizzazione automatica di Solano CI. “Possiamo distribuire ogni giorno maggiori build CI, il che significa che ogni giorno possiamo inserire maggiori modifiche al sito” dichiara Ramesh. “Stiamo offrendo valore più velocemente ai nostri utenti finali grazie a Solano CI.” Change.org può inoltre identificare più velocemente i difetti in quanto è in grado di eseguire maggiori test con Solano CI. Afferma “Individuando i difetti più velocemente, possiamo assicurare un codice di qualità superiore e produrre quindi caratteristiche migliori.”

Change.org dispone inoltre della disponibilità di cui ha bisogno per supportare i picchi di traffico. “Possiamo rispondere in maniera molto più semplice ai picchi di traffico sul nostro sito Web grazie ad AWS” dichiara Ramesh. "Nel momento in cui notiamo maggiore traffico, nuovi server in background diventano automaticamente online. E nel momento in cui il traffico diminuisce, tali server tornano nuovamente offline. È molto affidabile e veloce. Inoltre, poiché non richiede l'intervento manuale da parte dei nostri ingegneri, non è necessaria un'ora per avviare nuove risorse. È istantaneo".

Inoltre, l'ambiente Solano CI è progettato per ridimensionare, così Change.org può supportare al meglio gli incrementi nei requisiti di test build. "A volte, quando stiamo per rilasciare caratteristiche maggiori e ci stiamo per avvicinare a una scadenza, abbiamo un numero inusualmente elevato di build da dover eseguire" afferma Ramesh. "Solano CI ridimensiona per supportare tali esigenze poiché usufruisce della scalabilità di AWS".

Inoltre, poiché il suo sistema CI è ora basato sul cloud, gli sviluppatori di Change.org non devono più dedicarsi alle attività di manutenzione. Solano CI ottimizza in maniera intelligente e automatica i test, in modo che gli sviluppatori di Change.org non debbano gestire un sistema CI, configurare le macchine virtuali o assicurarsi che i nodi CI stiano funzionando correttamente. "I nostri sviluppatori non devono preoccuparsi di dover mantenere il nostro sistema CI" afferma Ramesh. "Possono affidarsi a Solano CI per fare tutto, in modo da potersi quindi focalizzare su quello che sanno fare meglio: creare strumenti straordinari per il nostro sito Web che offre il miglior valore ai nostri utenti finali in tutto il mondo".

Change.org prevede di espandere significativamente il proprio utilizzo di AWS una volta completata la migrazione all'ambiente. "Siamo estremamente entusiasti del fatto che AWS abbia più regioni e zone di disponibilità in tutto il mondo, qualcosa che non avevamo con la nostra precedente soluzione" dichiara Ramesh. "Essere in grado di creare l'architettura di un sito Web che ci consentirà di rispondere al traffico globale rappresenta un grande vantaggio per noi. Siamo cresciuti tantissimo a livello internazionale negli ultimi anni e saremo in grado di accelerare ulteriormente tale crescita utilizzando AWS. Avremo maggiore ridondanza e resilienza per i nostri utenti globali e ciò ci apre prospettive completamente nuove in termini di crescita futura".

solano-labs-logo

Partner tecnologico avanzato di AWS Partner Network (APN) con competenza AWS DevOps. Solano Labs fornisce potenti sistemi scalabili per l'integrazione continua (CI) e la distribuzione continua (CD) che consentono agli sviluppatori software di migliorare l'efficienza e la qualità di progettazione, riducendo i costi.

Per ulteriori informazioni su come Solano Labs può aiutare la tua azienda a creare e gestire il tuo ambiente AWS, vedi il listino di Solano Labs nella directory dei partner AWS.
 

Per ulteriori informazioni su come AWS può aiutare a gestire il tuo sito Web nel cloud, visita la nostra pagina su siti Web e hosting di siti Web.