Comprar, alquilar o construir: estas son las opciones para adquirir un sistema de monitorización de red que se ajuste a las necesidades de la empresa. Aquí hay una compañía que decidió construir la suya propia.

    Últimamente, he mirado las consideraciones que hay que tener en cuenta para adquirir una solución de monitorización de red. Las empresas con redes cada vez más complejas necesitan automatización para ayudar a los administradores encargados de su seguridad y mantenimiento. Hemos visto ejemplos de compra o alquiler de uno de estos sistemas. Ahora es el momento de ver por qué alguien querría construir el suyo propio.

    Cloudant es una empresa que proporciona DBaaaS (base de datos como servicio. Dirigen clústeres de máquinas en nube para el trabajo de grandes volúmenes de datos. Cloudant tiene necesidades especiales de supervisión. Comprar un sistema de monitorización de propósito general o alquilar un servicio de monitorización les habría dejado con un montón de personalización que hacer. Tanto que decidieron construir un sistema de monitorización propio a partir de partes de código abierto.

    El sistema de monitorización de Cloudant produce un terabyte de datos cada día. Esto se envía desde los muchos proveedores de IaaaS utilizados por Cloudant a una ubicación central. Benjamin Anderson, ingeniero de Cloudant, construyó la primera iteración de su sistema de monitorización utilizando muchos componentes:

    ¿Por qué Benjamin pasó por el dolor de construir un sistema de monitoreo? ¿Por qué no comprar un sistema en el mercado o alquilar un servicio de monitorización de la nube?

    Requisitos de Cloudant

    Benjamin describió los desafíos de monitoreo que enfrentaron. «No tenemos desafíos completamente únicos, pero tenemos algunos. Manejamos cientos de máquinas que básicamente todas parecen iguales – clusters isomórficos… Manejar cientos de máquinas que están todas diseñadas para verse y operar de la misma manera no es algo que se exprese bien en las herramientas de monitorización heredadas. Por eso tuvimos que escribir el nuestro».

    Benjamin se refirió a por qué la construcción de nuevos productos funcionaba mejor para Cloudant que la compra de productos heredados. «Las herramientas que compras son bastante pobres. OpenNMS, herramientas como esa, no están envejeciendo bien».

    Entonces, ¿por qué son mejores las herramientas elegidas? «Ahora, hay mucha actividad en estos proyectos de código abierto – Riemann, Sensu, CollectD – y hay mucha experimentación en curso en las comunidades. Además, están diseñados para sistemas modernos. Estamos aprovisionando y desmantelando máquinas con bastante rapidez, y estas viejas herramientas no lo hacen bien».

    La escala de la nube también es un desafío. Cloudant gestiona miles de nodos a través de muchos proveedores de IaaaS. «Dada nuestra actual implementación, vamos más allá de los límites de lo que hacen muchas de estas herramientas de código abierto. Si usáramos herramientas heredadas, probablemente tendríamos mucho más dolor».

    Sistema de monitorización de Cloudant

    Benjamin inventó un sistema de dos puntas para Cloudant.

    • Sensu vigila la infraestructura de Cloudant (predominantemente servidores físicos ajustados para el rendimiento de la base de datos. Sensu es un framework de monitorización de código abierto, muy parecido a Nagios.
    • Una serie de otras herramientas de código abierto vigilan los servicios de la base de datos.

    Los datos se recogen de cada host, se envían a un clúster de monitorización, se almacenan en un almacén de datos y se crean gráficos para los cuadros de mando.

    Un host Cloudant

    Un host Cloudant es parte de su DBaaaS, como una instancia AWS ejecutando DynamoDB. Benjamin dijo que recolectan muchos datos de series de tiempo de cada anfitrión. «Recopilamos alrededor de 2.000 métricas únicas de cada huésped. Tomamos todos esos – y estos son sólo números, números en coma flotante – los grabamos cada 10 segundos y los enviamos a un grupo de monitoreo». Muchas de estas métricas provienen directamente de la base de datos, producida por el Erlang VM y dentro de otras partes de la base de datos. Las métricas del sistema se recogen desde abajo en la pila de tecnología, pero las métricas de la aplicación reciben la atención personalizada.

    Un demonio del sistema llamado collectd se encarga de la recogida, la información básica y el transporte. La mayoría de los datos de Cloudant son manejados por sus extensiones colectivas personalizadas.

    Benjamin dijo que las ventajas de Collectd son»es fácil, y tiene encriptación. Los datos están encriptados cuando los enviamos por cable».

    El grupo de seguimiento

    Los ingenieros de cloudant utilizan la herramienta de procesamiento de flujos de Riemann para actuar sobre los eventos. Cloudant ha escrito herramientas sobre Riemann para analizar datos, notificar a los operadores y enviarlos a su almacén de datos históricos.

    Transmisión de datos en nube a PagerDuty, la empresa de alertas SaaS, que se encarga de ponerse en contacto con el personal de guardia las 24 horas del día, los 7 días de la semana.

    Almacenamiento de datos y visualización de gráficos

    Cloudant almacena 45.000 puntos de datos por segundo en grafito. El grafito es un almacén de datos históricos. El almacén de datos ocupa medio terabyte en el disco, en un formato de datos de series temporales ajustadas. Los administradores de Cloudant pueden consultar grafito con preguntas como «Hace seis meses, ¿cuál era el promedio de utilización en el cluster x? Benjamin dijo que el grafito es fácil de usar: «Tenemos personas que no son desarrolladores que entran y acceden a los datos, lo que supone una gran ventaja para nosotros: conseguir que menos gente técnica acceda a los datos de estos sistemas».

    El grafito también grafica los datos (localiza la pista en el nombre. Cloudant utiliza el renderizador de gráficos para alimentar los cuadros de mando que utilizan los administradores.

    La construcción de la suya propia tiene ventajas y desventajas

    Los ingenieros de Cloudant se esforzaron mucho para construir una solución de monitorización en lugar de comprar o alquilar una. Construir su propio servicio significa invertir mucho tiempo. Cloudant ha estado desarrollando su solución durante los últimos dos años, y todavía hay un desarrollo activo en curso.

    Pero para Cloudant, un servicio al cliente sólido es esencial. Y eso significa que no hay que hacer concesiones con el monitoreo.