Wie unsere Infrastruktur zusammen mit unseren Kunden skaliert

Veröffentlicht: 2022-06-03

Wir nehmen es ernst, mit unserem Engagement OS das beste Kundenerlebnis zu bieten. Wir haben wirklich globale Ambitionen, unsere Mission, das Internetgeschäft persönlich zu machen, zu den größten Unternehmenskunden auf der ganzen Welt zu bringen.

Dieser Ehrgeiz spiegelt sich in der Art und Weise wider, wie wir die Infrastruktur entwerfen und aufbauen, die die Intercom-Plattform unterstützt. Wir bauen auf Langfristigkeit – das bedeutet, standardmäßige Zuverlässigkeit und die Fähigkeit zu gewährleisten, bei unserem Wachstum eine enorme Skalierung zu ermöglichen.

Intercom ist gewachsen und wird dies auch weiterhin tun – viele unserer langjährigen Kunden haben sich im Laufe der Jahre mit uns weiterentwickelt. Da diese bestehenden Kunden gewachsen sind und wir immer größere Kunden begrüßt haben, haben wir uns immer darauf konzentriert, Ja zur Skalierung zu sagen.

Dies ist der dritte Beitrag in einer Reihe, in der untersucht wird, wie Intercom Schlüsselfunktionen skaliert hat, um die Bedürfnisse von Unternehmenskunden zu unterstützen.

Wir wachsen mit unseren Kunden

  • Sie möchten mehrere Millionen aktiver Benutzer bedienen. Kann Intercom das?
  • Sie müssen mehrere Millionen Benutzerdatensätze speichern. Kann Intercom das?
  • Sie haben viele tausend aktive Agenten, die Sie in Ihrem Arbeitsbereich ausführen möchten. Kann Intercom damit umgehen?

Ja zu allem oben Gesagten.

Heute skalieren unsere Systeme dynamisch, um zu Spitzenzeiten etwa 50.000 Webanfragen pro Sekunde, 26.000 Hintergrundjobs pro Sekunde und 11.000 öffentliche API-Anfragen pro Sekunde zu verarbeiten – was unsere Fähigkeit unter Beweis stellt, kontinuierlich zu skalieren, um die Anforderungen moderner Unternehmen zu erfüllen.

Wir möchten Ihren Ambitionen entsprechen. Das bedeutet, dass wir riesige Workloads zuverlässig und performant bewältigen und kontinuierlich erweitern können, wenn unsere Kunden mit uns wachsen. Wir wollen eine echte Partnerschaft mit unseren Kunden eingehen, um sicherzustellen, dass wir ihre Probleme in großem Maßstab und langfristig lösen.

Bei Intercom wollen wir weniger Software verwenden

Wir bauen ausschließlich auf einem sehr kleinen Satz von Kerntechnologien auf. Auf diese Weise können wir Teams aus tiefgreifenden Domänenexperten aufbauen, um Produktingenieure beim Aufbau der nächsten Generation von Intercom zu unterstützen und zu befähigen und erstklassige Observability-Tools, Skalierung, Zuverlässigkeit und standardmäßig sichere Build-Muster bereitzustellen.

Unser Tooling ermöglicht eine hohe Verfügbarkeit

Wir arbeiten ausschließlich mit AWS als unserem Anbieter von Cloud-Services zusammen und bieten derzeit Datenhosting-Angebote in drei verschiedenen globalen Regionen – USA, EU und Australien – an, die jeweils über mehrere Verfügbarkeitszonen für Hochverfügbarkeit ausgelegt sind.

Unsere Teamkollegen-App ist ein Ember.js - Frontend, das von einem Ruby on Rails - Monolithen unterstützt wird. Die Rails-Anwendung ist der Kern von Intercom und das, was wir Tausenden von Web-, API- und asynchronen Workern auf dedizierten Per-Function-Clustern bereitstellen.

„Jedes Jahr am Black Friday, wenn viele unserer Kunden ihre geschäftigste Zeit erreichen, passt sich unsere Infrastruktur ohne menschliches Eingreifen an.“

Diese Cluster werden automatisch skaliert, um Kundenanfragen zu bedienen, während wir jeden Tag die Spitzen und Täler des Kundenverkehrs durchlaufen. Zum Beispiel passt sich unsere Infrastruktur jedes Jahr am Black Friday an, wenn viele unserer Kunden ihre geschäftigste Zeit haben, ohne menschliches Eingreifen.

Mit unseren Observability-Tools können wir genau überwachen, wie wir den Datenverkehr bedienen

Unsere Observability-Tools stellen sicher, dass wir immer am Puls der Zeit sind, wie effizient und effektiv wir den Datenverkehr pro Kunde bedienen. Wir arbeiten auch eng mit AWS an neuen Technologien und Ansätzen zusammen, die unser schnelles Wachstum zukunftssicher machen sollen.

Zusätzlich zu Standardmetriken und -protokollierung wird unser Rails-Monolith automatisch mit hochwertigen, attributreichen Spuren instrumentiert. Auf diese Weise können Ingenieure die Produktion beobachten, ohne zusätzlichen Code schreiben zu müssen.

Unsere Observability-Pipeline basiert auf Honeycomb Refinery und testet dynamisch wertvolle Anfragen, um standardmäßig interessante Spuren (z. B. einen kundenseitigen Fehler) aufzubewahren. Wir haben auch die Möglichkeit, benutzerdefinierte Regeln für eine vollständige Stichprobenkontrolle zu konfigurieren.

„Wir unterstützen eine 100-prozentige Aufbewahrung, um Ingenieuren alle Daten zur Verfügung zu stellen, die sie benötigen, wenn wir neue Funktionen entwickeln oder Produktionsprobleme beheben.“

Entscheidend ist, dass wir für die wertvollsten Transaktionen eine 100-prozentige Aufbewahrung unterstützen, um Ingenieuren alle Daten zur Verfügung zu stellen, die sie benötigen, wenn wir neue Funktionen entwickeln oder Produktionsprobleme beheben. Da wir außerdem alle Traces mit der Kunden-ID des Erstellers der Anfrage versehen, können wir tief in die Erfahrungen unserer Kunden mit Intercom eintauchen.

Unterschiedliche Datenspeicher ermöglichen die Optimierung für verschiedene Anwendungsfälle

Wir führen verschiedene Arten von Datenspeichern aus, um unsere verschiedenen Anforderungen zum Lesen und Schreiben von Daten in allen Anwendungen zu unterstützen:

  • AWS Aurora MySQL : Unsere Source-of-Truth-Datenspeicher basieren größtenteils auf AWS Aurora MySQL. Als Teil unserer anfänglichen Skalierung haben wir die Datenbanken nach Funktion aufgeteilt. Nachdem einzelne Datenbank-Cluster zu den größten von AWS Aurora bereitgestellten Instanzen gewachsen waren, starteten wir ein Programm zum Aufbau von Datenbanken pro Kunde, die sich auf mehreren Clustern kleinerer Datenbank-Cluster befinden, die wir jetzt sowohl horizontal als auch vertikal skalieren können. Diese Arbeit wurde Anfang 2020 abgeschlossen und die Architektur ermöglicht es uns, unsere größten Tabellen unbegrenzt zu skalieren.
  • Elasticache : Vor unseren Datenbanken haben wir eine Memcache -Caching-Schicht, die auf Elasticache aufbaut.
  • DynamoDB : Wir verwenden DynamoDB sparsam für Anwendungsfälle mit sehr vielen Lese- und Schreibzugriffen .

Die Suche ist ein unverzichtbarer Bestandteil von Intercom

Die Suche untermauert eine ganze Reihe von Kernfunktionen von Intercom – Posteingangsansichten , API , Artikel , die Benutzerliste, Ausgehende , Berichte , Resolution Bot und unsere internen Protokollierungssysteme.

Die Suche wird größtenteils von vielen Elasticsearch - Clustern pro Funktion unterstützt. Wir haben viele Tools entwickelt , die die mühsamsten Aufgaben von Elasticsearch automatisieren, darunter Sicherheits-Patches, Upgrades und das Ersetzen beschädigter Hardware. Wir haben auch Tools entwickelt, mit denen wir Migrationen (ähnlich wie bei MySQL) für Indizes ausführen können.

„Unsere globale Infrastruktur ist darauf ausgelegt, Hunderttausenden von großen und kleinen Unternehmen zu dienen.“

Es verbessert nicht nur die Fähigkeit unserer Ingenieure, das Indexschema in großem Maßstab zu iterieren, sondern ermöglicht es uns auch, große Indizes in kleinere Indizes zu zerlegen, die einfacher zu verwalten sind und eine höhere Leistung und Stabilität bieten. Es gibt uns auch eine weitere Dimension, in der wir unsere Elasticsearch-Cluster skalieren können. Wie unser MySQL-Sharding-Ansatz gibt uns dies viele Jahre Erfahrung in der Skalierung.

Die globale Infrastruktur von Intercom ist auf Internetskalierung ausgelegt

Unsere globale Infrastruktur ist darauf ausgelegt, Hunderttausenden von großen und kleinen Unternehmen zu dienen, und die Strenge, die wir bei der Verwaltung unseres Infrastrukturbetriebs anwenden, stellt einen reibungslosen Ablauf sicher.

Beim Roadmapping ist die Skalierung ein wichtiger Input, den jedes Team berücksichtigt. Unsere regelmäßigen operativen Überprüfungen werden von Experten auf mehreren Ebenen in unseren Backend-Teams unterstützt, wo wir Infrastrukturkennzahlen bewerten und Kapazitätsanforderungen überprüfen.

Wir arbeiten hart und intelligent daran, dass dies so bleibt, und deshalb vertrauen uns unsere Kunden – von den kleinsten Startups bis zu den größten Unternehmen der Welt.

Entdecken Sie andere Beiträge in der Serie Intercom for Enterprise