Как наша инфраструктура масштабируется вместе с нашими клиентами
Опубликовано: 2022-06-03Мы серьезно относимся к обеспечению наилучшего качества обслуживания клиентов с помощью нашей операционной системы Engagement. У нас есть поистине глобальные амбиции, чтобы донести нашу миссию по персонализации интернет-бизнеса до крупнейших корпоративных клиентов по всему миру.
Это стремление отражено в том, как мы проектируем и строим инфраструктуру, поддерживающую платформу Intercom. Мы строим на долгосрочную перспективу — это означает обеспечение надежности по умолчанию и возможность масштабирования по мере нашего роста.
Компания Intercom росла и будет продолжать расти — многие из наших самых давних клиентов развивались вместе с нами на протяжении многих лет. По мере того, как количество существующих клиентов росло, и мы приветствовали все более крупных клиентов, мы всегда старались говорить «да» масштабированию.
Это третий пост из серии, посвященной тому, как Intercom масштабирует ключевые функции для удовлетворения потребностей корпоративных клиентов.
Мы растем вместе с нашими клиентами
- Вы хотите обслуживать несколько миллионов активных пользователей. Может ли Интерком это сделать?
- Вам нужно хранить несколько миллионов пользовательских записей. Может ли Интерком это сделать?
- У вас есть много тысяч активных агентов, с которыми вы хотите работать в своем рабочем пространстве. Интерком справится с этим?
Да ко всему вышеперечисленному.
Сегодня наши системы динамически масштабируются, чтобы обслуживать около 50 000 веб-запросов в секунду при пиковых нагрузках, 26 000 фоновых заданий в секунду и 11 000 запросов к общедоступным API в секунду, что демонстрирует нашу способность непрерывно масштабироваться для удовлетворения требований современных предприятий.
Мы хотим соответствовать вашим амбициям. Это означает способность надежно и эффективно справляться с огромными рабочими нагрузками и постоянно расширять их по мере того, как наши клиенты растут вместе с нами. Мы хотим по-настоящему сотрудничать с нашими клиентами, чтобы гарантировать, что мы решаем их проблемы в масштабе и в долгосрочной перспективе.
В Intercom мы стремимся использовать меньше программного обеспечения
Мы строим исключительно на основе очень небольшого набора основных технологий. Это позволяет нам формировать группы экспертов в предметной области для поддержки и поддержки инженеров по продуктам при создании следующего поколения Intercom, а также предоставлять инструменты наблюдения мирового класса, масштабирование, надежность и безопасные по умолчанию шаблоны построения.
Наши инструменты обеспечивают высокую доступность
Мы работаем исключительно с AWS в качестве нашего поставщика облачных услуг и в настоящее время предоставляем предложения по размещению данных в трех различных регионах мира — США, ЕС и Австралии — каждое из которых спроектировано для нескольких зон доступности для обеспечения высокой доступности.
Приложение нашего товарища по команде представляет собой интерфейс Ember.js , поддерживаемый монолитом Ruby on Rails . Приложение Rails является ядром Intercom и тем, что мы развертываем для тысяч веб-приложений, API и асинхронных рабочих процессов в выделенных для каждой функции кластерах.
«Каждый год в Черную пятницу, когда у многих наших клиентов наступает период наибольшей нагрузки, наша инфраструктура масштабируется без вмешательства человека».
Эти кластеры автоматически масштабируются для обслуживания запросов клиентов, когда мы ежедневно проходим через пики и спады клиентского трафика. Например, каждый год в Черную пятницу, когда у многих наших клиентов наступает период наибольшей нагрузки, наша инфраструктура масштабируется без вмешательства человека.
Наш инструмент наблюдения позволяет нам внимательно следить за тем, как мы обслуживаем трафик.
Наши инструменты наблюдения позволяют нам держать руку на пульсе, насколько эффективно мы обслуживаем трафик для каждого клиента. Мы также тесно сотрудничаем с AWS в области новых технологий и подходов, разработанных для обеспечения нашего быстрого роста в будущем.
В дополнение к стандартным метрикам и ведению журналов, наш монолит Rails автоматически оснащен высококачественными трассировками с богатыми атрибутами. Это позволяет инженерам наблюдать за производством без необходимости написания дополнительного кода.
Наш конвейер наблюдаемости основан на Honeycomb Refinery и по умолчанию динамически отбирает ценные запросы, чтобы сохранить интересные трассировки (например, ошибку, связанную с клиентом). У нас также есть возможность настроить собственные правила для полного контроля выборки.
«Мы поддерживаем 100-процентное сохранение, чтобы предоставить инженерам все данные, которые им нужны, когда мы создаем новые функции или устраняем производственные проблемы».
Крайне важно, что для наиболее ценных транзакций мы поддерживаем 100% сохранение, чтобы предоставить инженерам все данные, которые им нужны, когда мы создаем новые функции или устраняем производственные проблемы. Кроме того, поскольку мы помечаем все трассировки идентификатором клиента отправителя запроса, мы можем глубже изучить, как любой из наших клиентов взаимодействует с Intercom.
Различные хранилища данных позволяют оптимизировать различные варианты использования.
Мы используем несколько различных типов хранилищ данных для поддержки различных требований к чтению и записи данных в приложениях:
- AWS Aurora MySQL : наши хранилища достоверных данных в основном построены на основе AWS Aurora MySQL. В рамках нашего первоначального масштабирования мы разделили базы данных по функциям. После того, как отдельные кластеры баз данных выросли до самых больших экземпляров, предоставленных AWS Aurora, мы запустили программу по созданию баз данных для каждого клиента, которые размещаются в нескольких кластерах небольших кластеров баз данных, которые теперь мы можем масштабировать как по горизонтали, так и по вертикали. Эта работа была завершена в начале 2020 года, и архитектура позволяет нам неограниченно масштабировать наши самые большие таблицы.
- Elasticache : Перед нашими базами данных у нас есть уровень кэширования memcached , построенный поверх Elasticache.
- DynamoDB : мы используем DynamoDB экономно для случаев с очень большим количеством операций чтения и записи .
Поиск – неотъемлемая часть Интеркома
Поиск поддерживает целый ряд основных функций Intercom — просмотры входящих сообщений , API , статьи , список пользователей, исходящие сообщения , отчеты , бот разрешения и наши внутренние системы ведения журналов.
Поиск в значительной степени обеспечивается множеством кластеров Elasticsearch для каждой функции . Мы создали множество инструментов , которые автоматизируют самые трудоемкие задачи Elasticsearch, включая установку исправлений безопасности, обновление и замену неисправного оборудования. Мы также создали инструменты, которые позволяют нам выполнять миграцию (по аналогии с MySQL) для индексов.
«Наша глобальная инфраструктура предназначена для обслуживания сотен тысяч компаний, больших и малых»
Помимо расширения возможностей наших инженеров по повторению схемы индексов в масштабе, это позволяет нам разбивать большие индексы на более мелкие индексы, которыми легче управлять и которые обеспечивают более высокую производительность и стабильность. Это также дает нам дополнительное измерение, в котором мы можем масштабировать наши кластеры Elasticsearch. Как и в случае с нашим подходом к сегментированию MySQL, это дает нам многолетнюю взлетно-посадочную полосу для масштабирования.
Глобальная инфраструктура Intercom создана для работы в Интернете
Наша глобальная инфраструктура предназначена для обслуживания сотен тысяч компаний, больших и малых, и строгость, которую мы применяем к управлению нашей инфраструктурой, обеспечивает бесперебойную работу.
При составлении дорожной карты масштабирование является ключевым фактором, который учитывает каждая команда. Наши регулярные операционные обзоры проводятся экспертами на разных уровнях из наших серверных групп, где мы оцениваем показатели инфраструктуры и анализируем требования к мощности.
Мы упорно и разумно работаем, чтобы так и оставалось, и именно поэтому наши клиенты доверяют нам — от самых маленьких стартапов до крупнейших мировых корпораций.
Откройте для себя другие сообщения из серии Intercom for Enterprise