Gestione dell'alta disponibilità in Intercom
Pubblicato: 2022-05-06Intercom è un'azienda orientata al prodotto, focalizzata sulla massimizzazione dell'innovazione del prodotto e della velocità di sviluppo.
Ciò significa anche che ci atteniamo a standard operativi elevati: riducendo al minimo i costi, affrontando rapidamente i problemi di qualità che sorgono all'interno dei prodotti esistenti e mitigando i rischi per la sicurezza.
Il fondamento della nostra salute operativa è la disponibilità. Senza una solida disponibilità, nient'altro conta. Per realizzare la nostra missione di rendere il business su Internet personale e di scalare per supportare clienti sempre più grandi, abbiamo investito continuamente, con attenzione e con attenzione nelle nostre persone, sistemi e processi per mantenere gli elevati standard di disponibilità di Intercom.
“Il segreto del successo di Intercom in questo ambito è semplice: anni di lavoro culturale, organizzativo e ingegneristico coerente, attento e sfaccettato”
Il segreto del successo di Intercom in questo ambito è semplice: anni di lavoro di ingegneria culturale, organizzativa, dei sistemi e del software coerente, attento e sfaccettato. Ecco perché i nostri clienti, dalle piccole startup alle grandi imprese complesse, si affidano a noi.
Ecco come lo facciamo.
La disponibilità è radicata nella nostra cultura
Il ruolo che ogni dipendente di Intercom svolge nel supportare la disponibilità è profondamente radicato nella nostra cultura. Per i team di ingegneri, portare il codice in produzione il più rapidamente possibile in piccoli lotti ci consente di apprendere e iterare.
Invece di rallentare i nostri ingegneri, investiamo in sistemi e costruiamo una cultura attorno a cosa significa costruire in modo rapido e sicuro. Istruiamo i nostri ingegneri in merito a queste politiche e processi durante tutta la loro carriera in Intercom, dall'inserimento dei dipendenti alle revisioni delle prestazioni. Non sono solo le modifiche al codice isolate che vengono spedite in modo sicuro, il nostro intero processo di consegna del software mira a garantire che, in ogni fase, stiamo costruendo prodotti affidabili e scalabili per impostazione predefinita.
"Il nostro set di strumenti per l'osservabilità è di prim'ordine e consente a ogni ingegnere dell'azienda di comprendere, al più piccolo livello di dettaglio, come si comporta il codice inviato in un ambiente di produzione"
Il nostro set di strumenti per l'osservabilità è di prim'ordine e consente a ogni ingegnere dell'azienda di comprendere, al più piccolo livello di dettaglio, come si comporta il codice inviato in un ambiente di produzione. Nonostante tutte le nostre migliori intenzioni, tuttavia, alcune modifiche al codice causeranno inevitabilmente dei problemi. Ecco perché investiamo anche in meccanismi che ci consentono di riprenderci dai problemi anche più velocemente di quanto implementiamo.
Costruiamo solide basi tecniche
Costruiamo esclusivamente con un numero molto ridotto di tecnologie come parte del nostro stack, supportati da uno specifico team di abilitazione delle "tecnologie di base". Abbiamo sviluppato una profonda esperienza in queste tecnologie nel tempo e le nostre scelte di architettura e modelli di implementazione sono semplici e collaudati. Ciò significa che sappiamo cosa significa progettare e costruire per garantire l'affidabilità, con soluzioni comprovate su larga scala.
"Investiamo nella creazione e nella manutenzione di sistemi e strumenti condivisi che sono alla base della nostra capacità di spedire codice in modo sicuro e di ripristinarlo rapidamente nel caso qualcosa vada storto"
Utilizzando queste tecnologie di base, investiamo nella creazione e nella manutenzione di sistemi e strumenti condivisi che sono alla base della nostra capacità di inviare codice in modo sicuro e di ripristinarlo rapidamente nel caso qualcosa vada storto.
Questo tipo di automazione ci dà la possibilità di implementare le modifiche su una piccola percentuale del traffico dei clienti, o su un insieme specifico di clienti, al fine di comprenderne l'impatto. Possiamo facilmente attivare o disattivare l'accesso di qualsiasi cliente a una funzione, una funzionalità utile se si verifica un incidente. Possiamo anche recuperare semplicemente optando per premere il pulsante per "tornare indietro" a una versione funzionante sicura del codice , in meno di cinque minuti.

Manteniamo relazioni molto strette con il nostro principale fornitore di infrastrutture cloud, Amazon Web Services (AWS), per valutare continuamente insieme la robustezza della nostra piattaforma infrastrutturale e capire se ci sono opportunità per evolvere e rafforzare ulteriormente la nostra affidabilità.
Gestiamo il rischio e rispondiamo istantaneamente quando le cose vanno male
Parte della strategia del programma mira a identificare, dare priorità e mitigare i rischi che minaccerebbero la nostra disponibilità. All'interno dell'organizzazione di ingegneria, disponiamo di un responsabile del programma tecnico (TPM) dedicato alla disponibilità che guida un programma interfonico dedicato al rafforzamento e alla protezione continui della nostra disponibilità.
"Il team del programma lavora con i manager di Engineering per comprendere a fondo tutti i rischi che stiamo affrontando"
Il team del programma lavora con i manager di Engineering per comprendere appieno tutti i rischi che stiamo affrontando. A questi elementi viene quindi assegnata la priorità come input per le roadmap di progettazione, con il TPM che aiuta a garantire che il lavoro venga eseguito secondo la pianificazione.
Quando incontriamo un incidente che ha un impatto sui nostri clienti, le nostre estese piattaforme di monitoraggio e allarme lo rilevano quasi istantaneamente e il nostro processo di risposta agli incidenti entra in funzione. I nostri clienti sono veramente globali e ciò significa che li supportiamo con un supporto tecnico continuo 24 ore su 24, 7 giorni su 7 e gestione degli incidenti.
I nostri soccorritori sono online e rispondono entro pochi minuti dalla chiamata, affiancati da un comandante dell'incidente. L'obiettivo immediato del comandante è ridurre al minimo l'impatto sui clienti e coordinare l'intero sforzo, compresa l'identificazione dei problemi, il triage, le comunicazioni e la risoluzione. Si tratta di un processo altamente disciplinato e organizzato, sostenuto da ruoli e principi operativi molto ben definiti.
"In genere risolviamo tali incidenti in pochi minuti, pubblicando aggiornamenti sulla nostra pagina di stato e lavorando contemporaneamente per ripristinare il servizio alla normalità"
In genere, risolviamo tali incidenti in pochi minuti, pubblicando aggiornamenti sulla nostra pagina di stato e lavorando contemporaneamente per ripristinare il servizio. La ripresa del normale servizio però non è certo il punto di arrivo per noi. Una parte fondamentale del nostro processo di gestione degli incidenti è la revisione degli incidenti, in cui ci addentriamo nelle cause e nei fattori che contribuiscono a un incidente e cerchiamo informazioni.
In un forum interno aperto, rifletteremo su dove avremmo potuto fare meglio e proporremo azioni a breve termine e cambiamenti strategici a lungo termine. Questo incontro è uno dei più vantaggiosi per noi: per ricordare che essere veramente grandi richiede dedizione al miglioramento continuo.
Cosa significa la nostra attenzione alla disponibilità per i nostri clienti
Il nostro impegno per il successo dei nostri clienti significa che una solida disponibilità è un must. Il nostro approccio olistico ci ha permesso di superare in modo significativo il nostro obiettivo di uptime del 99,8% per diversi anni, fornendo una piattaforma di crescita di cui tutti i nostri clienti possono fidarsi.
Questo è il secondo di una serie di contenuti che si tuffa negli investimenti di Intercom a sostegno delle imprese. Esplora altri articoli della serie.
