2018 Reporte del estado de DevOps [REPORTE DEL ESTADO DE DEVOPS] En este documento se enlistan las 5 etapas de implementación de DevOps así como sus principales prácticas por etapa en base a las estadísticas obtenidas. RESUMEN En los últimos siete años, hemos encuestado a más de 30,000 profesionales técnicos en todo el mundo para explorar las relaciones entre el desempeño de TI, las prácticas de DevOps, la cultura, el desempeño organizacional y otros elementos que afectan los resultados de negocios. En el proceso, hemos creado el cuerpo de investigación de DevOps más profundo y con mayor referencia disponible. El Informe del Estado de DevOps de 2018 abre nuevos caminos en nuestra comprensión de su viaje evolutivo. Hemos identificado las cinco etapas distintas de la evolución de DevOps y las prácticas críticas en cada etapa que lo ayudan a lograr el éxito y el progreso a la siguiente fase de su viaje. LAS CINCO ETAPAS DE IMPLEMENTACIÓN DE DEVOPS Etapa 1: normalizar la pila de tecnología La mayoría de las organizaciones que utilizan cualquier cantidad de tecnología están lidiando con mucha complejidad, lo que ralentiza sus esfuerzos para hacer avanzar el negocio. Por lo tanto, no es sorprendente que los primeros esfuerzos en una transformación DevOps (o cualquier tipo de transformación empresarial) se centren en reducir la complejidad. Las dos prácticas que definen la Etapa 1 trabajan para reducir la complejidad: • Los equipos de desarrollo de aplicaciones utilizan el control de versiones. • Los equipos se despliegan en un conjunto estándar de sistemas operativos. Por qué la evolución de DevOps comienza con la simplificación Iniciar una evolución de DevOps reduciendo la complejidad puede sorprender a las personas que piensan en la automatización como el primer paso en DevOps, especialmente porque la automatización es un pilar fundamental del movimiento. De hecho, las prácticas de automatización típicamente asociadas con DevOps no aparecen significativamente hasta la Etapa 4. Esto se debe a que se debe llevar a cabo mucha preparación antes de que la automatización pueda diseñarse e implementarse adecuadamente. En términos anecdóticos, hemos visto que las organizaciones comienzan con la Etapa 4 Automatización, sin haber pasado por normalización, estandarización y expansión (Etapas 1-3). Estas organizaciones no logran el éxito, y creemos que es porque carecen de una base de colaboración y de intercambio a través de los límites del equipo. El hecho de compartir es fundamental para definir los problemas que enfrenta una organización y encontrar soluciones que funcionen para todos los equipos. Nuestra investigación muestra que la evolución de DevOps comienza mucho antes de la Etapa 4, por lo que saltarse las primeras etapas significa perder el aprendizaje que tiene lugar durante estos períodos. Las etapas iniciales también son cuando los equipos que se establecen y tienen éxito en las prácticas de DevOps se ganan la confianza del negocio, lo que puede significar más recursos y permisos para progresar más rápido. Etapa 2: estandarizar y reducir la variabilidad En la Etapa 1, vemos organizaciones que normalizan sus tecnologías y procesos. Cuando llegan a la Etapa 2, las organizaciones ya han comenzado el proceso de estandarización de un conjunto de tecnologías; separó las configuraciones de las aplicaciones de los datos y las colocó en el control de versiones; y adoptó un proceso consistente para las pruebas de infraestructura y un patrón para compartir el código fuente. En la Etapa 2, las organizaciones están trabajando para estandarizar y reducir aún más la variabilidad, un tema que prevalece en cada etapa de la evolución de DevOps. Cada organización tiene una variación, que puede deberse a una serie de causas diferentes, que incluyen: • Adopción de nuevas tecnologías para reemplazar muchas funciones de las antiguas. tecnologías; sin embargo, las tecnologías más antiguas nunca se eliminan. • Productos de cosecha propia que no siguen ninguna industria común. Estándares y falta de interfaces comunes. • Una proliferación de herramientas que se superponen y no se han racionalizado. • Fusiones y adquisiciones. Etapa 3: expandir las prácticas de DevOps Las etapas 1 y 2 reducen la complejidad general de la pila tecnológica para que los equipos puedan lograr resultados más repetibles con una variación limitada. La etapa 3 trata sobre la expansión de las prácticas de DevOps al grupo más amplio de equipos de TI y prestación de servicios. En la Etapa 3, las prácticas de DevOps se extienden más allá de los equipos de Dev y Ops, donde primero se arraigan. A medida que aumenta la colaboración y la organización se centra en las mejoras en la administración del servicio, la implementación, la reducción de los tiempos de espera y la minimización de las aprobaciones, estos esfuerzos afectan a áreas más allá de los departamentos de tecnología. Compartir herramientas, aplicaciones y servicios mejorados. - así como el conocimiento - con otras áreas funcionales de la empresa ahora se vuelve clave para expandir el éxito anterior de DevOps y escalar DevOps en toda la organización. Etapa 4: automatice la entrega de infraestructura La etapa 4 es donde los equipos de infraestructura ocupan un lugar central. Las prácticas definitorias en esta etapa tienen que ver con la automatización de la entrega de infraestructura, lo que muchos consideran como el comienzo de una iniciativa DevOps. Estas prácticas de automatización de la infraestructura aparecen más adelante en el viaje evolutivo de lo que podríamos haber esperado porque están habilitadas por cosas que caracterizan las etapas anteriores: normalización, reducción de variables y expansión de la evolución de DevOps más allá de los equipos de tecnología en el negocio. El éxito en el establecimiento de estos factores en etapas anteriores hace que sea mucho más fácil lograr el éxito en la Etapa 4. Por supuesto, esto no quiere decir que la automatización de la infraestructura no esté ocurriendo en las etapas anteriores, es, de manera limitada. Como comentamos en el capítulo Etapa 0: cimentar las bases, la práctica de administrar configuraciones de infraestructura con una herramienta de administración de configuración se arraiga rápidamente cuando los equipos de operaciones se están estandarizando para resolver sus propias necesidades. Etapa 5: proporcionar capacidades de autoservicio Para pasar a la Etapa 5, una organización debe tener varios departamentos comprometidos a proporcionar capacidades de TI como un servicio para la empresa, en lugar de tratar a la TI como un centro de costos que ejecuta las órdenes de trabajo. Estos departamentos incluyen desarrollo, operaciones, seguridad, ITSM y otras áreas funcionales. En esta última etapa de la evolución de DevOps, vemos que los beneficios para la organización se multiplican enormemente a medida que se acelera la colaboración exitosa a través de los límites funcionales. Estas ganancias se ven en varias áreas distintas: • La arquitectura de la aplicación va más allá de la estandarización de las tecnologías y comienza a evolucionar hacia el trabajo con y el soporte de la migración a la nube, la adopción de contenedores y la proliferación de micro servicios. • La automatización de la política de seguridad pasa de atender las necesidades de un equipo a convertirse en la base de referencia de cómo se miden la seguridad y el cumplimiento en un departamento, o incluso en toda la organización. Además, el aprovisionamiento automatizado avanza al aprovisionamiento de entornos completos para desarrolladores, evaluadores y otro personal técnico. Una vez que comienza a tener éxito a través de múltiples límites funcionales, los pilares de DevOps (Cultura, Automatización, Medición y Uso compartido) se vuelven más generalizados en toda la organización. Las dos prácticas definitorias para la Etapa 5 son: • Las respuestas a incidentes son automatizadas. • Los recursos están disponibles a través de autoservicio. Las dos prácticas asociadas en esta etapa son: • Aplicaciones de Rearchitect basadas en las necesidades del negocio. • Los equipos de seguridad están involucrados en el diseño de tecnología y despliegue. Prácticas DevOps en las 5 etapas de implementación Etapa Definiendo prácticas y prácticas Prácticas que contribuyen al éxito asociadas 0 El monitoreo y las alertas son configurables por el equipo que opera el servicio. Los patrones de implementación para la creación de aplicaciones o servicios se reutilizan. Se reutilizan los patrones de prueba para construir aplicaciones o servicios. Los equipos contribuyen con mejoras a las proporcionadas herramientas por otros equipos. Las configuraciones administradas por son una herramienta de administración de configuración. 1 Los equipos de desarrollo de aplicaciones utilizan el control de versiones. Construir sobre un conjunto estándar de tecnología. Poner las configuraciones de la Los equipos se despliegan en un aplicación en el control de conjunto estándar de sistemas versiones. operativos. Pruebe los cambios infraestructura en la antes de implementar en producción. El código fuente está disponible para otros equipos. 2 Construir sobre un conjunto Los patrones de implementación estándar de tecnología. para la creación de aplicaciones Los equipos se despliegan en un y servicios se reutilizan. único sistema operativo estándar. Aplicaciones de Rearchitect basadas en las necesidades del negocio. Poner las configuraciones del sistema en el control de versiones. 3 • Los individuos pueden trabajar sin la Los individuos pueden hacer aprobación manual de fuera del equipo. cambios sin tiempos de espera • Los patrones de implementación para la significativos. creación de aplicaciones y servicios se Los cambios de servicio se reutilizan. pueden hacer durante el horario • Los cambios en la infraestructura se comercial. prueban antes de implementarse en producción. Se producen revisiones posteriores al incidente y se comparten los resultados. Los equipos se basan en un conjunto estándar de tecnologías. Los equipos utilizan la integración continua. Los equipos de infraestructura utilizan el control de versiones. 4 Las configuraciones del sistema son automatizadas. El de aprovisionamiento Las configuraciones de seguridad son automatizadas. es automatizado. Las configuraciones de la política Recursos disponibles a través de autoservicio. la aplicación están en control de versiones. Los equipos de infraestructura utilizan el control de versiones. 5 Las respuestas a incidentes son • Las configuraciones de la política de seguridad son automatizadas. automatizadas. Recursos disponibles a través del • Los desarrolladores de aplicaciones despliegan entornos de prueba por su autoservicio. Aplicaciones de Rearchitect cuenta. basadas en las necesidades del • Métricas de éxito para proyectos son negocio. visibles. Los equipos de seguridad están • El aprovisionamiento es automatizado. involucrados en el diseño y despliegue de tecnología.