DevOps trata sobre el mecanismo de entrega de sistemas de software. Se trata de unir a las personas, hacer que colaboren y se comuniquen, trabajar juntos hacia un objetivo y una visión comunes. Se trata de tomar responsabilidad conjunta, rendición de cuentas y propiedad. Se trata de implementar procesos que fomenten la colaboración y una mentalidad de servicio. Permite mecanismos de entrega que aportan agilidad y flexibilidad dentro de la organización. Contrariamente a la creencia popular, DevOps no se trata de herramientas, tecnología o automatización. Son habilitadores que ayudan en la colaboración, la implementación de procesos ágiles y la entrega más rápida y mejor al consumidor.
Hay varias definiciones disponibles en Internet para DevOps y no son correctas ni incorrectas. DevOps no proporciona un marco o metodología. Es un conjunto de principios y prácticas que, cuando se emplean dentro de una organización, interacción o proyecto, logran el objetivo y la visión tanto de DevOps como de la organización. Estos principios y prácticas no exigen ningún proceso, herramientas, tecnologías ni entorno específicos. DevOps proporciona la orientación que puede implementarse a través de cualquier herramienta, tecnología y proceso, aunque parte de la tecnología y los procesos podrían ser más aplicables para lograr la visión de los principios y prácticas de DevOps.
Aunque las prácticas de DevOps se pueden implementar en cualquier organización que ofrezca servicios y productos a los consumidores, en este libro veremos a DevOps desde la perspectiva del desarrollo de software y el departamento de operaciones de cualquier organización.
Entonces, ¿qué es DevOps?
Es un conjunto de principios y prácticas que reúne tanto a los Desarrolladores como a los equipos de operaciones desde el inicio del sistema de software para una entrega de principio a fin más rápida, veloz y eficiente del sistema de software al consumidor final, una y otra vez de manera coherente y predecible reduciendo el tiempo de comercialización, obteniendo así una ventaja competitiva.
Lea en voz alta la definición anterior de DevOps y, si la observa detenidamente, verá que no indica ni se refiere a ningún proceso, herramienta o tecnología específicos. No está prescribiendo ninguna metodología o entorno particular.
El objetivo de implementar los principios y prácticas de DevOps en cualquier organización es garantizar que las demandas de las partes interesadas (incluidos los consumidores) y las expectativas se cumplan de manera eficaz y efectiva.
Las demandas y expectativas del consumidor se cumplen cuando:
- El consumidor obtiene las características que desea
- El consumidor las obtiene cuando lo desea
- El consumidor obtiene actualizaciones más rápidas de las características
- La calidad de entrega es alta
Cuando una organización puede cumplir con las expectativas anteriores, los consumidores están satisfechos y se mantienen leales a la organización. Esto, a su vez, aumenta la competitividad en el mercado de la organización, lo que se traduce en una mayor marca y valoración del mercado. Tiene un impacto directo en los resultados y las ventas de la organización. La organización puede invertir más en innovación y comentarios de los consumidores, provocando cambios continuos en su sistema y servicios para mantener su relevancia.
La implementación de los principios y prácticas de DevOps en cualquier organización está guiada por el ecosistema circundante. Este ecosistema está compuesto por la industria y los dominios a los que pertenece la organización.
Los principios básicos de DevOps son los siguientes:
- Agilidad
- Automatización
- Colaboración
- Comentarios
Las prácticas principales de DevOps son las siguientes:
- Integración continua
- Administración de configuración
- Implementación continua
- Entrega continua
- Aprendizaje continuo
DevOps NO es un paradigma nuevo, pero recientemente está ganando mucha popularidad y relevancia. Su adopción se encuentra en su nivel más alto y cada vez más empresas están emprendiendo este proceso. Mencioné a propósito DevOps como un proceso porque hay diferentes niveles de madurez dentro de DevOps. Si bien el éxito de la implementación y la entrega continuas se considera el nivel más alto de madurez en este proceso, al adoptar el control del código fuente, el desarrollo ágil de software se considera un comienzo.
Una de las primeras cosas de las que habla DevOps es romper las barreras entre los desarrolladores y el equipo de operaciones. Aporta el aspecto de colaboración estrecha entre varios equipos. Se trata de cambiar la mentalidad de la que el desarrollador es responsable de escribir solo el código y pasarlo a operaciones para la implementación una vez que se haya probado. También se trata de cambiar la mentalidad de que las operaciones no tienen ningún papel que desempeñar en las actividades de desarrollo. Las operaciones deben influir en la planificación del producto y deben ser conscientes de las características que se publicarán como lanzamiento. También deben proporcionar continuamente comentarios a los desarrolladores sobre los problemas operativos, de modo que puedan solucionarse en versiones posteriores. Deben influir en el diseño del sistema para un mejor funcionamiento operativo del sistema. De manera similar, los desarrolladores deben ayudar a las operaciones en la implementación del sistema y resolver incidentes cuando surjan.
La definición hace referencia a la entrega más rápida, veloz y eficiente de los sistemas a los interesados. No habla de lo rápida o eficiente que debería ser la entrega. Debería ser lo suficientemente rápida o veloz según el dominio de la organización, la industria, la segmentación de clientes, etc. Para algunas organizaciones, lo suficientemente rápido podría ser trimestral, mientras que para otras podría ser semanal. Ambos tipos son válidos para el punto de vista de DevOps y se pueden implementar procesos y tecnologías relevantes para lograr lo mismo. DevOps no lo ordena. Las organizaciones deben identificar la mejor implementación de los principios y las prácticas de DevOps en función de su visión general del proyecto, la interacción y la organización.
La definición también habla de la entrega de un extremo a otro. Esto significa que desde la planificación y la entrega del sistema a los servicios y operaciones debe ser parte de la implementación de DevOps. Los procesos deben ser los que permitan una mayor flexibilidad, modularidad y agilidad en el ciclo de vida del desarrollo de la aplicación. Mientras que las organizaciones son libres de usar el mejor proceso de ajuste: cascada, Agile, Kanban, etc., por lo general, las organizaciones tienden a favorecer los procesos ágiles con la entrega basada en iteraciones. Esto permite una entrega más rápida en unidades más pequeñas que son mucho más comprobables y manejables en comparación con las grandes entregas.
DevOps habla sobre clientes finales una y otra vez de una manera coherente y predecible
Esto significa que las organizaciones deben realizar entregas continuamente a los consumidores con funciones más nuevas y actualizadas utilizando la automatización. No podemos lograr consistencia y previsibilidad sin el uso de la automatización. El trabajo manual debe reducirse a ninguno para garantizar un alto nivel de consistencia y previsibilidad. La automatización también debe ser de extremo a extremo, para evitar fallos. Esto también indica que el diseño del sistema debe ser modular, lo que permite una entrega más rápida, ya que son fiables, disponibles y escalables. Las pruebas desempeñan un gran papel en la entrega coherente y predecible.
El resultado final de la implementación de las prácticas y los principios mencionados anteriormente es que la organización puede satisfacer las expectativas y demandas de los clientes. La organización puede crecer más rápido que la competencia y aumentar aún más la calidad y la capacidad de sus productos y servicios a través de la innovación y mejora continuas.
Fuente | Libro Azure for Architects
No hay comentarios.:
Publicar un comentario