Anda di halaman 1dari 17

WHITEPAPER

Herramientas
de monitoreo en
el ciclo DevOps
Introducción
DevOps se ha consolidado y ido madurando en los últimos
ya es un lugar común dentro años mucho más allá de lo que
de las organizaciones con era el análisis de logs.
proyectos de software.
Se ha pasado a un análisis
A veces se puede caer en el en tiempo real, sugerencias
error de verlo únicamente predictivas, detección de
como herramienta, y dentro degradación de performance,
de las herramientas solo análisis de topologías de
enfocarse en contenedores y aplicaciones, administración
pipelines. de suscripciones Cloud, etc.

DevOps no trata solo de Es por esto que decidimos


mejorar la forma en que realizar un análisis de diversas
se despliegan nuestras soluciones SaaS (Software
aplicaciones sino también, as a Service) disponibles
entre otras cosas, generar un en el mercado. El objetivo
aprendizaje continuo respecto no es elegir “lo mejor”, sino
a cómo estas funcionan y proveer las bases para elegir
sobre cómo se comportan adecuadamente una solución
en el uso. Es así que el de acuerdo a las necesidades
mercado de herramientas para de nuestra organización.
monitoreo de aplicaciones ha

page 2
www.belatrixsf.com | belatrixsf.com/blog
Examinaremos:
• Conceptos

• Análisis

- DataDog

- Dynatrace

- Azure Monitor

- New Relic

• Integración con nubes

• Monitoreo de aplicaciones

• Y ¿Cuál debemos elegir?

• Tabla comparativa de aplicaciones de monitoreo

page 3
www.belatrixsf.com | belatrixsf.com/blog
Conceptos
Pero, antes de analizar las herramientas seleccionadas, les
presentaremos los criterios y conceptos manejados en el
reporte:

• Agente: en este contexto se entiende como


agente la pieza de software que debe instalarse
en un equipo para suministrar información
detallada hacia el Servicio de Monitoreo, ya
sea sobre las actividades del host que aloja
la aplicación, o simplemente sobre el propio
rendimiento de hardware. En algunos casos
la instalación es simple pues se realiza solo
activando extensiones sobre un servicio PaaS
(Platform as a Service), pero en otros casos
se requiere instalar el software dentro de las
Máquinas Virtuales respectivas, o agregar
un contenedor Docker al entorno donde
estamos ejecutando nuestras aplicaciones
contenerizadas (como puede ser K8s).

• APM (Application Performance


Management): Esencialmente, es la capacidad
que nos brindan las herramientas para entender
el desempeño de nuestra aplicación (web o
mobile) puesta en producción. En este rubro los
fabricantes ofrecen opciones como:

page 4
www.belatrixsf.com | belatrixsf.com/blog
- Análisis de tráfico
- Tiempo de respuesta
- Uso de CPU
- Detección de excepciones
- Análisis de dependencias (servicios externos y
BD)
- Inspección full stack
- TelemetrÍa personalizada

Es bueno mencionar que, si bien hay ciertos niveles


de monitoreo que se pueden conseguir sin manipular
nuestros entornos, la mayor información se consigue
instalando un Agente como mínimo. Es casi
imprescindible incorporar ciertas librerías propias del
fabricante a nuestras aplicaciones, lo cual en ciertos casos
nos dará la opción de registrar telemetrías personalizadas.

Administración de suscripciones cloud


Con el crecimiento del uso de la nube, surge también la
necesidad de poder monitorizar la ejecución de nuestros
recursos en la nube y, si bien los proveedores suelen
proveer de los datos necesarios para efectuar dicho
análisis, los proveedores de terceros suelen ofrecer
mecanismos de organización de la información de
manera mucho más fácil de acceder y entender.

En este punto es necesario entender que para que el


Servicio de Monitoreo pueda facilitar esa información
es necesario otorgar permisos (de solo lectura)
sobre nuestras suscripciones cloud, por lo que las
organizaciones deben definir cuidadosamente el nivel de
acceso y monitoreo que se requiera otorgar.

page 5
www.belatrixsf.com | belatrixsf.com/blog
Análisis
A continuación realizaremos un análisis de los siguientes
servicios: DataDog, Dynatrace y New Relic. Azure
Monitor merece una mención especial, pues el pack
cumple los requisitos de una solución de Monitoreo, pero
está restringido solo a Azure, lo cual puede ser una ventaja
o inconveniente según como se mire.

Salvo en el caso del servicio de Azure, se emplearon


versiones trial de 14 días, y se ha utilizado una aplicación
.Net 4x desplegada en Azure Web Apps para validar las
capacidades de monitoreo existentes sobre una base
común.

DataDog

DataDog no hace evidente en un primer momento


la necesidad de usar un Agente. Por el contrario, su

page 6
www.belatrixsf.com | belatrixsf.com/blog
estrategia te invita a integrar nuestras suscripciones de
nube con sus opciones de monitoreo e integración con
AWS, Azure y GCP.

Es interesante indicar que la integración con AWS no es


genérica, pues ofrece dashboards especializados para
la mayoría de los servicios proveídos en AWS. Como
contraste, para Azure el único dashboard especializado es
el correspondiente a Azure App Service.

Por esto es definitivamente conveniente trabajar con los


dashboard especializados para lograr información más
detallada si trabajamos con AWS, ya que desde el panel
“general” no podemos analizar de manera granular los
recursos detallados.

Dynatrace

Dynatrace se basa en lo que denominan OneAgent, el


cual debe de instalarse sobre el equipo a monitorizar. Este
agente se encuentra disponible para Windows, Linux, AIX y
Solaris. Sorprendentemente, no hay versión para Mac.

Integración con nubes


Desde el portal se ofrece integración con Cloud Foundry,
AWS, Azure y GCP. La integración con AWS es sencilla,
requiere solo la asignación de permisos (IAM) para lograr

page 7
www.belatrixsf.com | belatrixsf.com/blog
el soporte.

Cabe indicar que, si bien hay soporte para monitorizar


Azure, ésta requiere la instalación de un agente dedicado
como mecanismo intermedio.

Monitoreo de aplicaciones
En el caso de nuestra Web App, fue necesario agregar
una extensión (proveída por Dynatrace) para habilitar el
soporte de monitoreo sobre nuestra aplicación, siendo
que nos da muchas opciones para analizar tanto la
performance como el comportamiento del usuario.

Azure Monitor

Azure Monitor engloba los diversos servicios que recopilan


y permiten analizar la información generada por los
servicios que se tengan en nuestras suscripciones de
Azure. Estos servicios nos permiten obtener las métricas y
alertas sobre nuestros servicios casi en tiempo real.

Si se requiere un análisis más profundo correlacionando


diversos servicios entre sí, entra en acción Azure
Log Analytics. Puede procesar un volumen mayor de

page 8
www.belatrixsf.com | belatrixsf.com/blog
información en rangos mayores de tiempo (lo cual puede
hacer que se incremente el tiempo de retención de los
logs) y dominar un lenguaje de queries a fin de explotar
con profundidad los datos, y obtener así los indicadores
requeridos por la organización.

Corresponde a la organización decidir si le conviene la


información “al día”, proveída por defecto en Azure Monitor,
o ir más allá con el uso avanzado de Azure Log Analytics.
Nótese que puede ser necesario instalar agentes para
profundizar la información a explotar.

Integración con nubes


Estos son básicamente servicios ofrecidos por Azure,
por lo que si se decide utilizarlos y se supera la capa
básica, simplemente se agregará el consumo a nuestra
facturación de Azure.

Monitoreo de aplicaciones
El servicio para esta labor se llama Application Insights
y nos permite tener un dashboard muy potente para
analizar la performance de nuestra aplicación.

Una cosa a considerar es que es posible activar la


integración del App Insights desde la creación del servicio
por primera vez, pero siempre es posible activar esa
integración luego si ya tenemos un servicio corriendo.

page 9
www.belatrixsf.com | belatrixsf.com/blog
NewRelic

Podemos hablar de una herramienta potente y su interés


por innovar al momento de elegir un proveedor de
monitoreo que se encargue de monitorear sus recursos y
aplicaciones.

Cuenta con APM, Infrastructure, Mobile, Synthetics e


Insights, los cuales son sus fuertes.

También podemos mencionar sus integraciones con 3 de


los diferentes servicios en la nube como son GCP, Azure
y AWS, siendo este último el que más servicios cuenta
que se pueden integrar, aunque también podemos hablar
de integrarnos con herramientas On-Host como Vmware
Esxi, Couchbase, entre otros.

Cuando hablamos de esta herramienta no podemos dejar


de tocar otro tema que es la integración a otros servicios
utilizando plugin. Son aproximadamente 200, de los cuales
algunos son soportados directamente por NewRelic, otros
por los mismos proveedores y algunos por comunidades
o empresas.

page 10
www.belatrixsf.com | belatrixsf.com/blog
Todo tiene un costo
Lo más crítico frente al uso de New Relic es analizar
sus precios debido a que son altos comparado a otros
servicios, aunque se pueden aprovechar sus free trial
por 14 días en el caso de synthetics. En infrastructure
contamos con 2 versiones de servicio Pro y Essentials
que, en el caso de Pro, inicia en $1.20/mo y en el caso de
Essentials inicia en $0.60/mo.

Cabe aclarar que, aunque suena muy bien por el valor,


se puede decir que al calcular el precio de una instancia
en los 4 proveedores que tiene la calculadora (AWS, GCP,
Azure, Rackspace) con la instancia más pequeña con
750h/m da un valor de $1.80. En el caso de APM, con
la instancia más pequeña en los cuatro proveedores de
servicio, podemos estimar un costo de 25USD 750h/m.
Cuenta con trial de 14 días en la versión Pro, con
diferencias en cuanto a retención de métricas y mapa de
despliegue de servicios en la versión Essential.

También existen otros servicios, como New Relic Browser


con un precio de $223.50 mensuales o plan anual de $149
mensuales. La herramienta para monitorear aplicaciones
móviles NewRelic Mobile tiene planes que arrancan de los
$999. Por último, podemos mencionar a Synthetics con un
costo desde $69 mensuales.

page 11
www.belatrixsf.com | belatrixsf.com/blog
Y ¿Cuál debemos
elegir?
La respuesta está condicionada por lo que pretendamos
monitorear y la infraestructura con la que contemos. Si
solo trabajamos con Azure quedarnos con lo proveído por
esta plataforma puede ser más que suficiente, pero si ya
tenemos un entorno multicloud toca evaluar más allá.

Algunas preguntas que pueden ayudarnos a elegir la mejor


opción.

¿Qué tan grande es la infraestructura de


mi aplicación?
En algunos casos no nos hace falta medir o pensar el
presupuesto para monitorear nuestras aplicaciones. Sin
embargo, existen muchos casos de startups donde no
es que no se quiera monitorear la aplicación sino que,
por falta de presupuesto, no se tiene como prioridad en el
proyecto.

Afortunadamente existen versiones con poca retención


(como es el caso de Datadog) donde podemos monitorear
infraestructura de manera gratuita hasta 5 host en el caso
de tener nuestra app en servidores virtuales o físico. Por
otra parte, la mayoría de los proveedores de monitoreo

page 12
www.belatrixsf.com | belatrixsf.com/blog
nos ofrecen una versión trial. Incluso, contactando al
proveedor, muchas veces nos aumentan el tiempo de
dicha versión de prueba. Podemos aprovechar esas
versiones de prueba para monitorear nuestras app por
un tiempo de 15-30 días, según cada proveedor, antes
de salir a producción y ajustar últimos detalles mientras
nuestro producto se hace rentable.

Indudablemente, en grandes compañías o empresas


en crecimiento donde es vital o de suma importancia
tener los sistemas activos el mayor tiempo posible para
no tener pérdidas y mantener al cliente conforme, es
notorio y existente el tener herramientas de monitoreo,
no solo a nivel de infraestructura, sino también a nivel de
prevención de caídas.

En lo posible, es ideal tener un pull de aplicaciones de


monitoreo para que nuestra aplicación esté online el
mayor tiempo posible. Existen proyectos de desarrollo
que involucran temas de telemedicina y un sin fin de
aplicaciones que brindan ayuda en temas de salud,
ciencia y banca donde tener los sistemas disponibles es
de suma importancia para no tener pérdidas monetarias
o que pongan en riesgo la vida de alguien.

¿Es la retención de datos un factor a


considerar?
Dependiendo del tipo de negocio, la retención de datos
puede ser un factor a considerar. Si mi tipo de negocio
necesita mayor retención de datos que lo que ofrecen
los SaaS (como observar la tendencia de ciertos
comportamientos a través de varios años) tendremos
que explorar las versiones Enterprise de los proveedores,

page 13
www.belatrixsf.com | belatrixsf.com/blog
que ofrecen un mayor tiempo de retención de datos.
Incluso si esta retención no es suficiente, tendremos que
evaluar herramientas de monitoreo basados en series de
tiempo (time-series), que están basados en base de datos
optimizadas (time-series databases) para almacenar
datos continuamente o en ciertos intervalos de tiempo.
Una de las más conocidas es Prometheus, pero también
hay herramientas comerciales como InfluxData.

Seguridad
En cuanto a la seguridad de mis datos, ¿quiero exponer
mis métricas a un servicio de terceros?

En este aspecto hay que ser conscientes de que el


servicio de terceros solo va a procesar la información que
deseemos analizar. Es nuestra responsabilidad definir
el nivel de granularidad (siempre de solo lectura) que
nuestro IAM va a transmitir desde la suscripción hacia
el servicio de monitoreo. Si por alguna razón se decide
excluir los servidores de BD del servicio de monitoreo, eso
se debe definir en el IAM desde la suscripción.

Costo-beneficio

Si bien la mayoría de los APM no son económicos,


tenemos que entender que tampoco es fácil el
diagnóstico de problemas cuando no tenemos las
herramientas adecuadas.

page 14
www.belatrixsf.com | belatrixsf.com/blog
Conclusión
Luego de todo lo abordado podemos concluir que, para
determinar el grado de importancia de tener un sistema
de monitoreo que se ajuste a mis necesidades y a las
necesidades de mi producto, debemos analizar:

Presupuesto
• Tipo de aplicación

• Herramientas que necesita mi aplicación para


garantizar el mayor uptime posible

• ¿Para qué requiero esta aplicación de monitoreo?

• ¿Realmente necesito esta herramienta?

Son preguntas sencillas pero que, al momento de tomar


una decisión, nos pueden ayudar a entender realmente
el alcance que podemos llegar a necesitar en nuestra
aplicación al momento de requerir monitorearla.

page 15
www.belatrixsf.com | belatrixsf.com/blog
Tabla comparativa
de aplicaciones de
monitoreo
Integración Aplicaciones
APM Agente Precio
Cloud generales

Logs, alertas,
AWS (+10
DataDog dashboard,
servicios),
API, Medio, con
Sí Azure (2 Sí
infraestructura, capa gratuita
servicios) y
machine
GCP
learning
Medio, con
Infraestructura,
Cloud tiempo de
Dynatrace AIOps, Digital
Foundry, prueba
Sí Sí Experience
AWS, Azure, extendido
Monitoring
y GCP contactando
(DeM)
a Dynatrace

Azure Monitor
Exclusivo
Sí Integratedo N/A Medio
Azure

Infraestructura,
New Relic
Mobile, Alto, con
AWS, Azure y
Sí Sí Synthetics e tiempo de
GCP
Insights, prueba
Browser
Fuente: https://www.datadoghq.com/product/

page 16
www.belatrixsf.com | belatrixsf.com/blog
Acerca de Belatrix Software
Belatrix Software ayuda a las QA Automation, ayudan a las
empresas a progresar en el mundo empresas a convertirse en líderes
digital. digitales.

Las organizaciones se asocian Los clientes de Belatrix incluyen


con Belatrix para convertir tanto a empresas establecidas
ideas en productos de software en los niveles de Fortune como a
innovadores y de alta calidad, en empresas emergentes respaldadas
base a procesos perfeccionados de por capitales de riesgo. Algunos de
desarrollo Agile. Los clientes usan los clientes de la firma son Disney,
los servicios de transformación Adobe, AOL, PwC y Shutterfly.
digital de Belatrix para crear
Belatrix es una empresa
productos de software superiores,
sudamericana con oficinas en
reducir el tiempo de lanzamiento, y
Florida, Nueva York, San Francisco,
ganar ventajas competitivas.
Barcelona, Mendoza, Buenos Aires,
Los laboratorios de Belatrix, Bogotá y Lima.
enfocados UX, DevOps, desarrollo
Para conocer más, visita nuestro
móvil, Inteligencia Artificial y
sitio: http://www.belatrixsf.com.

Contáctanos

page 17
www.belatrixsf.com | belatrixsf.com/blog

Anda mungkin juga menyukai