DevOps se ha convertido en una palabra de moda, lo que significa muchas cosas diferentes para mucha gente.
Es un desafío comprender y definir qué es exactamente DevOps. Y es por eso que si conoce los conceptos fundamentales de DevOps con los que la mayoría de las personas se asocian y la historia de cómo evolucionó, obtenga una visión holística de ello.
The Origin of DevOps
DevOps es un ejemplo perfecto de desarrollo de software ágil. La idea de DevOps surgió de la necesidad de mantenerse al día con la mayor velocidad del software y lograrlo a través de métodos ágiles. Durante la última década, los grandes avances en la cultura y las prácticas ágiles expusieron la necesidad de un enfoque más holístico para el ciclo de vida de entrega de software de extremo a extremo.

Quizás se esté preguntando qué es el desarrollo de software ágil:
Desarrollo ágil es un término amplio para definir varias metodologías de desarrollo de software iterativas e incrementales. Las metodologías ágiles populares son Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development y Extreme Programming (XP).
Los valores fundamentales y la visión de todas estas metodologías ágiles son los mismos, pero cada una de ellas tiene un enfoque único. Todas estas metodologías incorporan iteraciones y retroalimentación continua para refinar y entregar software escalable con éxito. Todas estas metodologías involucran planificación continua, pruebas continuas, integración continua y otras infinitas formas tanto para el proyecto como para el software.
A diferencia de los procesos convencionales de estilo cascada, estas metodologías ágiles son livianas y vienen con una naturaleza inherentemente adaptable. Una de las mejores cosas de estas metodologías ágiles es que todas se enfocan en empoderar a las personas cuando se trata de colaborar y tomar decisiones rápidas en conjunto.

Los ideales de DevOps ejecutan la práctica extendida de desarrollo ágil para refinar el movimiento del cambio de software a través de la construcción, validación, implementación y diferentes etapas de entrega. Permite que el equipo multifuncional tenga la propiedad total del producto de software, desde el diseño hasta la producción.
Challenges solved by DevOps
Proceso de implementación – Las aplicaciones distribuidas a menudo requieren la implementación de archivos binarios y de configuración en varios servidores. Se vuelve más desafiante cuando se tiene una granja de servidores. Se vuelve un desafío averiguar qué, cómo y dónde implementar. El resultado obvio es?
La larga espera para llevar los artefactos al siguiente entorno de la ruta de vida hace que se retrasen todo, como las pruebas, el tiempo de vida, etc.
DevOps permite que el software o desarrolladores de sitios de Internet y operaciones de TI para implementar procesos en una sesión de colaboración totalmente libre de culpa. Nos permitirá verificar qué funciona y luego llevarlo al siguiente nivel con automatización para implementar un desarrollo continuo. También crea vías para un desarrollo más frecuente.
DevOps Objectives
Mejora la colaboración entre las partes interesadas desde la planificación hasta la entrega e implementa la automatización del proceso de entrega para:
- Mejorar la frecuencia del despliegue
- Logre un tiempo de comercialización más rápido del producto final
- Disminuye la tasa de fallas de los nuevos lanzamientos.
- Acorta el tiempo de espera entre arreglos
- Mejora mientras tanto para el propósito de recuperación.
Common DevOps scenario
Todo el software llega al punto de encuentro antes de iniciar un nuevo proyecto de software. El equipo está formado por desarrolladores, evaluadores, operaciones y profesionales de soporte. El equipo hace el plan para crear un software completamente funcional que esté listo para su implementación.
Cada día se implementa un nuevo código una vez que los desarrolladores lo completan. El procedimiento de prueba automatizado garantiza que el código esté listo para implementarse. Una vez que el código recibe la señal verde del proceso de prueba de automatización, se implementa en una pequeña cantidad de usuarios. El código es monitoreado por un período corto para asegurar que no haya problemas imprevistos y que sea estable. Luego, el nuevo código se implementa para el resto de los usuarios una vez que el monitoreo final ha demostrado que el código es estable. Una parte significativa de los pasos posteriores a la planificación y el desarrollo se realiza sin intervención humana.

Different phases of DevOps maturity
Hay muchos diferentes fases de DevOps madurez. Aquí están las frases clave que usted debe saber.

Desarrollo de cascada
Antes de la época de la integración continua, los equipos de desarrollo solían escribir una gran cantidad de código y luego los de diferentes equipos se fusionaban para el lanzamiento. Las versiones del código eran tan diferentes que solían requerir una gran cantidad de cambios.
Hacer estos números de cambios utilizados lleva más de unos pocos meses. Este proceso no fue productivo.
Integración continua
Es una práctica de integrar rápidamente un código recién desarrollado con el código principal que se lanzará. Cuando se trata de publicar el código, el desarrollo continuo ayuda a ahorrar mucho tiempo.
DevOps no introdujo este término. La integración continua es una práctica de ingeniería ágil proveniente de la metodología de Programación Extrema. DevOps ha adoptado esta práctica porque se requiere automatización cuando se trata de ejecutar con éxito la integración continua. La integración continua suele ser lo primero en el camino hacia la madurez de DevOps.
La integración continua desde la perspectiva de DevOps incluye pasos como verificar el código, compilarlo en un código utilizable y ejecutar algunas de las pruebas de validación necesarias. '
Entrega Continua
Es una extensión de la integración continua y la segunda etapa de DevOps.
La entrega continua le permite agregar automatización y pruebas adicionales para que no solo fusione rápidamente el código con la línea de código principal, sino que también tenga el código casi listo para implementarse sin intervención humana.
Es una práctica mantener su base de código en un estado casi listo para implementarse.
Despliegue continuo
El despliegue continuo es la evolución avanzada de la entrega continua. Esta práctica nos permite implementar todas las formas en producción sin ninguna intervención humana.
El equipo que trabaja en desarrollo continuo nunca implementa ningún código sin probar. Todo el código recién creado pasa por pruebas automatizadas antes de pasar a la etapa de producción. El código se implementa en una pequeña cantidad de usuarios y hay un ciclo de retroalimentación automatizado que supervisa la calidad y el uso antes de que el código pase al siguiente nivel.
Un pequeño número de empresas como Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google, etc., realizan un desarrollo continuo.
The Value
DevOps se enfoca mucho en desarrollar una cultura colaborativa y mejorar la eficiencia a través de la automatización con diferentes herramientas DevOps. Para implementar DevOps para su solución de software, necesita usar una combinación de cultura y herramientas.
Cultura DevOps
DevOps es una cultura particular que ayuda a mejorar la colaboración, disminuir el caos, manejar mejor las responsabilidades compartidas, implementar la automatización, mejorar la calidad, valorar los comentarios y aumentar la automatización.
Los métodos ágiles siempre han sido la mejor forma holística de entregar software. Cuando se trata de medir el progreso, el equipo de desarrollo ágil lo hace en términos de software funcional. El método ágil de la cultura DevOps permite que los propietarios de productos, desarrolladores, evaluadores y personas de UX trabajen en estrecha colaboración con el mismo objetivo en mente.
Herramientas DevOps
Incluye las herramientas para la gestión de la configuración, las pruebas y la creación de sistemas, el desarrollo de aplicaciones, el control de versiones y la supervisión. Cuando se trata de implementar la integración continua, la entrega continua y la implementación continua, requieren herramientas diferentes y, al mismo tiempo, también usan las mismas herramientas. Necesitará usar más herramientas a medida que avanza en la cadena de entrega.
Conozcamos algunas de las herramientas y prácticas populares.
Repositorio de código fuente – este es un lugar donde los desarrolladores pueden registrarse y cambiar el código. El repositorio de código fuente administra varias versiones del código que se registra para asegurarse de que los desarrolladores escriban sobre el código de los demás.

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse, etc., son algunas de las herramientas de repositorio de código populares.
Construir servidor: – el servidor de compilación es la herramienta de automatización que se utiliza para compilar el código en el código fuente que respira en la base del código ejecutable. Algunas de las herramientas de servidor de compilación más utilizadas son Jenkins, SonarQube y Artifactory.
gestión de la configuración - Marioneta, Chef, Ansible, SaltStack, Run Deck, etc., ayudan a administrar la configuración de la aplicación y la infraestructura para mantener la coherencia en todos los entornos.
Infraestructura virtual – AWS, GCP y Azure son los tres principales proveedores de nube pública que ofrecen casi todos los servicios de infraestructura. Ofrecen API, que le permite aprovisionar la infraestructura y administrarla como un código.
Conclusión
Espero que te dé una idea sobre DevOps, y si esto te emociona, entonces puedes probar esta clase magistral en línea. curso.
Artículo de Payal Goyal