Gerenciando alta disponibilidade na Intercom

Publicados: 2022-05-06

A Intercom é uma empresa liderada por produtos, focada em maximizar a inovação de produtos e a velocidade de desenvolvimento.

Isso também significa que mantemos altos padrões operacionais: minimizando custos, abordando rapidamente os problemas de qualidade que surgem nos produtos existentes e mitigando os riscos de segurança.

A base da nossa saúde operacional é a disponibilidade. Sem disponibilidade sólida, nada mais importa. Para cumprir nossa missão de tornar os negócios na Internet pessoais e dimensionáveis ​​para oferecer suporte a clientes cada vez maiores, investimos contínua, ponderada e cuidadosamente em nosso pessoal, sistemas e processos para manter os altos padrões de disponibilidade da Intercom.

“O segredo do sucesso da Intercom neste campo é simples: anos de trabalho cultural, organizacional e de engenharia consistente, cuidadoso e multifacetado”

O segredo do sucesso da Intercom neste campo é simples: anos de trabalho consistente, cuidadoso e multifacetado cultural, organizacional, de sistemas e engenharia de software. É por isso que nossos clientes – de pequenas startups a grandes e complexas empresas – confiam em nós.

Aqui está como fazemos isso.

A disponibilidade está incorporada em nossa cultura

O papel que cada funcionário da Intercom desempenha no suporte à disponibilidade está profundamente enraizado em nossa cultura. Para equipes de engenharia, levar o código à produção o mais rápido possível em pequenos lotes nos permite aprender e iterar.

Em vez de desacelerar nossos engenheiros, investimos em sistemas e construímos uma cultura em torno do que significa construir rápido e seguro. Educamos nossos engenheiros nessas políticas e processos ao longo de suas carreiras na Intercom, desde a integração de funcionários até as avaliações de desempenho. Não são apenas alterações isoladas de código que são enviadas com segurança, todo o nosso processo de entrega de software visa garantir que, em todas as etapas, estejamos construindo produtos confiáveis ​​e escaláveis ​​por padrão.

“Nosso conjunto de ferramentas de observabilidade é de classe mundial e capacita todos os engenheiros da empresa a entender, nos mínimos detalhes, como o código que eles enviam se comporta em um ambiente de produção”

Nosso conjunto de ferramentas de observabilidade é de classe mundial e capacita todos os engenheiros da empresa a entender, nos mínimos detalhes, como o código que eles enviam se comporta em um ambiente de produção. Apesar de todas as nossas melhores intenções, algumas alterações de código inevitavelmente causarão problemas. É por isso que também investimos em mecanismos que nos permitem recuperar de problemas ainda mais rápido do que implantamos.

Construímos bases técnicas sólidas

Construímos exclusivamente com um número muito pequeno de tecnologias como parte de nossa pilha, apoiados por uma equipe específica de capacitação de “tecnologias principais”. Desenvolvemos profundo conhecimento nessas tecnologias ao longo do tempo, e nossas escolhas de arquitetura e padrões de implementação são simples e comprovados. Isso significa que sabemos o que significa projetar e construir para confiabilidade, com soluções comprovadas em escala.

“Investimos na construção e manutenção de sistemas e ferramentas compartilhados que sustentam nossa capacidade de enviar código com segurança e recuperar rapidamente caso algo dê errado”

Usando essas tecnologias essenciais, investimos na construção e manutenção de sistemas e ferramentas compartilhados que sustentam nossa capacidade de enviar código com segurança e recuperar rapidamente caso algo dê errado.

Esse tipo de automação nos dá a capacidade de implantar alterações em uma pequena porcentagem do tráfego de clientes ou em um conjunto específico de clientes para entender seu impacto. Podemos ativar ou desativar facilmente o acesso de qualquer cliente a um recurso, o que é um recurso útil se ocorrer um incidente. Também podemos recuperar simplesmente optando por apertar o botão para 'voltar' para uma versão de trabalho segura do código - em menos de cinco minutos.

Mantemos relacionamentos muito próximos com nosso principal fornecedor de infraestrutura em nuvem, Amazon Web Services (AWS), para avaliar continuamente em conjunto a robustez de nossa plataforma de infraestrutura e entender se há oportunidades para evoluir e fortalecer ainda mais nossa confiabilidade.

Gerenciamos riscos e respondemos instantaneamente quando as coisas dão errado

Parte da estratégia do programa visa identificar, priorizar e mitigar os riscos que ameaçam nossa disponibilidade. Dentro da organização de engenharia, temos um Gerente de Programa Técnico de Disponibilidade (TPM) dedicado que conduz um programa intercomunicador dedicado a fortalecer e proteger continuamente nossa disponibilidade.

“A equipe do programa trabalha com gerentes em toda a Engenharia para entender profundamente quaisquer riscos que estamos enfrentando”

A equipe do programa trabalha com gerentes em toda a Engenharia para entender completamente os riscos que estamos enfrentando. Esses itens são então priorizados como entradas para roteiros de engenharia, com o TPM ajudando a garantir que o trabalho seja realizado conforme o cronograma.

Quando encontramos um incidente que afeta nossos clientes, nossas extensas plataformas de monitoramento e alarme o detectam quase instantaneamente, e nosso processo de resposta a incidentes entra em ação. Nossos clientes são verdadeiramente globais, e isso significa que os apoiamos com engenharia de plantão e suporte de gerenciamento de incidentes contínuo 24 horas por dia, 7 dias por semana.

Nossos atendentes de emergência estão online e respondem minutos após serem chamados, acompanhados por um Comandante de Incidentes. O foco imediato do Comandante é minimizar o impacto no cliente, e eles coordenam todo o esforço, incluindo identificação de problemas, triagem, comunicações e resolução. Trata-se de um processo altamente disciplinado e organizado, sustentado por papéis e princípios operacionais muito bem definidos.

“Normalmente, resolvemos esses incidentes em minutos, publicando atualizações em nossa página de status enquanto trabalhamos simultaneamente para restaurar o serviço ao normal”

Normalmente, resolvemos esses incidentes em minutos, publicando atualizações em nossa página de status enquanto trabalhamos simultaneamente para restaurar o serviço. A retomada do serviço normal certamente não é o ponto final para nós. Uma parte fundamental do nosso processo de gerenciamento de incidentes é a revisão de incidentes, onde mergulhamos profundamente nas causas e fatores contribuintes de um incidente e buscamos aprendizados.

Em um fórum interno aberto, refletiremos sobre onde poderíamos ter feito melhor e proporemos ações de curto prazo, bem como mudanças estratégicas de longo prazo. Este encontro é um dos mais benéficos para nós: um lembrete de que ser realmente grande exige dedicação à melhoria contínua.

O que nosso foco na disponibilidade significa para nossos clientes

Nosso compromisso com o sucesso de nossos clientes significa que a disponibilidade sólida é uma obrigação. Nossa abordagem holística nos permitiu exceder significativamente nossa meta de tempo de atividade de 99,8% por vários anos, fornecendo uma plataforma de crescimento na qual todos os nossos clientes podem confiar.

Este é o segundo de uma série de conteúdo que aborda os investimentos da Intercom no apoio a empresas. Explore outros artigos da série.