Gestión de alta disponibilidad en Intercom
Publicado: 2022-05-06Intercom es una empresa dirigida por productos, enfocada en maximizar la innovación de productos y la velocidad de desarrollo.
Eso también significa que nos apegamos a altos estándares operativos: minimizando costos, abordando rápidamente los problemas de calidad que surgen dentro de los productos existentes y mitigando los riesgos de seguridad.
La base de nuestra salud operativa es la disponibilidad. Sin una disponibilidad sólida como una roca, nada más importa. Para lograr nuestra misión de hacer que el negocio de Internet sea personal y escalable para apoyar a clientes cada vez más grandes, hemos estado invirtiendo de manera continua, cuidadosa y cuidadosa en nuestra gente, sistemas y procesos para mantener los altos estándares de disponibilidad de Intercom.
“El secreto del éxito de Intercom en este ámbito es simple: años de trabajo cultural, organizacional y de ingeniería consistente, cuidadoso y multifacético”
El secreto del éxito de Intercom en este ámbito es simple: años de trabajo de ingeniería de software, sistemas, organización y cultura consistente, cuidadoso y multifacético. Es por eso que nuestros clientes, desde pequeñas empresas emergentes hasta empresas masivas y complejas, confían en nosotros.
Así es como lo hacemos.
La disponibilidad está integrada en nuestra cultura
El papel que desempeña cada empleado de Intercom en el apoyo a la disponibilidad está muy arraigado en nuestra cultura. Para los equipos de ingeniería, llevar el código a producción lo más rápido posible en pequeños lotes nos permite aprender e iterar.
En lugar de ralentizar a nuestros ingenieros, invertimos en sistemas y construimos una cultura en torno a lo que significa construir de forma rápida y segura. Educamos a nuestros ingenieros en estas políticas y procesos a lo largo de sus carreras en Intercom, desde la incorporación de empleados hasta las revisiones de desempeño. No se trata solo de cambios de código aislados que se envían de manera segura, todo nuestro proceso de entrega de software tiene como objetivo garantizar que, en cada etapa, estemos creando productos que sean confiables y escalables de manera predeterminada.
“Nuestro conjunto de herramientas de observabilidad es de clase mundial y permite a todos los ingenieros de la empresa comprender, hasta el más mínimo nivel de detalle, cómo se comporta el código que envían en un entorno de producción”
Nuestro conjunto de herramientas de observabilidad es de clase mundial y permite a todos los ingenieros de la empresa comprender, hasta el más mínimo nivel de detalle, cómo se comporta el código que envían en un entorno de producción. Sin embargo, a pesar de todas nuestras mejores intenciones, algunos cambios en el código inevitablemente causarán problemas. Es por eso que también invertimos en mecanismos que nos permiten recuperarnos de los problemas incluso más rápido de lo que implementamos.
Construimos bases técnicas sólidas
Construimos exclusivamente con una cantidad muy pequeña de tecnologías como parte de nuestra pila, respaldados por un equipo de habilitación de "tecnologías centrales" específico. Hemos desarrollado una gran experiencia en estas tecnologías a lo largo del tiempo, y nuestras opciones de arquitectura y patrones de implementación son simples y probados. Esto significa que sabemos lo que significa diseñar y construir para la confiabilidad, con soluciones probadas a escala.
“Invertimos en construir y mantener sistemas y herramientas compartidos que respaldan nuestra capacidad para enviar código de manera segura y para recuperarnos rápidamente en caso de que algo salga mal”
Mediante el uso de estas tecnologías centrales, invertimos en la creación y el mantenimiento de sistemas y herramientas compartidos que respaldan nuestra capacidad para enviar código de manera segura y para recuperarnos rápidamente en caso de que algo salga mal.
Este tipo de automatización nos brinda la capacidad de implementar cambios en un pequeño porcentaje del tráfico de clientes, o en un conjunto específico de clientes, para comprender su impacto. Podemos activar o desactivar fácilmente el acceso de cualquier cliente a una función, lo cual es una capacidad útil si ocurre un incidente. También podemos recuperar simplemente optando por presionar el botón para "retroceder" a una versión de trabajo segura del código , en menos de cinco minutos.

Mantenemos relaciones muy estrechas con nuestro principal proveedor de infraestructura en la nube, Amazon Web Services (AWS), para evaluar continuamente de manera conjunta la solidez de nuestra plataforma de infraestructura y comprender si existen oportunidades para evolucionar y fortalecer aún más nuestra confiabilidad.
Gestionamos el riesgo y respondemos al instante cuando las cosas van mal
Parte de la estrategia del programa tiene como objetivo identificar, priorizar y mitigar los riesgos que amenazarían nuestra disponibilidad. Dentro de la organización de ingeniería, tenemos un Gerente de Programa Técnico de Disponibilidad (TPM) dedicado que impulsa un programa intercomunicador cruzado dedicado a fortalecer y proteger continuamente nuestra disponibilidad.
“El equipo del programa trabaja con los gerentes de ingeniería para comprender en profundidad los riesgos a los que nos enfrentamos”
El equipo del programa trabaja con gerentes de ingeniería para comprender completamente los riesgos que enfrentamos. Luego, estos elementos se priorizan como entradas para las hojas de ruta de ingeniería, y el TPM ayuda a garantizar que el trabajo se lleve a cabo según lo programado.
Cuando nos encontramos con un incidente que afecta a nuestros clientes, nuestras extensas plataformas de monitoreo y alarmas lo detectan casi instantáneamente, y nuestro proceso de respuesta a incidentes se pone en marcha. Nuestros clientes son verdaderamente globales, y eso significa que los apoyamos con ingeniería de guardia continua las 24 horas del día, los 7 días de la semana y soporte de gestión de incidentes.
Nuestros servicios de emergencia están en línea y responden a los pocos minutos de ser buscados, junto con un Comandante de Incidentes. El enfoque inmediato del comandante es minimizar el impacto en el cliente y coordina todo el esfuerzo, incluida la identificación de problemas, la clasificación, las comunicaciones y la resolución. Este es un proceso altamente disciplinado y organizado, sustentado en roles y principios operativos muy bien definidos.
“Por lo general, resolvemos tales incidentes en minutos, publicando actualizaciones en nuestra página de estado mientras trabajamos simultáneamente para restaurar el servicio a la normalidad”
Por lo general, resolvemos tales incidentes en minutos, publicando actualizaciones en nuestra página de estado mientras trabajamos simultáneamente para restaurar el servicio. Sin embargo, la reanudación del servicio normal ciertamente no es el punto final para nosotros. Una parte clave de nuestro proceso de gestión de incidentes es la revisión de incidentes, donde profundizamos en las causas y los factores contribuyentes de un incidente y buscamos aprendizajes.
En un foro abierto interno, reflexionaremos sobre dónde podríamos haberlo hecho mejor y propondremos elementos de acción a corto plazo, así como cambios estratégicos a más largo plazo. Esta reunión es una de las más beneficiosas para nosotros: un recordatorio de que ser realmente grande requiere dedicación a la mejora continua.
Qué significa nuestro enfoque en la disponibilidad para nuestros clientes
Nuestro compromiso con el éxito de nuestros clientes significa que la disponibilidad sólida como una roca es imprescindible. Nuestro enfoque holístico nos ha permitido superar significativamente nuestro objetivo de tiempo de actividad del 99,8 % durante varios años, proporcionando una plataforma de crecimiento en la que todos nuestros clientes pueden confiar.
Esta es la segunda de una serie de contenido que profundiza en las inversiones de Intercom para apoyar a las empresas. Explore otros artículos de la serie.