13
Adiós a la war room, hola DevOps 2.0 6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones 6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones © 2015 Dynatrace

Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

Adiós a la war room, hola DevOps 2.0 6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

Page 2: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

2

Índice

Pagina PaginaCapitulo Capitulo

3 Autores 9 ¿Cuáles son sus prioridades?Muéstreme el dinero

5 Diga adios a las war rooms La solución de errores en producción es muy costosa 11 Automatice, automatice, automatice

Demasiados datos y tiempo no suficiente

4 Resumen ejecutivo 10 “Eleve el listón” se sus puestos de desarrolloEntregas continuadas requieren calidad continuada

6 Haga las preguntas correctas Y obtenga respuestas 12 Sus deberes

8 Es hora de incrementar capacidadesDiferentes métricas + diferentes soluciones = Visión diferente

Page 3: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

3

Best practices de dos chicos que comen, beben y respiran DevOps

Andreas Grabner tiene más de 15 años de experiencia como arquitecto y desarrollador en Java y .NET, y es un asesor para aplicaciones de alto rendimiento. Es un colaborador habitual de las grandes comunidades de rendimiento y un ponente frecuente en conferencias tecnológicas.

Brett Hofer es un apasionado de DevOps y está especializado en la entrega de software complejo crítico. Con más de 20 años de experiencia — desde el diseño de producto y arquitecto de soluciones hasta alta dirección — posee una perspectiva a 360º del mundo IT única.

Andreas GrabnerAsesor de rendimiento, Dynatrace

Blog: blog.dynatrace.com Twitter: @grabnerandi

Brett HoferSenior Solution Architect, Dynatrace

Blog: blog.dynatrace.com Twitter: @brett_solarch

Volver al índice

Page 4: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

Lo llame DevOps o de otra forma, hemos observado muchas compañias intentando seguir “el libro” para transformar la manera en que el software es desarrollado, probado y entregado. Compañias como Facebook, Flickr, Etsy, Twitter, y Amazon han liderado el camino y son vistas como “Unicornios DevOps”, pero muchas han fallado puesto que no estaban dotadas de la correcta organización, cultura de empresa, y herramientas disponibles.

La clave para todo su equipo — desarrolladores, probadores y operaciones — es tomar la responsabilidad de la rápida entrega de software al usuario final sin comprometer la calidad. La soluciones juegan un papel crítico dándole soporte es este rol: ayudan a las empresa a ser más eficientes automatizando las tareas a lo largo del proceso de entrega.

DevOps 1.0 era una gran solución para hacer reflexionar a la gente sobre la transformación necesaria aprendida

de la fabricación de los años 80. Ahora es el momento de evolucionar a DevOps 2.0, incrementando las aptitudes de su equipo de ingeniería y asumiendo la responsabilidad del producto final.

Las war rooms pueden ser la excepción, pero nunca la regla, y debemos alzar el listón cuando atañe a la calidad. La calidad debe estar presente en todo lo que hacemos – requerimientos, ingeniería, pruebas y entrega – y automatizada lo más posible.

En este eBook, nos centramos en lo que necesita para realizar continuas transformaciones:

> Haga las preguntas correctas y obtendrá las respuestas correctas para actuar con eficiencia cuando se presente un problema

> Aumente las capacidades de desarrollo, pruebas y operaciones para incorporar la calidad desde el inicio

> Defina un juego de métricas común basado en objetivos compartidos haciendo lo que hacen los buenos equipos — colaborar

> Identifique las prioridades de su negocio de forma que pueda orientar a su equipo en lo que más importa

> Integre métricas de calidad continua como portales en el proceso de entrega, reduciendo la gestión técnica y el trabajo no previsto

> Automatice la arquitectura, escalabilidad y análisis de rendimiento en vez de atascarse con montones de ficheros de log con los que pelearse.

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

4

Resumen Ejecutivo

Volver al índice

Page 5: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

5

Diga adios a la war roomEl Bug-fixing en producción es carísimo

Hmm…¿me pregunto cuáles son los ritmos de entrega?

¿Cada dos semanas?¿Cada cuaatro semanas? ¿Trimestral?

Si realizan entregas en producción cada dos semanas, los descubrimientos serán ya obsoletos cuando se llegue a ellos.

Todos sabemos que corregir errores en producción tiene un coste tremendo: 50 veces más que durante el ciclo de desarrollo.1 Piense sobre su típica war room — mucha gente realmente importante y cara sentada en una habitación por días analizando ficheros de log. En vez de estar trabajado en las nuevas funcionalidades del mañana, están arreglando problemas del pasado y agravando la deuda técnica.

Desafortunadamente este scenario es demasiado común: muchos de los típicos esfuerzos de los equipos de desarrollo se queman en el arreglo de bugs en vez que en nuevas funcionalidades, con un

software malo que cuesta 60 billones de dólares anualmente.2

¿Un mundo sin war rooms? Sin entrar en dramatismos, pero es realmente posible eliminar la mayoría de los escenarios de war room.

Basándonos en nuestras experiencias, el ochenta por cierto de los problemas más usuales en producción son causados solo por el 20% de patrones. Usted puede reducir drásticamente sus escenarios de war room utilizando los principios de DevOps y monitorizando de forma activa cada entorno a través del ciclo de entrega, utilizando las soluciones adecuadas para señalar de forma exacta los problemas.

“Me he enredado con los mismos ficheros de logs a veces durante semanas para extrapolar relaciones entre diferentes sistemas […] antes de tener mi ‘momento eureka.” - RecklessKelly (Operator)

en reddit

1. Barry Boehm, 2007 Equity Keynote Address

2. NIST (National Institute of Standards and Technology) http://www.computerworld.com/article/2575560/it-management/study--buggy-software-costs-users--vendors-nearly--60b-annually.html

Volver al índice

Page 6: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

6

Haga las preguntas correctas¡Y obtenga respuestas!

Mucha gente que es convocada a las war room no tienen idea de dónde están los problemas, de si hay algo que pueden arreglar o no, ni si quiera si son los responsables. La ‘evidencia’ (ficheros de log de datos de la monitorización de la infraestructura, etc.) muestra los síntomas, pero no la causa raíz. Tener mucha información de log y datos de alto nivel no ofrece las respuestas a las preguntas que realmente interesan.

Para descartar estos escenarios, ¿cuál debe ser la ‘evidencia’? ¿Qué preguntas se deben realizar?

¿Se ve impactado un usuario individual o todos los usuarios?

¿Es solamente el CEO quién se queja de un problema porque un informe no funciona en suu Viejo IE10? ¿O es el usuario final en una localización remota usando una conexión telefónica? Conociendo si un problema impacta solo a un grupo pequeño de usuarios o a un gran número de usuario localizados en China, por ejemplo, es crítico para priorizar el mismo.

¿Hay algún problema en la cadena de distribución (p.e. CDNs, terceras partes, ISPs, proveedores Cloud, hosted services, redes móviles)?

Las modernas aplicaciones web se basan en una larga lista de servicios a través de la cadena de distribución. Conociendo el impacto de cada uno se comprende donde investigar, ya sea al interno de su centro de datos o si debe llamar a Akkamai o Facebook

Un número significativo de usuario en China

NO ESTÁN SATISFECHOS

¿Hay una transacción crítica afectada?

Cuando la rata de errores crece — ¿es una transacción crítica como la búsqueda? ¿o es algo trivial como un BOT provocando errores mientras se mueve entre páginas que ya no existen? Necesita monitorizar el rendimiento en las transacciones críticas y saber a qué SMEs llamar si existe un problema.

¿El problema está en la aplicación?

Las aplicaciones son complejas. Si sabe que el problema se produce en la aplicación, necesita aislar donde de forma que pueda comunicar con los desarrolladores y arquitectos de forma rápida y precisa.

Volver al índice

Page 7: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

7

¿El problema es ligado a mala codificación?

Si el tiempo de respuesta de la aplicación es lento, la primera pregunta a realizar es si está mal codificada. Necesita analizar la respuesta del punto de acceso a nivel de código para encontrar si la causa es algoritmos ineficientes o falta de código y buenas prácticas de arquitectura.

¿Está el problema en la máquina virtual?

Podrían darse problemas de rendimiento si sus máquinas virtuales (ej. VMware, EC2, Azure) o sus contenedores (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo servidor virtual. Si conoce el impacto en el rendimiento de la virtualización de la aplicación, sabrá contactar con los expertos de VM, y no con los desarrolladores de la aplicación, para resolver el problema.

¿Ha causado la infraestructura un problema?

¿Qué sucede si no es la aplicación en sí misma sino las aplicaciones ejecutadas con bajos recursos en la infraestructura? ¿Qué sucede si la CPU que tiene que ejecutar el Garbage Collector no está disponible porque la máquina está sobre utilizada? Es entonces el momento de pensar en distribuir las aplicaciones de forma diferente o escalar la infraestructura.

¿Está el problema en el servidor de aplicaciones?

El servidor de aplicaciones puede ser la causa en problemas de rendimiento debido a una mala configuración o una entrega corrupta. Corregir el tamaño de los pool de recursos (threads, database connection, etc.), parámetro de seguridad u opciones de logging pueden impactar en el rendimiento. Si conoce la causa, podrá contactar con su especialista IBM, Oracle o Microsoft.

Con las respuestas a estas preguntas usted podrá eliminar las war rooms e identificar la raíz del problema de forma veloz, priorizando y encontrando una solución. En vex de tener una war room de 20 personas, solo tendrá tres personas – un desarrollador, un tester y un operador – evaluando los detalles de rendimiento y solicitando a los expertos solo si son necesarios. ¡Excelente!

Por quéCómoQué

Quién

Haga las preguntas correctas¡Y obtenga respuestas

Volver al índice

Page 8: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

8

Es el momento de incrementar capacidadesDiferentes métricas + diferentes soluciones = diferente visión

Cuando sus prácticas DevOps no están alineadas, desarrolladores, testers y operaciones tendrán visiones diferentes, y si rendimiento se medirá con diferentes métricas.

> Desarrolladores: entregando nuevas funcionalidades y completando a la carrera tantos puntos como sea posible

> Testers: encontrando defectos y persiguiendo a los desarrolladores

> Operaciones: manteniendo la estabilidad en vez de entregando nuevas aplicaciones

Si sus objetivos no son los mismos, ¿cómo trabajaran juntos para cumplir los objetivos de continua innovación al interno de su organización? Ellos actuarán de forma independiente los unos de los otros y cuando suceda un problema, habrá multitud de personas señalando.

Para alcanzar los objetivos de entrega, deberá romper esos silos de equipo e incorporar a todos al mismo equipo: un equipo cuyo primer objetivo será crear software de alta calidad. No es óptimo lanzarse contra el muro en un constante ciclo de: codificación, pruebas, fallo.

Es el momento de aumentar las capacidades de su equipo de ingenieros. Todas las partes tienen que empezar a entender los retos de las otras. DevOps mejora el trabajo en común, de acuerdo a un conjunto de soluciones y métricas común, acordando la definición de cada métrica y como debe ser medida.

Las soluciones de monitorización de rendimiento de las aplicaciones — la evolución de la simple solución de monitorización de sistema que ahora monitoriza la calidad end-to-end a través de todo el sistema de entrega- hace que todos hablen el mismo lenguaje. Ofreve una visión única y automatizada del rendimiento que está personalizada para cada miembro del equipo según su rol y necesidades. Cuando algo va mal, el equipo multi-funcional puede arreglarlo sin tener que convocar una war room.

En vez de tener a los tester encontrando 10 defectos al día, deben educar a los desarrolladores en los fallos más comunes de forma que se eviten desde un principio. Así los tester se podrán centrar en tareas más críticas — testing acceptance y pruebas de rendimiento a gran escala.

Volver al índice

Page 9: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

9

¿Cuáles son sus prioridades?Muestreme el dinero

Sabemos le ha ocurrido a usted porque nos ha ocurrido a todos; su equipo de ingenieros piensan que hay un problema y queman cantidades de dinero y tiempo en resolverlo PERO...resulta que el negocio estaba preocupado por un problema totalmente diferente.A veces todo lo que ve es rojo. Hay 250 problemas, pero ¿cómo analiza todos para saber cuál es el más importante?

Priorice los problemas Las soluciones de monitorización de rendimiento y experiencia de usuario pueden ayudarle incorporando masivas cantidades de datos de todos sus usuarios a través de toda su cadena de entrega. Proporcionan un inteligente análisis de impacto con la opción de profundizar en la parte técnica de la causa raíz de los problemas. También permiten prevenir que vea todas las alertas en rojo en primer lugar — identificando los patrones de problemas que pueden hacer caer su sistema de producción, desde las primeras etapas en su sistema de entrega.

Priorice la mejoras La soluciones de monitorización de rendimiento le pueden ayudar a priorizar las mejoras en la experiencia de usuario:

> ¿Están los usuarios siguiendo la ruta que usted espera al interno de su aplicación?

> ¿Están usando todas las funcionalidades?

Estas soluciones pueden proporcionar visibilidad del comportamiento del usuario, resaltando oportunidades para mejorar los flujos de datos e incluso cancelar partes del código lo que evitará

que desarrolle nuevas funcionalidades en partes que el usuario no utiliza.

Combine todos estos datos con detalles de negocio como son las transacciones, aplicaciones y grupos de usuarios críticos, y su equipo de ingenieros tendrá un foco en para conocer lo más importante — los problema que están suponiendo un costo en su negocio, ya sea en ventas, marca y satisfacción de usuario.

Volver al índice

Page 10: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

10

“Eleve el listón” de los puestos de desarrolloEntrega continua requiere calidad continua.

La entraga continua funciona (obeserve Amazon). Pero no puede hacerse a la mitad.Recuerde el capítulo 1, el coste del arreglo de fallos en producción puede ser 150 veces más alto que si el fallo se detecta con anterioridad en el ciclo de desarrollo.3

Para alcanzar la entrega continua, ‘eleve el listón’ y use la monitorización de rendimiento para soportar un proceso de calidad continuo durante todo el ciclo de vida del desarrollo – comenzando incluso antes de la verificación del código en los puestos de desarrollo.

Usted puede realizar entregas más rápidas sin fallos con una única versión de rendimiento veraz desde desarrollo hasta producción. Como resultado usted reducirá los trabajos no planificados y liberará a los técnicos para verificar las nuevas versiones futuras.

Prueba Unitaria

1x

80%

100%

10x

80%

40%

Prueba de Aceptación

25x

50%

20%

Pruebas de Rendimiento

50x

40%

10%

Entrega

150x

40%

5%

% de fallos en Software

Costo relativo de arreglo de fallosNúmeros revisados por A. Grabner

Prueba Unitaria

3. Barry Boehm, 2007 Equity Keynote Address

4. Amazon, 2012 Velocity Presentation

Amazon desplega a una velocidad sorprendente: > Cada 11,6 segundos con 23.000 despliegues al día.

> Tiene un 75% menos de interrupciones desde 2006, 90% menos de minutos de interrupción.

> Solo 0,001% de los despliegues causan problemas.4

El coste del arreglo de fallos se incrementa exponencialmente

Volver al índice

Page 11: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

11

Automatice, automatice, automaticeDemasiado datos tiempo insuficiente

En este punto usted dispone de muchos datos y es posible que esté preocupado sobre el tiempo y capacidades necesarias para analizarlos.Lo hermoso de la gestión de rendimiento de aplicaciones es que usted no necesita formar a todo el mundo.

Cuando haya determinado con sus equipos de negocio las prioridades, identificado sus métricas técnicas y especificado sus KPIs, usted podrá automatizar la monitorización de rendimiento. Usted está construyendo calidad continua en su objetico de despliegues continuos especificando métricas de calidad en cada fase del proceso. Esta aproximación le reasegurará, ayudando a su equipo a afrontar requerimientos de cambio y detectando errores de forma temprana. Es un gran beneficio.

Monitorización Test Análisis Resultados Pruebas de calidad en su herramienta

PruebaUnitaria

Prueba deAceptación

Prueba deRendimiento Entrega

¿Preocupado por qué cosas puede automatizar? > Devuelva una petición de cambio a sus desarrollladores después de un test de carga.

> Devuelva los problemas a los desarrolladores durante una prueba de integración

> Configure alertas cuando los KPIs o SLAs acordados no se cumplen

Volver al índice

Page 12: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

6 formas de incrementar la calidad y velocidad en la entrega de aplicaciones© 2015 Dynatrace

12

Sus deberes

Esperamos que usted y todos en su equipo de ingeniería puedan usar estas best practices en su camino hacía DevOps 2.0. Progresar: hacer de las war rooms algo excepcionla y subir el listón de calidad. Automatice tanto como pueda y céntrese en el más rápido y mejor.

Solucions DevOps que nos gustan

operaciones y soporte técnico. Las soluciones les permiten añadir más calidad a los productos y les ayuda a una mejor comunicación y colaboración.

> Change Controls — JIRA > Development — Eclipse > Source Control — GitHub > Build Automation — Ant and Maven > Configuration Management — Ansible, Chef and Puppet > Test Automation — LoadRunner and Selenium > Virtual Machines — Vagrant, Packer and VeeWee

Repetición Webminar

> 5 métricas claves para entregar softwate más rápido y mejor

> DevOps: Desde la adopción al rendimiento

The blogroll

> IT Revolution’s DevOps > The Art of DevOps series > Software Quality Metrics for Continuous Delivery Part 1-3 > Dynatrace APM on DevOps > DevOps reactions — Enjoy some DevOps humor!

Lecturas recomendadas

> The Phoenix Project by co-author Gene Kim > The Speed of Trust by Steven Covey > Release It by Mike Nygard > Continuous Delivery by Jez Humble and David Farley > The Other Side of Innovation by Vijay Govindarajan

Volver al índice

Page 13: Adiós a la war room, hola DevOps 2 - Dynatrace · (como podría ser Docker) no estan dimensionados correctamente o se pelean por recursos con otras máquinas virtuales en el mismo

Descubra más de dynatrace.com

Dynatrace es la empresa innovadora que hay detrás de la más importante plataforma de gestión del rendimiento digital de la industria, que permite a cualquier persona del ámbito del negocio y de TI obtener información en tiempo real del rendimiento y visualizar cómo están funcionando las aplicaciones de una organización y actuar en consecuencia. Ayudamos a clientes de todos los tamaños a visualizar sus aplicaciones y sus canales digitales desde el punto de vista de sus clientes finales. Más de 7.500 organizaciones usan este conocimiento para dominar la complejidad, ganar en agilidad operacional e incrementar los ingresos, proporcionando a sus clientes una experiencia única.

8.8.15 384_SS_5WaysDevOps_SPA_jw