Il titolo parla da sé: oggi parliamo di multi-region.
L’obiettivo di questo articolo è farti capire come un’applicazione business critical possa essere resa disponibile in diverse region mentendo il funzionamento e l’ottimizzazione delle performance grazie ad un’infrastruttura Multi-region. Per fare ciò approfondiamo un esempio pratico: Talky Time.
Perché Talky Time multi-region?
Talky Time, la suite next generation di Unified Communication di CloudFire, ha tra le funzionalità principali: Talky Time Direct Routing che rende facile e veloce integrare, attraverso un app cloud to cloud, un dominio Microsoft Teams® ai sistemi telefonici tradizionali.
Concretamente, Talky Time Direct Routing ti permette di superare diversi scogli che di regola troviamo negli strumenti di comunicazione aziendale. Tra questi: Talky Time ti svincola dal dover utilizzare dispositivi abilitati da Microsoft, e in linea con il nostro approccio Cloud, non rende più necessario alcun intervento fisico per attivare il servizio, anzi viene garantita una completa scalabilità delle risorse, e relativi costi, adattabile a qualsiasi flusso di business in qualsiasi momento e luogo.
Cosa mancava in Talky Time?
Considerando le potenzialità e i vantaggi di Talky Time, come nostro solito fare, abbiamo iniziato a fare alcune considerazioni circa la necessità di estendere il servizio ad una audience mondiale che garantisse una copertura globale con performance efficienti. La spinta in questo senso è arrivata sia dalla richiesta di alcuni nostri Partner per l’attivazione di Talky Time in paesi diversi dall'Italia, sia dalla prossima pubblicazione di Talky Time sullo Store Microsoft.
Chiarisco solamente che Talky Time Direct Routing, proprio perché si tratta di un’integrazione alla suite di Microsoft garantiva già una copertura globale; tuttavia, abbiamo voluto fare di più per minimizzare soprattutto la latenza delle chiamate in particolare nei casi di attivazioni in paesi esteri.
É partendo da questi presupposti, infatti, che abbiamo trovato una soluzione alla nostra necessità di estendere il nostro servizio Talky Time ad una audience mondiale, non solo mantenendo ma ottimizzandone le performance del servizio stesso, con l’obiettivo di poter a nostra volta rispondere in modo scalabile e automatizzato a qualsiasi richiesta da qualsiasi parte del mondo.
Un' infrastruttura cloud pronta a scalare e automatizzare
Per raggiungere tale obiettivo diventava necessario disporre di infrastrutture altamente scalabili e automatizzate, pronte a fornire risorse per rispondere alle richieste di traffico da e per le diverse region e per ciascuna logica aziendale.
L’infrastruttura backend di Talky Time che si presenta oggi è pertanto completamente rinnovata e, grazie alle risorse richieste in ciascuna region, ora è in grado di eseguire esattamente lo stesso servizio in più ambienti in diverse location.
Per completare questo passaggio è stato essenziale ragionare con un approccio DevOps e concretizzarlo con azioni e strumenti quali Terraform e Ansible.
Con Terraform infatti, strumento open-source creato da HashiCorp, abbiamo automatizzato la distribuzione dell’Infrastruttura Talky Time e il provisioning delle sue risorse in qualsiasi region di cui c’è una richiesta. Con solo pochi file di configurazione, infatti puoi creare, gestire, aggiornare ed eliminare la tua infrastruttura utilizzando quella tecnica che grazie a Terraform stessa è nota come Infrastructure as Code (IaC).
Ciò permette di costruire un’infrastruttura che combina più region e più Cloud Provider, come nel nostro caso CloudFire ed Azure, mantenendo strutture simili che facilitano il lavoro stesso degli sviluppatori che possono utilizzare gli stessi strumenti e file di configurazione per gestire simultaneamente le risorse di ogni fornitore di servizi cloud. Un singolo comando Terraform può supervisionare le distribuzioni a più provider e persino gestire le dipendenze tra cloud.
Con Ansible, anch’esso strumento in linea con l’approccio DevOps, consente di automatizzare sia le procedure di configurazione che la manutenzione di risorse Cloud. Il suo punto di forza è l’idempotenza data una specifica configurazione e ciò significa che un nodo avrà la stessa configurazione sia alla prima che all’n-esima esecuzione. Ansible infatti eseguirà un’operazione correttiva su tutte le aree che si discostano da quanto definito nella configurazione. Un’altra peculiarità di Ansible sicuramente è la sua capacità di farci configurare nodi sia nella nostra infrastruttura ma di deployare nuovi nodi anche su altre piattaforme cloud, come ancora una volta Azure per Talky Time.
La combinazione di Terraform e Ansible ci ha permesso, e ci garantisce costantemente continuità, di avere totale controllo sull’infrastruttura, di intervenire parallelamente su tutte le risorse che stanno alla base di Talky Time Direct Routing e tutto ciò permette di evitare configurazioni inconsistenti e a ridurre gli errori del fattore umano.
Da alcuni mesi, infatti, alcuni deployment in Talky Time e in Cortex sono interamente automatizzati grazie all’utilizzo di stack di servizi come Terraform, Ansible, Docker, e ciò ci permette di implementare funzionalità, come il Multi region, più velocemente.
Quale sarà la prossima novità? Raccontaci che cosa vorresti aggiungere in Talky Time 💙