Come la nostra infrastruttura si adatta insieme ai nostri clienti
Pubblicato: 2022-06-03Siamo seri nel fornire la migliore esperienza al cliente con il nostro sistema operativo Engagement. Abbiamo ambizioni veramente globali per portare la nostra missione di rendere personale il business su Internet ai più grandi clienti aziendali in tutto il mondo.
Questa ambizione si riflette nel modo in cui progettiamo e costruiamo l'infrastruttura che supporta la piattaforma Intercom. Stiamo costruendo a lungo termine, ciò significa garantire l'affidabilità per impostazione predefinita e la capacità di adattarsi a una scala enorme man mano che cresciamo.
Intercom è cresciuta e continuerà a farlo: molti dei nostri clienti più longevi si sono evoluti con noi nel corso degli anni. Poiché questi clienti esistenti sono cresciuti e abbiamo accolto clienti sempre più grandi, ci siamo sempre concentrati sul dire di sì alla scalabilità.
Questo è il terzo post di una serie che esplora i modi in cui Intercom ha ridimensionato le funzioni chiave per supportare le esigenze dei clienti aziendali.
Stiamo crescendo insieme ai nostri clienti
- Vuoi servire più milioni di utenti attivi. Intercom può farlo?
- Devi archiviare più milioni di record utente. Intercom può farlo?
- Hai molte migliaia di agenti attivi che vuoi che agiscano nel tuo spazio di lavoro. Intercom può gestirlo?
Sì a tutto quanto sopra.
Oggi, i nostri sistemi sono scalabili dinamicamente per soddisfare circa 50.000 richieste Web al secondo al picco, 26.000 lavori in background al secondo e 11.000 richieste API pubbliche al secondo, a dimostrazione della nostra capacità di scalare continuamente per soddisfare i requisiti delle aziende moderne.
Vogliamo soddisfare le tue ambizioni. Ciò significa essere in grado di gestire enormi carichi di lavoro in modo affidabile e performante e di espanderli continuamente man mano che i nostri clienti crescono con noi. Vogliamo davvero collaborare con i nostri clienti per assicurarci di risolvere i loro problemi, su larga scala, a lungo termine.
In Intercom, miriamo a eseguire meno software
Ci basiamo esclusivamente su un insieme molto piccolo di tecnologie di base. Questo ci consente di sviluppare team di esperti di dominio approfonditi per supportare e consentire agli ingegneri di prodotto di creare la prossima generazione di Intercom e fornire strumenti di osservabilità di livello mondiale, scalabilità, affidabilità e modelli di costruzione sicuri per impostazione predefinita.
I nostri strumenti consentono un'elevata disponibilità
Lavoriamo esclusivamente con AWS come nostro fornitore di servizi cloud e attualmente forniamo offerte di hosting di dati in tre diverse regioni globali – Stati Uniti, UE e Australia – ciascuna progettata su più zone di disponibilità per un'elevata disponibilità.
La nostra app per i compagni di squadra è un frontend Ember.js supportato da un monolite Ruby on Rails . L'applicazione Rails è il fulcro di Intercom e ciò che distribuiamo a migliaia di lavoratori Web, API e asincroni su cluster dedicati per funzione.
"Ogni anno durante il Black Friday, poiché molti dei nostri clienti raggiungono il loro periodo di maggiore affluenza, la nostra infrastruttura si adatta senza l'intervento umano"
Questi cluster si ridimensionano automaticamente per soddisfare le richieste dei clienti mentre attraversiamo i picchi e gli avvallamenti del traffico dei clienti ogni giorno. Ad esempio, ogni anno durante il Black Friday, quando molti dei nostri clienti raggiungono il loro periodo di maggiore affluenza, la nostra infrastruttura si adatta senza l'intervento umano.
I nostri strumenti di osservabilità ci consentono di monitorare da vicino il modo in cui serviamo il traffico
I nostri strumenti di osservabilità ci assicurano di avere il polso al polso dell'efficienza e dell'efficacia con cui stiamo servendo il traffico in base al cliente. Inoltre, collaboriamo a stretto contatto con AWS su nuove tecnologie e approcci progettati per rendere la nostra rapida crescita a prova di futuro.
Oltre alle metriche e alla registrazione standard, il nostro monolite Rails è auto-strumentato con tracce di alta qualità, ricche di attributi. Ciò consente agli ingegneri di osservare la produzione senza la necessità di scrivere codice aggiuntivo.
La nostra pipeline di osservabilità si basa su Honeycomb Refinery e campiona dinamicamente richieste preziose per conservare tracce interessanti (ad esempio un errore del cliente) per impostazione predefinita. Abbiamo anche la possibilità di configurare regole personalizzate per il controllo completo del campionamento.
"Supportiamo la conservazione del 100% per fornire agli ingegneri tutti i dati di cui hanno bisogno mentre sviluppiamo nuove funzionalità o eseguiamo il debug dei problemi di produzione"
Fondamentalmente, per le transazioni più preziose, supportiamo la conservazione del 100% per fornire agli ingegneri tutti i dati di cui hanno bisogno mentre sviluppiamo nuove funzionalità o eseguiamo il debug dei problemi di produzione. Inoltre, poiché tagghiamo tutte le tracce con l'ID cliente dell'originatore della richiesta, possiamo approfondire il modo in cui uno qualsiasi dei nostri clienti sta vivendo Intercom.
Diversi datastore consentono l'ottimizzazione in vari casi d'uso
Eseguiamo diversi tipi di datastore per supportare i nostri vari requisiti di lettura e scrittura dei dati nelle applicazioni:
- AWS Aurora MySQL : i nostri datastore fonte di verità sono in gran parte basati su AWS Aurora MySQL. Come parte del nostro ridimensionamento iniziale, abbiamo suddiviso i database in base alla funzione. Una volta che i singoli cluster di database sono diventati le istanze più grandi fornite da AWS Aurora, abbiamo avviato un programma per creare database per cliente che risiedono su più cluster di cluster di database più piccoli, che ora possiamo ridimensionare sia orizzontalmente che verticalmente. Questo lavoro è stato completato all'inizio del 2020 e l'architettura ci consente di scalare indefinitamente i nostri tavoli più grandi.
- Elasticache : Davanti ai nostri database abbiamo un livello di memorizzazione nella cache basato su Elasticache.
- DynamoDB : utilizziamo DynamoDB con parsimonia per casi d'uso di lettura e scrittura molto elevati .
La ricerca è una parte indispensabile di Intercom
La ricerca è alla base di tutta una serie di funzionalità Intercom di base: visualizzazioni Posta in arrivo , API , articoli , elenco utenti, Outbound , Reporting , Resolution Bot e i nostri sistemi di registrazione interni.
La ricerca è in gran parte alimentata da molti cluster Elasticsearch per funzione. Abbiamo creato molti strumenti che automatizzano le attività più laboriose di Elasticsearch, tra cui l'applicazione di patch di sicurezza, l'aggiornamento e la sostituzione dell'hardware danneggiato. Abbiamo anche creato strumenti che ci consentono di eseguire migrazioni (in modo simile a MySQL) rispetto agli indici.
“La nostra infrastruttura globale è progettata per servire centinaia di migliaia di aziende, grandi e piccole”
Oltre a migliorare la capacità dei nostri ingegneri di iterare sullo schema degli indici su larga scala, ci consente di scomporre indici di grandi dimensioni in indici più piccoli che sono più facili da gestire e forniscono prestazioni e stabilità più elevate. Ci offre anche un'ulteriore dimensione in cui possiamo ridimensionare i nostri cluster Elasticsearch. Come il nostro approccio allo sharding di MySQL, questo ci offre molti anni di scalabilità.
L'infrastruttura globale di Intercom è progettata per la scalabilità di Internet
La nostra infrastruttura globale è progettata per servire centinaia di migliaia di aziende, grandi e piccole, e il rigore che applichiamo alla gestione delle nostre operazioni infrastrutturali assicura che le cose funzionino senza intoppi.
Durante la roadmap, il ridimensionamento è un input chiave che ogni team prende in considerazione. Le nostre regolari revisioni operative sono fornite da esperti a più livelli nei nostri team di back-end, dove valutiamo le metriche dell'infrastruttura e riesaminiamo i requisiti di capacità.
Lavoriamo duramente e in modo intelligente per mantenerlo tale, ed è per questo che i nostri clienti si fidano di noi, dalle più piccole startup alle più grandi imprese del mondo.
Scopri altri post della serie Intercom for Enterprise