El lado oscuro del Streaming Telemetry

20
El lado oscuro del Streaming Telemetry Camilo Cardona NTT

Transcript of El lado oscuro del Streaming Telemetry

Page 1: El lado oscuro del Streaming Telemetry

El lado oscuro del StreamingTelemetry

Camilo CardonaNTT

Page 2: El lado oscuro del Streaming Telemetry

¿Qué es el streaming telemetry?

• Streaming de valores definidos en un modelo YANG• Alternativa al SNMP, y, sobretodo, al polling• Varias alternativas en las tecnologías que lo soportan

Get-bulk 1.3.6.1.2.1.2.2.1.2 (IF-MIB)Data

… N minutos después

Get-bulk 1.3.6.1.2.1.2.2.1.2Data SNMP

Page 3: El lado oscuro del Streaming Telemetry

¿Qué es el streaming telemetry?

• Streaming de valores definidos en un modelo YANG• Alternativa al SNMP, y, sobretodo, al polling• Varias alternativas en las tecnologías que lo soportan

Suscripción a ietf-interfaces:interfaces/interface/statistics

Data

… N segundos despuésData

Page 4: El lado oscuro del Streaming Telemetry

¿Cuál es la desventaja de del SNMP?

• No habrá nuevo Contenido: Las métricas de nuevas tecnologías no se expondrán en MIBs (i.e. SMIv2) sino en módulos de YANG.• Escalabilidad: Recolectar mas datos de manera precisa

• Referencia: “SNMP is dead” de NANOG 73*

*Referencias en la ultima slide

¿Esto es suficiente para convencer a la industria para abandonar el SNMP?

Page 5: El lado oscuro del Streaming Telemetry

Estado del streaming telemetry en la industria

• Se ha desarrollado en los últimos años, pero está fracturado• Openconfig / IETF / propietario

• Openconfig se ha desarrollado rápidamente, el código disponible es mas amplio, pero es básicamente controlado por Google

• La IETF ha trabajado lentamente. Definió un framework flexible, pero hay poco código

Page 6: El lado oscuro del Streaming Telemetry

Ecosistema del streaming telemetry

• Plano de control• Cómo se

configuran/establecen los flujos de datos (streams)

• Tipos de flujos de datos:• Sample• On-change

YANG

KafkaTSDB

Grafana

ZeroMQSQLNoSQL

Kibana

GPB JSONXML

GRPC

TCPUDP

NETCONF

RESTCONF

Pivot

Transporte

Encoding

Data Model

GRPCCollectors

Msg queues/streams, almacenamiento y otros sistemas

Page 7: El lado oscuro del Streaming Telemetry

Transporte

• Define el protocolo de comunicación entre el dispositivo y el colector• Ejemplos:• Protocolos propietarios basados en UDP, TCP• GRPC

• Definiciones propietarias• GNMI

• NETCONF (RFC 8640), RESTCONF

Page 8: El lado oscuro del Streaming Telemetry

Transporte

• Ejemplos: UDP, TCP, GRPC (e.g. GNMI), NETCONF (RFC 8640), RESTCONF• En algunos de estos la comunicación la establece el servidor, en otras

el colector. Algunos permiten ambas.• La capa de transporte define el control de flujo (i.e. backpressure).

Los protocolos complejos no son puramente PUSH.• GNMI define como detectar y tratar los consumidores lentos

• Mirar “duplicates” en la sección 2.1 de la gnmi-specification*

Page 9: El lado oscuro del Streaming Telemetry

Encoding

• Ejemplos: XML, JSON, Google Protocol Buffers (GPB), otros pueden venir…• GPB puede ser genérico (e.g. GPB-KV) o pueden existir esquemas para cada

modelo (e.g. GPB Compact)• Todo es un trade-off:

• Recomendado: Capitulo 4. del libro Designing Data-Intensive Applications

• Ya es relativamente sencillo decodificar/codificar en varios lenguajes• El tipo de encoding es importante cuando se desea escalar.

Muchos enrutadores solo soportan un tipo de encoding. Los colectores deben ser flexibles.

Page 10: El lado oscuro del Streaming Telemetry

YANG modelos

• Modelos standard• Standards, pero no siempre cumplen con todas las necesidades

• Modelos nativos• Exclusivos de un vendor/modelo• Pueden cubrir muchos mas datos• Muchas veces auto-generados y con problemas en estructura (e.g.

Excesivamente jerárquicos, claves no bien definidas)

Los colectores posiblemente deban transformar los datos para ajustar modelos

Page 11: El lado oscuro del Streaming Telemetry

Data

Page 12: El lado oscuro del Streaming Telemetry

YANG models

Page 13: El lado oscuro del Streaming Telemetry
Page 14: El lado oscuro del Streaming Telemetry

¿Qué hacer con los datos que se generan?

• Surgirán herramientas para requerimientos ”standard”• Contadores de interfaces• Modelos/transporte/Encoding standard

• Cada ISP/Red tendrá que ajustar sus herramientas para requerimientos ”ad-hoc”

Page 15: El lado oscuro del Streaming Telemetry

¿Que hacer con los datos que se generan?

Colectores Bases de datos

telegraf

Pmacct

InfluxDB

Visualización

KafkaPivot

Msg queues/streams

Page 16: El lado oscuro del Streaming Telemetry

Conclusiones

• La industria todavía está en maduración• Sin embargo, ya es posible recolectar datos útiles de modelos básicos

• Los colectores deben ser flexibles.• Todavía se necesita trabajo en la estandarización y afinación de

modelos• Post-transformaciones pueden ser necesarias

• No es trivial, son necesarias mejores herramientas.• Probablemente el mejor recurso para aprender todo esto en un solo

lugar:• Network Programmability with YANG: The Structure of Network Automation

with YANG, NETCONF, RESTCONF, and gNMI.

Page 17: El lado oscuro del Streaming Telemetry

Referencias

• Icons:• Router: Yudha Agung Pribadi,

https://www.iconfinder.com/icons/575175/cisco_networking_router_stencil_visio_icon

• Server: https://www.iconfinder.com/icons/298866/server_icon• Yang: https://www.iconfinder.com/icons/379381/yang_yin_icon

• Presentaciones:• https://pc.nanog.org/static/published/meetings/NANOG73/1677/20180625_Shakir_

Snmp_Is_Dead_v1.pdf• Otros

• Especificación GNMI: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md

Page 18: El lado oscuro del Streaming Telemetry

Back-up

Page 19: El lado oscuro del Streaming Telemetry

Tipos de Stream

• Sampling• Los datos son enviados a una frecuencia determinada

• On-change• Los datos se envían solamente cuando hay cambios• Eficiente para unos tipos de datos, pero complica el sistema

Page 20: El lado oscuro del Streaming Telemetry

Control plane

• YANG PUSH (en RFC8639) define una manera estándar de establecer subscripciones• Independiente de transporte

• GNMI define sus propios mecanismos de suscripción.