Programacion

¿Qué es DevOps? y todo lo que debes saber acerca este termino

Compártelo

¿Qué es DevOps?

DevOps es un conjunto de prácticas que automatiza los procesos entre el desarrollo de software y los equipos de TI, para que puedan crear, probar y lanzar software de manera más rápida y confiable. El concepto de DevOps se basa en la construcción de una cultura de colaboración entre equipos que históricamente funcionaron en silos relativos. Los beneficios prometidos incluyen mayor confianza, lanzamientos de software más rápidos, capacidad para resolver problemas críticos rápidamente y administrar mejor el trabajo no planificado.

En esencia, DevOps es una cultura, un movimiento, una filosofía.

Es un firme apretón de manos entre el desarrollo y las operaciones que enfatiza un cambio en la mentalidad, una mejor colaboración y una integración más estrecha. Une la entrega ágil y continua, la automatización y mucho más para ayudar a los equipos de desarrollo y operaciones a ser más eficientes, innovar más rápido y ofrecer mayor valor a las empresas y los clientes.

Historia de DevOps

El movimiento DevOps comenzó a fusionarse en algún momento entre 2007 y 2008, cuando las operaciones de TI y las comunidades de desarrollo de software se hicieron oír sobre lo que sentían era un nivel fatal de disfunción en la industria.

Rechazaron el modelo de desarrollo de software tradicional, que exigía que quienes escriben el código se mantuvieran organizativos y funcionalmente separados de quienes implementan y respaldan ese código.

Los desarrolladores y los profesionales de TI / Operaciones tenían objetivos separados (ya menudo competitivos), un liderazgo separado del departamento, indicadores de desempeño clave separados por los cuales se los juzgaba, y con frecuencia trabajaban en pisos separados o incluso en edificios separados. El resultado fue un grupo de equipos preocupados solo por sus propios feudos, largas horas, lanzamientos fallidos y clientes infelices.

Seguramente hay una mejor manera, dijeron. Entonces las dos comunidades se juntaron y comenzaron a hablar, con personas como Patrick Dubois, Gene Kim y John Willis dirigiendo la conversación.

Lo que comenzó en los foros en línea y en las reuniones locales es ahora un tema importante en el espíritu del software, ¡que es probablemente lo que lo trajo aquí! Usted y su equipo están sintiendo el dolor causado por los equipos aislados y las líneas de comunicación discontinuas dentro de su empresa.

Está utilizando metodologías ágiles para la planificación y el desarrollo, pero sigue luchando por sacar el código sin muchas dificultades. Has escuchado algunas cosas sobre DevOps y el efecto aparentemente mágico que puede tener en los equipos y piensas “Quiero algo de esa magia”.

La mala noticia es que DevOps no es mágico, y las transformaciones no ocurren de la noche a la mañana. La buena noticia es que no tiene que esperar a que la alta gerencia despliegue una iniciativa a gran escala. Al comprender el valor de DevOps y hacer pequeños cambios incrementales, su equipo puede embarcarse en el viaje de DevOps de inmediato. Veamos cada uno de estos beneficios en detalle.

Colaboración y confianza

La cultura es el factor de éxito # 1 en DevOps. Construir una cultura de responsabilidad compartida, transparencia y retroalimentación más rápida es la base de todo equipo DevOps de alto rendimiento.

Los equipos que trabajan en silos a menudo no se adhieren al ‘pensamiento sistémico’ de DevOps. El “pensamiento de sistemas” es consciente de cómo sus acciones no solo afectan a su equipo, sino a todos los demás equipos involucrados en el proceso de lanzamiento. La falta de visibilidad y las metas compartidas significan falta de planificación de la dependencia, prioridades desalineadas, señalamiento con los dedos y mentalidad de “no nuestro problema”, lo que resulta en una velocidad más lenta y una calidad inferior a la norma. DevOps es ese cambio en la mentalidad de mirar el proceso de desarrollo holísticamente y romper la barrera entre Dev y Ops.

Suelte más rápido y trabaje más inteligentemente

La velocidad es todo. Los equipos que practican DevOps lanzan con mayor frecuencia, con mayor calidad y estabilidad.

La falta de ciclos automáticos de prueba y revisión bloquea el lanzamiento a producción y el mal tiempo de respuesta a incidentes mata la velocidad y la confianza del equipo. Las herramientas y los procesos dispersos aumentan OPEX, conducen al cambio de contexto y reducen el impulso. A través de la automatización y herramientas y procesos estandarizados, los equipos pueden aumentar la productividad y lanzarlos con mayor frecuencia con menos contratiempos.

Acelerar el tiempo hasta la resolución

El equipo con el ciclo de retroalimentación más rápido es el equipo que prospera. La transparencia total y la comunicación fluida permiten a los equipos de DevOps minimizar el tiempo de inactividad y resolver problemas más rápido que nunca.

Si los problemas críticos no se resuelven rápidamente, los tanques de satisfacción del cliente. Las cuestiones clave se resuelven a través de las grietas en ausencia de una comunicación abierta, lo que resulta en una mayor tensión y frustración entre los equipos. La comunicación abierta ayuda a los equipos de desarrollo y operaciones a enjambrazarse con los problemas, solucionar los incidentes y desbloquear el lanzamiento de la entrega más rápido.

Administrar mejor el trabajo no planificado

El trabajo no planificado es una realidad a la que se enfrentan todos los equipos, una realidad que con frecuencia afecta la productividad del equipo. Con procesos establecidos y una clara priorización, los equipos de desarrollo y operaciones pueden administrar mejor el trabajo no planificado mientras continúan enfocándose en el trabajo planificado.

La transición y la priorización del trabajo no planificado a través de diferentes equipos y sistemas es ineficiente y distrae del trabajo en cuestión. Sin embargo, a través de una mayor visibilidad y una retrospección proactiva, los equipos pueden anticipar mejor y compartir el trabajo no planificado.

Cultura

Si pudiéramos resumir la cultura de DevOps en una palabra, sería “colaboración”, y si nos permitieran dos palabras, sería una “colaboración multifuncional”. (De acuerdo, se parecen más a tres palabras).

Todas las herramientas y la automatización en el mundo son inútiles si no están acompañadas por un deseo genuino por parte de los profesionales de desarrollo y TI / Ops de trabajar juntos. Porque DevOps no resuelve problemas de herramientas. Resuelve problemas humanos. Por lo tanto, es poco probable que saque la cabeza del cubículo un día, mire a su alrededor y descubra que los equipos de su empresa encarnan la cultura DevOps. Pero hay cosas simples que puedes hacer para nutrirlo.

Piensa en DevOps de manera muy similar a la ágil, pero con las operaciones incluidas. Formar equipos orientados a proyectos o productos para reemplazar equipos basados ​​en funciones es un paso en la dirección correcta. Incluya desarrollo, control de calidad, gestión de productos, diseño, operaciones, gestión de proyectos y cualquier otro conjunto de habilidades que requiera el proyecto. En Atlassian, incluso incorporamos marketing a nuestros equipos de productos.

Pocas cosas fomentan la colaboración, como compartir un objetivo común y tener un plan para alcanzarlo juntos. En algunas empresas, cambiar repentinamente a equipos basados ​​en proyectos es demasiado, demasiado pronto. Así que tome pasos más pequeños. Los equipos de desarrollo pueden, y deben, invitar a los miembros adecuados del equipo de operaciones a unirse a las sesiones de planificación de sprints, stand-ups diarios y demostraciones de sprints.

Los equipos de operaciones pueden invitar a desarrolladores clave. Es una forma ágil y orgánica de estar al tanto de los proyectos, las ideas y las luchas de los demás. El tiempo dedicado a escuchar y polinizar de forma cruzada el conocimiento de las áreas temáticas se amortiza haciendo que la administración de versiones y la solución de problemas de emergencia sean mucho más eficientes.

Y hablando de emergencias, son una prueba efectiva de la cultura DevOps. ¿Los desarrolladores, las operaciones y el soporte al cliente se enfrentan al problema y lo resuelven como un equipo? ¿Todos comienzan con la suposición de que sus compañeros de equipo tomaron las mejores decisiones posibles con la información y los recursos que tenían en ese momento? ¿Es el incidente post-mortem sobre la fijación de procesos en lugar de apuntar con los dedos? Si la respuesta es “sí”, es una buena indicación de que su equipo funciona con la cultura DevOps en su núcleo.

Automatización

Invertir en automatización elimina el trabajo manual repetitivo, produce procesos repetibles y crea sistemas confiables.

La generación, prueba, implementación y automatización de aprovisionamiento son puntos de partida típicos para los equipos que aún no los tienen implementados. Y oigan: ¿qué mejor razón para que desarrolladores, probadores y operadores trabajen juntos que construir sistemas para beneficiar a todos?

Los equipos nuevos en la automatización generalmente comienzan con la entrega continua: la práctica de ejecutar cada cambio de código a través de un guante de pruebas automatizadas, a menudo facilitadas por la infraestructura en la nube, luego empaquetar las compilaciones exitosas y promocionarlas hacia la producción mediante implementaciones automatizadas. Como puede imaginarse, la entrega continua no es algo fácil de configurar, pero el rendimiento de la inversión vale la pena.

¿Por qué? Las computadoras ejecutan pruebas de forma más rigurosa y fiel que los humanos. Estas pruebas detectan errores y fallas de seguridad antes, lo que permite a los desarrolladores solucionarlos más fácilmente. Y el sistema automatizado implementa alertas de TI / Ops a la “deriva” del servidor entre entornos, lo que reduce o elimina sorpresas cuando llega el momento de lanzar.

Otra de las principales contribuciones de DevOps es la idea de “configuración como código”. Los desarrolladores se esfuerzan por crear aplicaciones modulares y compostables porque son más confiables y mantenibles. Ese mismo pensamiento se puede extender a la infraestructura que los aloja, ya sea que viva en la nube o en la propia red de la compañía.

Es cierto, los sistemas siempre están cambiando. Pero podemos crear una fachada de inmutabilidad mediante el uso de código para el aprovisionamiento de modo que el reaprovisionamiento de un servidor comprometido sea más rápido que la reparación, por no mencionar que es más confiable. Reduce el riesgo, también. Tanto el desarrollo como las operaciones pueden incorporar nuevos lenguajes o tecnologías a través del código de aprovisionamiento y compartir las actualizaciones entre ellos. Los problemas de compatibilidad se hacen evidentes de inmediato, en lugar de manifestarse en el medio de una publicación.

Compártelo

Deja un comentario

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