Como nossa infraestrutura se adapta ao lado de nossos clientes
Publicados: 2022-06-03Levamos a sério o fornecimento da melhor experiência ao cliente com nosso sistema operacional Engagement. Temos ambições verdadeiramente globais de levar nossa missão de tornar os negócios na Internet pessoais para os maiores clientes corporativos em todo o mundo.
Essa ambição se reflete na forma como projetamos e construímos a infraestrutura que suporta a plataforma Intercom. Estamos construindo para o longo prazo – isso significa garantir a confiabilidade por padrão e a capacidade de acomodar uma escala massiva à medida que crescemos.
A Intercom vem crescendo e continuará crescendo assim – muitos de nossos clientes mais antigos evoluíram conosco ao longo dos anos. À medida que esses clientes existentes cresceram e recebemos clientes cada vez maiores, sempre nos concentramos em dizer sim à escala.
Este é o terceiro post de uma série que explora as maneiras como a Intercom escalou funções-chave para atender às necessidades dos clientes corporativos.
Estamos crescendo junto com nossos clientes
- Você deseja atender a vários milhões de usuários ativos. A Intercom pode fazer isso?
- Você precisa armazenar vários milhões de registros de usuários. A Intercom pode fazer isso?
- Você tem muitos milhares de agentes ativos que deseja que atuem em seu espaço de trabalho. A Intercom pode lidar com isso?
Sim para todos os itens acima.
Hoje, nossos sistemas são dimensionados dinamicamente para atender a cerca de 50.000 solicitações da Web por segundo no pico, 26.000 trabalhos em segundo plano por segundo e 11.000 solicitações de API públicas por segundo – demonstrando nossa capacidade de dimensionar continuamente para atender aos requisitos das empresas modernas.
Queremos corresponder às suas ambições. Isso significa ser capaz de acomodar grandes cargas de trabalho de maneira confiável e eficiente e expandi-las continuamente à medida que nossos clientes crescem conosco. Queremos realmente fazer parceria com nossos clientes para garantir que estamos resolvendo seus problemas, em escala, a longo prazo.
Na Intercom, nosso objetivo é executar menos software
Construímos exclusivamente em cima de um conjunto muito pequeno de tecnologias principais. Isso nos permite desenvolver equipes de especialistas de domínio profundo para apoiar e capacitar engenheiros de produto à medida que constroem a próxima geração de Intercom e fornecer ferramentas de observabilidade de classe mundial, dimensionamento, confiabilidade e padrões de construção seguros por padrão.
Nosso ferramental permite alta disponibilidade
Trabalhamos exclusivamente com a AWS como nosso provedor de serviços em nuvem e atualmente fornecemos ofertas de hospedagem de dados em três regiões globais diferentes – EUA, UE e Austrália – cada uma arquitetada em várias zonas de disponibilidade para alta disponibilidade.
Nosso aplicativo teammate é um frontend Ember.js apoiado por um monólito Ruby on Rails . O aplicativo Rails é o núcleo do Intercom e o que implantamos em milhares de web, API e workers assíncronos em clusters dedicados por função.
“A cada ano, na Black Friday, à medida que muitos de nossos clientes atingem seu período mais movimentado, nossa infraestrutura é dimensionada para corresponder sem intervenção humana”
Esses clusters são dimensionados automaticamente para atender às solicitações dos clientes à medida que passamos pelos altos e baixos do tráfego de clientes todos os dias. Por exemplo, a cada ano na Black Friday, quando muitos de nossos clientes atingem seu período mais movimentado, nossa infraestrutura é dimensionada para corresponder sem intervenção humana.
Nossas ferramentas de observabilidade nos permitem monitorar de perto como estamos atendendo o tráfego
Nossas ferramentas de observabilidade garantem que estejamos atentos à eficiência e eficácia com que estamos atendendo o tráfego por cliente. Também fazemos parceria estreita com a AWS em novas tecnologias e abordagens projetadas para provar nosso rápido crescimento no futuro.
Além das métricas e registros padrão, nosso monolito Rails é auto-instrumentado com rastreamentos de alta qualidade e ricos em atributos. Isso permite que os engenheiros observem a produção sem a necessidade de escrever nenhum código adicional.
Nosso pipeline de observabilidade é baseado no Honeycomb Refinery e amostra dinamicamente solicitações valiosas para reter rastros interessantes (por exemplo, um erro voltado para o cliente) por padrão. Também temos a capacidade de configurar regras personalizadas para controle total de amostragem.
“Suportamos 100% de retenção para fornecer aos engenheiros todos os dados de que eles precisam à medida que criamos novos recursos ou depuramos problemas de produção”
Fundamentalmente, para as transações mais valiosas, oferecemos suporte a 100% de retenção para fornecer aos engenheiros todos os dados necessários à medida que criamos novos recursos ou depuramos problemas de produção. Além disso, como marcamos todos os rastreamentos com o ID do cliente do originador da solicitação, podemos nos aprofundar em como qualquer um de nossos clientes está experimentando o Intercom.
Diferentes armazenamentos de dados permitem a otimização em vários casos de uso
Executamos vários tipos diferentes de armazenamento de dados para oferecer suporte aos nossos vários requisitos de leitura e gravação de dados nos aplicativos:
- AWS Aurora MySQL : Nossos datastores de fonte de verdade são amplamente desenvolvidos com base no AWS Aurora MySQL. Como parte de nosso dimensionamento inicial, fragmentamos os bancos de dados por função. Depois que os clusters de banco de dados individuais cresceram para as maiores instâncias fornecidas pelo AWS Aurora, iniciamos um programa para criar bancos de dados por cliente que residem em vários clusters de clusters de banco de dados menores, que agora podemos dimensionar horizontal e verticalmente. Esse trabalho foi concluído no início de 2020 e a arquitetura nos permite dimensionar nossas maiores tabelas indefinidamente.
- Elasticache : Na frente de nossos bancos de dados, temos uma camada de cache do memcached construída sobre o Elasticache.
- DynamoDB : Usamos o DynamoDB com moderação para casos de uso de leitura e gravação muito altos .
A pesquisa é uma parte indispensável do Intercom
A pesquisa sustenta uma série de recursos principais do Intercom – Exibições da caixa de entrada , API , Artigos , a lista de usuários, Saída , Relatórios , Bot de resolução e nossos sistemas de registro internos.
A pesquisa é amplamente alimentada por muitos clusters Elasticsearch por função. Criamos muitas ferramentas que automatizam as tarefas mais trabalhosas do Elasticsearch, incluindo patches de segurança, atualização e substituição de hardware degradado. Também construímos ferramentas que nos permitem executar migrações (de maneira semelhante ao MySQL) em relação a índices.
“Nossa infraestrutura global foi projetada para atender centenas de milhares de empresas, grandes e pequenas”
Além de melhorar a capacidade de nossos engenheiros de iterar no esquema de índices em escala, ele nos permite dividir índices grandes em índices menores que são mais fáceis de gerenciar e fornecem maior desempenho e estabilidade. Isso também nos dá uma dimensão adicional na qual podemos dimensionar nossos clusters do Elasticsearch. Como nossa abordagem de fragmentação do MySQL, isso nos dá muitos anos de escalabilidade.
A infraestrutura global da Intercom é construída para a escala da Internet
Nossa infraestrutura global foi projetada para atender a centenas de milhares de empresas, grandes e pequenas, e o rigor que aplicamos ao gerenciamento de nossas operações de infraestrutura garante que tudo funcione sem problemas.
Ao fazer o roadmap, o dimensionamento é uma entrada importante que toda equipe considera. Nossas revisões operacionais regulares são contribuídas por especialistas em vários níveis em nossas equipes de back-end, onde avaliamos as métricas de infraestrutura e revisamos os requisitos de capacidade.
Trabalhamos duro e inteligente para mantê-lo assim, e é por isso que nossos clientes confiam em nós – desde as menores startups até as maiores empresas do mundo.
Descubra outros posts da série Intercom for Enterprise