Observability
Software y Tecnologia

Box: Despliegue del Elastic Stack para lograr observabilidad: un microservicio a la vez

RESUMEN

  • 180
    mil millones de documentos en Elasticsearch
  • 190TB
    de tamaño de datos total
  • 20TB
    de tasa de ingesta diaria

Costos reducidos

La migración de Splunk a Elastic ha reducido a la mitad los costos de ingesta de logging de Box

Mayor observabilidad

Ya no tendrás que rechazar proyectos de logging propuestos debido a los altos precios de ingesta

Empoderar a los ingenieros

Los ingenieros están adoptando el logging y expandiendo la observabilidad a medida que Box escala

Visión general de la empresa

El proveedor de almacenamiento Box se ha transformado en una plataforma de gestión de contenido en la nube de marca, lo que permite a las empresas aumentar la productividad de los empleados y clientes, al mismo tiempo que protege los datos más valiosos de los clientes: sus archivos y flujos de trabajo de misión crítica.

En el competitivo panorama actual de administración de contenido en la nube, es esencial que Box detecte, identifique y resuelva los problemas más rápido que nunca. Esto se debe a que Box está integrado con millones de flujos de trabajo críticos para el negocio de sus clientes y la empresa debe cumplir con estrictos acuerdos de nivel de servicio para fines de estabilidad, rendimiento y cumplimiento.

Los acuerdos de nivel de servicio que promete a los clientes dejan a la compañía solo un pequeño margen de error. Todo esto significa que Box requiere una ventana clara de observabilidad en su infraestructura para admitir una cantidad extraordinaria de casos de uso de sus millones de usuarios, además de los más de 95 000 clientes empresariales de Box.

"Nuestros clientes y usuarios confían sus cargas de trabajo críticas para el negocio sobre el contenido de Box. Entonces, si Box no funciona, es una pérdida de ingresos estricta y estatal para ellos", dice Deepak Wadhwani, gerente de ingeniería del equipo de Observabilidad de Box.

El sitio web de Box promociona a clientes como Allstate, AstraZeneca, Coca-Cola Company, Morgan Stanley, Oxfam, Olympus, Pandora y otros clientes importantes.

El viaje de Box con Elastic

Descubriendo el viaje de Elastic

En los últimos años, el equipo de ingeniería de Box estaba cada vez más preocupado de que su backend heredado para reportes no estaba escalando. Y a medida que el roadmap de Box crecía, el equipo de Observabilidad estaba interesado en adoptar una solución más confiable y rentable para la aplicación y el logging operativo que lo que proporcionaba Splunk.

Estos fueron procesos de misión crítica que cobraron mayor importancia, especialmente cuando Box continuó en su camino de transformar una infraestructura monolítica en cientos de microservicios para permitirle crecer, innovar y ofrecer nuevas características orientadas al cliente.

Debido a que la solución de logging heredada de Box tenía un precio basado en la cantidad de datos ingestados, a veces Box tenía que recortar los proyectos de logging para limitar los costos o los ingenieros de Box decidían no registrar eventos de microservicios recién desplegados.

Esa era una realidad en ese momento y era contraria a la misión de Box de transformarse rápidamente en una plataforma líder de administración de contenido en la nube. Esta transformación exigió que Box desglosara su monolito en microservicios, una dirección que requiere un logging más completo e integral, no menos.

"Tendríamos que disminuir los volúmenes de datos de logging para reducir los costos. Eso iba en contra de nuestra misión de hacer que los sistemas de Box sean más observables. Queríamos construir un sistema que fuera más rentable y continuar con una misión de mayor visibilidad. Por eso elegimos Elastic. Está diseñado para que los desarrolladores ayuden a otros desarrolladores."

– Deepak Wadhwani, Gerente de ingeniería del equipo de Observabilidad | Box

Además, el uso de Box de MySQL para reportes empresariales tuvo sus propios problemas. Entre ellos se encontraba la incapacidad de representar datos de logs de uso para grandes empresas, como cuando se abrían archivos, se movían a una carpeta diferente o incluso se compartían, debido a la enorme cantidad de eventos que se generaban.

Entonces, a partir de 2015, después de examinar el panorama competitivo de precios, la capacidad de expansión, el soporte y la seguridad, Box eligió Elastic.

Aprovechando el Elastic Stack, Box ha adoptado un enfoque de observabilidad escalable y preparado para el futuro con un modelo de precios basado en la cantidad de memoria gestionada en lugar de la ingesta de datos. Esta transición a Elastic, no solo fortalece las capacidades de reportes de Box y reduce drásticamente los costos, sino también captura logs desde los microsistemas de Box para comprender el rendimiento y el comportamiento. Estos logs también están disponibles en cualquier momento.

El caso de uso de reporte fue el punto de entrada para Elastic a Box. Ese éxito de reemplazar MySQL para los reportes por Elastic generó confianza y fiabilidad en Elastic. Estos fueron los principales factores que llevaron a Box a comenzar a reemplazar su solución de logging por Elastic, un nuevo microservicio a la vez.

Aun así, un nuevo sistema de reportes y logging debe generar la aceptación de los ingenieros o enfrentarse a posibles fallas o una lenta adopción. Con la elección de Box del Elastic Stack, los ingenieros ahora están más motivados que nunca para ejecutar reportes a escala y programar logs para microservicios existentes o nuevos: todo ello posiciona a Box para tener aún más éxito.

"Nuestros ingenieros están mucho más contentos ahora y las búsquedas se completan casi de inmediato. Nuestro índice de satisfacción es mucho más alto."

– Salman Ahmed, Director de ingeniería, equipos de Ingeniería de confiabilidad de sitios (SRE) de Observabilidad y Plataforma de datos | Box

Entretanto, el viaje inicial de Box comenzó con unos pocos terabytes de almacenamiento y un puñado de desarrolladores en el equipo de Almacenamiento que desarrollaron y adoptaron las nuevas características de reportes de Box junto con la ayuda de consultores de Elastic en el sitio y sesiones de capacitación de Elastic. Hoy en día, alrededor de 500 ingenieros en una gran parte de equipos en Box están adoptando el Elastic Stack tanto para reportes como para logging, y para visualizar terabytes de datos diariamente en cientos de dashboards de Kibana.

Leer todo sobre "Newsroom"

Como sabemos, el primer movimiento de Box con Elastic fue migrar los logs de la empresa a Elasticsearch con fines de reportes y servir como backend para las analíticas de datos. Este pipeline de datos evolucionaría más tarde para admitir el nuevo entorno de logging de Box respaldado por Elastic.

Para el proyecto de reportes, la empresa aprovecha las características de seguridad obligatorias, como el control de acceso basado en roles y la autenticación de usuarios. Estas y otras características, como poder saber quién accedió a qué archivo de Box cuándo y dónde, permitieron a Box satisfacer las obligaciones de cumplimiento que implican seguridad y privacidad.

El cambio inicial a este proyecto de reportes de Elasticsearch, conocido internamente como "Newsroom", solucionó los problemas relacionados con los problemas de filtrado y las inconsistencias entre los logs empresariales y la Analítica de Negocio. Box ya no tenía problemas para producir reportes de que estaba cumpliendo sus SLA, por ejemplo. Para las grandes empresas, a veces los reportes no se cargaban en absoluto, y para las medianas empresas, tardaban demasiado en obtenerse.

Otras correcciones incluidas:

  • Capacidad obtenida para filtrar eficientemente los logs de uso en función de los usuarios/carpetas
  • Capacidad para adquirir eventos relacionados con usuarios específicos en la empresa o una carpeta específica
  • Reportes de estadísticas que se muestran completos en la consola de administración
  • Incoherencia de los logs empresariales y la Analítica de Negocio resuelta

Hola "Arta"

La antigua solución de logging de Box tenía un precio basado en la cantidad de datos ingestados, que en ese momento era de aproximadamente 7 terabytes por día. Desde entonces, ha crecido a alrededor de 20 terabytes por día y se espera que aumente aún más. Para no hacer saltar la banca, eso significaba que Box tenía que elegir dónde implementar las características de observabilidad en su plataforma de microservicios en constante crecimiento, un problema insostenible que se resolvió al cambiar a Elastic.

El costo no era la única preocupación. Con su plataforma de logging anterior, los indexadores a veces fallaban. La latencia también era un problema y las alertas no eran confiables.

"Estábamos pensando, ¿qué significaría todo esto en 5 años a medida que escalemos? Nuestro cambio a Elastic ha ayudado a reducir nuestro costo por terabyte a la mitad, mejorar la vida de nuestros desarrolladores y proporcionarles capacidades de observabilidad para los microservicios que están desarrollando. Ya no estamos rechazando proyectos de logging debido al costo."

– Deepak Wadhwani, Gerente de ingeniería del equipo de Observabilidad | Box

Con eso en mente, y a medida que la escala de datos de logging diario estaba explotando, la empresa rediseñó su infraestructura de logging en 2017.

Box está moviendo continuamente todo el logging operativo y de aplicaciones de forma segura a Elasticsearch con un enfoque trifurcado de separación de logging de retención, ad hoc e interactivo a través de un pipeline cuyo nombre interno en código es Almost-Real-Time-Analytics o "Arta".

Funciones empresariales de misión crítica

Box dice que la producción y el mantenimiento de sistemas de nivel empresarial que funcionen con los SLA garantizados es fundamental. Por lo tanto, los ingenieros de Box deben tener visibilidad de sus sistemas y los logs que están generando. Ahmed dice que Elastic ha provisto al equipo de Observabilidad de Box con un sistema de logging que ofrece capacidades sofisticadas de búsqueda con una sobrecarga de indexación mínima, todo a un costo razonable a medida que Box escala.

"El Elastic Stack es fundamental para nosotros. Todos los días, millones de usuarios y clientes en todo el mundo confían en Box para ejecutar funciones comerciales de misión crítica. Elasticsearch ha permitido al equipo de Observabilidad de Box trabajar con un sistema de logging confiable y rentable."

– Salman Ahmed, Director de ingeniería, equipos de Ingeniería de confiabilidad de sitios (SRE) de Observabilidad y Plataforma de datos | Box

Con esta observabilidad impulsada por Elastic, además de los cientos de dashboards de Kibana para visualizar estos datos, los ingenieros de Box tienen información al alcance de la mano. Pueden ver si se producen problemas cuando los clientes abren sus archivos de Box, si se agregaron colaboradores a los archivos, si los archivos se agregaron a una carpeta, entre otras opciones. El logging también proporciona a los ingenieros una ruta rápida para solucionar problemas, como la latencia de carga de archivos del cliente, para cumplir con los requisitos de SLA de tiempo de actividad.

Este dashboard de Kibana proporciona al equipo de Almacenamiento de Box, que es responsable de los flujos de trabajo empresariales críticos, la visibilidad de las cargas de archivos agregadas sobre el tipo de archivos cargados, además del cliente web usado en diferentes tamaños de archivos.

Además, para asegurar que los clientes de Box continúen teniendo una excelente experiencia de usuario, el logging es fundamental para el acto de codificación en Box para garantizar que se hayan confirmado los cambios de código, dice Dave Ward, director sénior de ingeniería de Box.

"Cuando realizas un cambio para agregar nuevas características o corregir, ¿mi cambio produjo el resultado deseado?" Ward pregunta. "¿Veo errores al insertar código? Si el pipeline de observabilidad no funcionara según lo previsto, no podríamos garantizar el buen funcionamiento de nuestros sistemas. Que Arta aproveche Elasticsearch es una misión crítica para mantener nuestra agilidad y liberar cadencia a escala".

El futuro roadmap de Elastic para Box

Hoy, Box está en camino de ejecutar gran parte de sus flujos de logging centrados en el desarrollador y a nivel de producción en Arta. A medida que la compañía continúa agregando flujos de logging nuevos y existentes a partir de su desarrollo continuo de microservicios, el equipo de Box está buscando crear nuevas mejoras en estabilidad, resistencia, eficiencia operativa y reducir aún más los costos.

Para el futuro, Box está considerando centralizar más sus métricas de rastreo en una plataforma enmarcada bajo Elastic. Box también se está asociando activamente con los ingenieros de Elastic y refinando y compartiendo comentarios sobre productos.

La empresa está interesada en otras características de Elastic como Elastic APM para el monitoreo de rendimiento de aplicaciones, Machine Learning para ayudar a detectar y alertar sobre problemas, así como las capacidades de mapeo GeoIP de Elastic para que Box pueda visualizar en Kibana de qué parte del mundo provienen las búsquedas, comenzando en la dirección IP.

Box también está explorando Elastic SIEM para ayudar a impulsar las operaciones de seguridad, así como embellecer sus dashboards de Kibana con Canvas, además de examinar muchas otras características de Elastic.

Retorno de la inversión

En términos financieros, la adopción de Elastic ha ayudado a reducir el precio a la mitad cuando se trata de cargas de datos. Además, los problemas de reportes e inconvenientes bajo MySQL se han reforzado. Y la latencia causada, en parte, por su antigua solución de logging con indexación en lectura en comparación con la indexación en escritura de Elastic, se está convirtiendo en algo del pasado.

"Vaciar el mar a cucharadas o vaciar un estanque a cucharadas para obtener los datos". Así es como Wadhwani describe la diferencia en latencia. "Las búsquedas en Kibana con Elasticsearch son mucho más rápidas", dice Wadhwani.

En un nivel menos cuantificable, cuando se trata del retorno de la inversión, Box está alentando activamente a sus ingenieros a producir la cantidad correcta de logs para lograr el nivel de observabilidad necesario para desarrollar productos de calidad empresarial.

Estos y otros cambios sutiles están ayudando a Box a cumplir con los acuerdos de SLA internos y externos, y al mismo tiempo están alentando a los desarrolladores de Box a innovar a medida que Box escala.

Los clusters de Box

  • Número de clusters
    1
  • Número de nodos
    85 de datos, 3 maestros, 6 de clientes
  • Número de instancias de LS/Beats
    20 Logstash
  • Número total de documentos
    180 mil millones
  • Tamaño de datos total
    190 TB
  • Tasa de ingesta diaria
    20 TB
  • Número de indexaciones
    250
  • Tasa de búsquedas
    25 búsquedas por segundo
  • Réplicas
    1
  • Indexaciones basadas en el tiempo
    Diarias
  • Especificaciones del nodo: Total de memoria, CPU, tipo de disco (SSD, HDD)
    AWS i3.4XLarge