10 maneras de simplificar el monitoreo en la nube

¿El monitoreo en la nube es lo suficientemente especial como para garantizar una lista de consejos y mejores prácticas? Creemos que si .Por un lado, el monitoreo en la nube puede parecer fácil ya que hay una gran cantidad de soluciones para elegir. Por otro lado, sin embargo, la naturaleza dinámica y distribuida de la nube puede hacer que el proceso sea mucho más desafiante. En este artículo, cubriremos diez consejos y mejores prácticas que lo ayudarán a mejorar su juego de monitoreo en la nube.

  1. Mantenlo Súper Simple (KISS)

Cada segundo dedicado a la supervisión es un segundo que no se dedica a su aplicación. Debería escribir el menor código posible, ya que tendrá que probarlo y mantenerlo. El tiempo dedicado a hacer esto se suma a largo plazo.

Al evaluar una herramienta, la mejor pregunta que debe hacerse es: “¿Qué tan difícil es monitorear otro servicio?” Realizará esta operación con mucha frecuencia, y el esfuerzo total para hacerlo puede dispararse si la multiplica por la cantidad de servicios bajo su mando. Claro, hay una cierta complejidad intrínseca involucrada en la configuración de la herramienta, pero si tiene que elegir entre una herramienta que hace el trabajo y una que tiene más funciones y es más difícil de usar, aplique el No lo va a necesitar ( YAGNI ) regla.

Después de la configuración inicial, hay una fase de mantenimiento. Es un hecho bien conocido que lo único que detiene el trabajo planificado es el trabajo no planificado. Puede minimizar las interrupciones y fallas al simplificar las operaciones de monitoreo. Por ejemplo, Prometeo hace inversión de dependencia. Hace que el monitoreo dependa de su aplicación, no al revés (modelo pull vs. push). También reduce la complejidad operativa al hacer que los recolectores sean totalmente independientes en una configuración de alta disponibilidad (HA), ¡ese es un sistema distribuido menos para que usted lo administre!

  1. La instrumentación es el camino

Una vez que elige una herramienta de monitoreo simple y la configura, surge la pregunta de qué monitorear. ¿La respuesta? “¡Las cuatro señales de oro”, obviamente! Estos son: latencia, tráfico, errores y saturación.

Pero ¿qué significa “latencia” para su aplicación y qué valores son aceptables? Solo unas pocas personas lo saben: usted, sus compañeros operadores, el negocio y los desarrolladores de aplicaciones.

Para incorporar esta experiencia en una aplicación de sistema de monitoreo se requiere instrumentación. Esto significa que los servicios deberían exponer métricas relevantes. Un valor adicional que viene con la instrumentación es que cada métrica adicional puede ser validada por las necesidades del negocio.

  1. ¿Monitoreo automatizado de la infraestructura? Déjelo a su proveedor

Algunas herramientas pueden tentarlo con la promesa de monitoreo de configuración cero mientras carecen de otras características. Estos pueden incluir detección de anomalías basadas en IA y alteración automática. ¿Alguna vez se ha preguntado cómo pueden proporcionar el valor si las peculiaridades y los comportamientos deseados de su sistema son desconocidos para la herramienta?

Podría decirse a sí mismo que estas herramientas son excelentes para monitorear la infraestructura. De hecho, hay tareas comunes como el equilibrio de carga o el almacenamiento de datos relacionales que no deberían requerir instrumentación manual. Pero, si acelerar el monitoreo personalizado para su infraestructura es un problema, tal vez debería considerar usar una solución alojada de su proveedor.

El precio en un equilibrador de carga en la nube incluye monitoreo (así como actualizaciones, failovers y corrección de fallas), entonces, ¿por qué no considerar externalizar las utilidades estándar y centrarse en los servicios de valor agregado? Cuando piense en ejecutar la infraestructura por su cuenta, asegúrese de considerar el costo total de mantenerla.

  1. Asegúrese de que el monitoreo pueda seguirle el ritmo

Todo cambia en la nube. Sin embargo, las implicaciones de estos cambios constantes no siempre son sencillas. Puede aparecer otra máquina o instancia de servicio sin interacción humana. Dado que los cambios en el estado de su entorno de nube están automatizados (por ejemplo, mediante reglas de autoescalado), el monitoreo debe ajustarse en consecuencia. En el mundo ideal, nos gustaría lograr algo llamado transparencia de ubicación en el nivel de monitoreo y referirnos a los servicios por nombre, en lugar de por IP y puerto. El número de instancias de servicio (máquinas, contenedores o pods) no es fijo.

La herramienta de monitoreo ideal debe integrarse perfectamente con el mecanismo de descubrimiento de servicios actualmente en funcionamiento (como Consul o Zookeeper), con el software de agrupación (como Kubernetes) o con el proveedor de la nube directamente. De acuerdo con el principio KISS discutido en el primer párrafo, no debería necesitar escribir ningún adaptador para fines de infraestructura.

La ubicuidad de la integración no es imprescindible, aunque puede reducir la cantidad de piezas en movimiento. No debería haber necesidad de cambiar una herramienta de monitoreo al cambiar de proveedores en la nube. Prometheus es un ejemplo de un producto que equilibra los requisitos de integración y configuración sin el bloqueo del proveedor. No solo integra funciones listas para usar con los principales proveedores de nube y herramientas de descubrimiento de servicios, sino que también se integra con alternativas de nicho a través de DNS o un archivo (a través de un adaptador). Por supuesto, ELK Stack también es de código abierto y, por lo tanto, independiente del proveedor. También está bien integrado.

  1. Una dimensión no es suficiente

Algunos sistemas de monitoreo tienen una jerarquía de métricas: node.1.cpu.seconds . Otros proporcionan etiquetas con dimensiones: node_cpu_seconds {node_id = 1} . La jerarquía obliga a un operador a elegir la estructura. Debería considerar expresar esta medida en un sistema jerárquico, como en el siguiente: node_cpu_seconds {node_id = 1, env = ”staging”} .

Más dimensiones permiten realizar consultas más avanzadas con facilidad. La respuesta a la pregunta, “¿Cuál es la latencia de los servicios en la puesta en escena con la última versión de la aplicación?” se reduce a seleccionar los valores de etiqueta apropiados en cada dimensión. Como efecto secundario, la fragilidad se reduce con los agregados. Una suma sobre http_request_count {env = ”production”} siempre arrojará valores correctos, independientemente de las ID de nodo reales.

  1. ¿Se escala?

Es genial si su herramienta funciona en un entorno PoC sin ningún problema. Sin embargo, ¿se ampliará esa herramienta cuando la demanda de su producto se dispare? El rendimiento del sistema debe aumentar proporcionalmente con el número de recursos agregados. Considere la escala vertical antes que la horizontal. Las máquinas son baratas (en comparación con las horas por persona) y están disponibles en una nueva ejecución de Terraform (si practica infraestructura como código).

Además, no piense en la escala en un sentido de Google. Nos encanta pensar en grande, pero es más práctico mantener las cosas realistas. Complicar la infraestructura de monitoreo rara vez vale la pena. Puede contrarrestar muchos problemas de escalado observando más de cerca las métricas recopiladas. ¿Realmente necesitas todas las métricas únicas? La extensa cardinalidad métrica es una receta simple para enviar spam incluso a los sistemas más eficaces.

  1. Reciclar y reutilizar

Puede haber razones válidas para ejecutar la infraestructura usted mismo. Quizás ninguna de las bases de datos ofrecidas por su proveedor tenga las características críticas de negocio deseadas, por ejemplo. Sin embargo, debería haber muy pocos casos de este tipo en su sistema. Si está ejecutando aplicaciones en las instalaciones, simplemente tome complementos de monitoreo listos para usar y ajústelos a sus necesidades.

Hacerlo reduce la necesidad de instrumentación. Aún tendrá que ajustar manualmente la visualización y las alertas. Agregar monitoreo personalizado sobre infraestructura personalizada rara vez se justifica por las necesidades comerciales.

  1. Toc, toc

Monitorear sin alertas es como un automóvil sin gasolina: no vas a ir a ningún lado con él. De hecho, hay algo de valor en el análisis de causa raíz en el acto, pero puede analizar los mismos datos de los registros. El verdadero valor del monitoreo es informarle al operador humano cuándo se requiere su atención.

Entonces, ¿cómo deberían ser las alertas? Idealmente, los operadores humanos solo deberían ser alertados sincrónicamente sobre síntomas accionables, de usuario final y de todo el sistema. Ser despertado a las 3 de la mañana sin una buena razón no es la experiencia más agradable. Cuidado con la relación señal / ruido; Lo único peor que no tener monitoreo es tener monitoreo con alertas que las personas ignoran debido a una alta tasa de falsos positivos.

  1. Cuidado con el bloqueo de proveedores

Aunque las soluciones de monitoreo de aplicaciones fácilmente disponibles de su proveedor de la nube pueden parecer deslumbrantes y fáciles de configurar, no necesariamente permiten la instrumentación (principio # 2). Incluso si lo hacen, estarán vinculados a un proveedor de la nube en particular.

Más allá de paralizar su capacidad de migrar o ir a múltiples nubes en caso de que surja la necesidad, el bloqueo de proveedores evitará que pueda ensamblar su sistema localmente. Esto puede aumentar sus costos (ya que cada pequeño experimento debe ejecutarse en la nube), la complejidad operativa (la necesidad de administrar pocas cuentas para el desarrollo, la preparación y la producción) y el tiempo del ciclo de iteración (el aprovisionamiento de recursos en la nube suele ser un orden de magnitud más lenta que el aprovisionamiento de recursos locales, incluso contabilizando la automatización).

  1. Cave un pozo antes de tener sed

Puede tener la tentación de posponer la creación de un sistema de monitoreo adecuado, especialmente si está ejecutando un inicio. Después de todo, es un requisito no funcional y los clientes no pagarán más por ello. Sin embargo, desea tener ese monitoreo en su lugar para que esté al tanto cuando ocurra una interrupción antes de que un cliente enfurecido se lo haga saber. El mejor momento para configurar un sistema de monitoreo es ahora.

Puede comenzar con una configuración simple que no sea HA sin ninguna base de datos y luego hablar con la empresa sobre qué monitorear primero. Como probablemente ya sepa, el monitoreo es impulsado por los requisitos del negocio, incluso si el negocio no siempre lo reconoce. Comenzar temprano le permitirá amortizar el costo de implementación y desarrollar gradualmente sus capacidades de monitoreo mientras aprende de cada interrupción (no si, sino cuándo suceden). En el proceso, ganará agilidad y confianza en el conocimiento de que está monitoreando las cosas correctas.

Resumiendo

Al intentar aplicar estos diez principios a sus propios proyectos, creemos que podrá aprovechar al máximo su monitoreo y registro. Estas no son las únicas ideas que existen, por supuesto, y es posible que no todas se apliquen a sus flujos de trabajo específicos o a la organización en su conjunto. No existe una solución única para todos, y nadie más que usted conoce su negocio.

Recuerde, ¡puede comenzar este proceso gradualmente! Después de todo, un monitoreo imperfecto es mejor que ningún monitoreo.

Daniel Berman, Logz (2019) 10 maneras de simplificar el monitoreo en la nube. Tomado de: https://logz.io/blog/simplify-cloud

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

DevOpsDays Bogotá OnlineDevOps Latam Patrocinador del DevOpsDays Bogotá 2020 te invita a asistir al evento de DevOps más importante del año Completamente GRATIS!
Top