devops automation how is automation applied devops practice
Automatización en DevOps:
En el último tutorial aprendimos la importancia de Control de fuente en DevOps . Aquí, en este tutorial, aprenderemos sobre la automatización en DevOps.
La automatización es la necesidad fundamental para la práctica de DevOps y 'Automatizar todo' es el principio clave de DevOps. En DevOps, la automatización comienza desde la generación del código en la máquina de los desarrolladores hasta que el código se envía al código e incluso después de eso para monitorear la aplicación y el sistema en producción.
Lectura sugerida => Serie de tutoriales informativos de DevOps
Todo el proceso de DevOps que contiene integración continua, prueba continua e implementación continua, incluida la supervisión del rendimiento de la aplicación en vivo, está automatizado.
Automatizar la instalación y las configuraciones de la infraestructura y la implementación de software es el punto culminante clave de la práctica de DevOps. La práctica de DevOps depende en gran medida de la automatización para realizar entregas en un período de pocas horas y realizar entregas frecuentes en todas las plataformas.
Por lo tanto, la automatización en DevOps fomenta la velocidad, mayor precisión, consistencia, confiabilidad y aumenta el número de entregas. En última instancia, la automatización en DevOps encapsula todo, desde la construcción, implementación y monitoreo.
VIDEO Parte 2 Bloque 3: Automatización DevOps- 16 minutos 40 segundos
Entendamos la importancia de la automatización en la práctica de DevOps en detalle en este tutorial.
Aquí, discutiremos:
- ¿Cómo se aplica la automatización en la práctica de DevOps?
- ¿Necesidad y función de la automatización?
- ¿Qué automatizar?
- Herramientas y marco, prueba continua?
Me da un poco de miedo hablar de automatización. Porque, por mucho que hablo de automatización, en mi opinión, nunca está completo en absoluto.
No hace falta decir que la automatización es simplemente alejarse de las tareas manuales. La gente quiere reducir su participación en las tareas rutinarias mundanas y utilizar su tiempo e inteligencia en algo nuevo o innovador.
Dicho esto, el papel de la automatización en DevOps es muy importante y crucial para ofrecer valor al cliente de forma continua.
Respondamos juntos cómo se aplica la automatización en la práctica de DevOps junto con qué automatizar porque ambas preguntas se responden juntas.
¿Qué automatizar?
No creo que se requiera mucha explicación para la respuesta a esta pregunta en esta era de automatización. Dondequiera que vayamos, vemos cosas que se están automatizando, ya sea con una mínima o ninguna intervención humana. Entonces, DevOps no es una excepción a esto.
En un método de desarrollo de software tradicional, era solo el equipo de desarrollo y sus actividades los que solían automatizarse, específicamente las pruebas. Solía ser así, que la automatización significa probar y automatizar casos de prueba, que también solo casos de prueba funcionales, pero ni siquiera pruebas no funcionales como rendimiento y seguridad.
Y ninguna de las otras actividades, especialmente las de operaciones, solía automatizarse. La falla de la implementación manual en un clúster enorme que involucró a 8 servidores y la pérdida que causó es muy buena. Ejemplo de complejidad involucrada en las implementaciones y explica claramente la necesidad de automatización para las actividades de Devops.
lo que ves es lo que obtienes creador web
Yo mismo he visto que las organizaciones contratan personas altamente calificadas e inteligentes pagando un paquete salarial enorme, para configurar las redes y los entornos, lo que solían hacer en base a su inteligencia, conocimiento en el área respectiva, su experiencia y pericia, que fue un completo trabajo manual.
La configuración manual siempre es propensa a errores, como todos saben. Lo que solía suceder en el caso de la configuración manual es que, durante un período de tiempo, después de realizar repetidamente el mismo trabajo una y otra vez, estas personas inteligentes, los configuradores de red, se aburren de estas actividades y terminan cometiendo errores debido a la negligencia.
Sabes que son muy brillantes y estas actividades serán muy sencillas y poco interesantes para ellos y necesitan nuevos retos cada día, y no esta aburrida tarea.
Por lo tanto, la introducción de la automatización para la instalación de software y el control de versiones de la parte de infraestructura se convirtió en una gran ganancia y redujo muchos errores humanos además de ahorrar tiempo y permite que cualquier hombre común haga esto, eliminando así la dependencia de los trabajadores calificados.
Además, ejecutar los procesos si se configura un nuevo entorno, como levantar el ticket para configurar un nuevo entorno, el equipo de TI que trabaja desde atrás para configurarlo, se eliminan todas estas molestias.
Por lo tanto, los miembros individuales del equipo están facultados para realizar las tareas. Imagine la velocidad, confiabilidad y consistencia que logra la automatización. Entonces, la automatización ha aumentado enormemente el número de entregas a la producción.
Así que ahora, en la práctica de DevOps, el equipo de operaciones también ha iniciado la automatización en todos sus trabajos, lo que se ha convertido en la clave del éxito de DevOps.
En realidad, en la práctica de DevOps, la automatización comienza desde la generación del código en la máquina de los desarrolladores hasta que el código está en producción e incluso después de eso en el monitoreo de la aplicación en vivo. Este es un ciclo típico de DevOps.
El equipo de desarrollo y operaciones verifica el código y las configuraciones del entorno hasta el control de fuente, desde donde se activa la automatización para desencadenar la compilación, ejecutar casos de prueba de unidades y otra calidad de código básica, casos de prueba de cobertura, casos de prueba relacionados con la seguridad, etc.
Una vez que el código termina con esto, el código se compila automáticamente, se almacena en el control de versiones y se implementa automáticamente en otros entornos para realizar más pruebas y, en última instancia, en la versión de producción.
Podemos ver la automatización que se lleva a cabo en cada fase del desarrollo a partir de la activación de la compilación, la realización de pruebas unitarias, el empaquetado, la implementación en los entornos especificados, la realización de pruebas de verificación de compilación, las pruebas de humo, los casos de prueba de aceptación y finalmente la implementación. en el entorno de producción final.
Incluso cuando decimos automatizar los casos de prueba, no se trata solo de las pruebas unitarias, sino también de las pruebas de instalación, las pruebas de integración, las pruebas de experiencia del usuario, las pruebas de IU, etc.
DevOps obliga al equipo de operaciones, además de las actividades de desarrollo, a automatizar todas sus actividades, como aprovisionar los servidores, configurar los servidores, configurar las redes, configurar firewalls, monitorear la aplicación en el sistema de producción.
Por lo tanto, para responder qué automatizar, es el disparador de compilación, la compilación y la construcción, la implementación o la instalación, la automatización de la infraestructura configurada como un script codificado, las configuraciones del entorno como un script codificado, no hace falta mencionar las pruebas, el monitoreo del rendimiento de la vida posterior a la implementación en la vida, registra el monitoreo, monitorea las alertas, envía notificaciones en vivo y recibe alertas en vivo en caso de errores y advertencias, etc.
En definitiva, automatizar todos los documentos relacionados con el proyecto.
Entonces, puedo decir que la automatización en el lenguaje DevOps significa, integración continua, pruebas continuas, implementación continua y entrega continua. Estudiaremos cada uno de ellos en detalle en las próximas partes.
En general, DevOps permite todas las actividades de desarrollo y operaciones, siempre que sea posible, lo que sea automatizable, lo que sea repetible, donde sea que se exija precisión, lo que requiera mucho tiempo se automatiza.
el mejor software para crear diagramas de flujo
Sin embargo, si no mencionamos las herramientas que se utilizarán para la automatización, la discusión sobre la automatización está incompleta.
Por lo tanto, la selección de un marco y una herramienta de automatización adecuados es el requisito clave para la automatización en DevOps.
Hay muchas herramientas disponibles en el mercado, tanto de código abierto como con licencia, que respaldan la automatización de extremo a extremo de todo el proceso de entrega, incluidas las actividades realizadas por el equipo de operaciones, las máquinas de aprovisionamiento, los servidores automatizados giratorios, la configuración de redes, los firewalls, e incluso monitoreando el desempeño del software.
Además, ciertas organizaciones han desarrollado su propio marco para integrar el proceso de extremo a extremo de DevOps, que comienza desde el compromiso del código hasta la implementación del código, incluida la documentación, que es una única herramienta integrada y el equipo no tiene que salir del marco para nada relacionado. para programar, ya sea control de versiones, escritura de casos de prueba, revisión, volcado de resultados de casos de prueba, análisis, etc.
P.ej: marioneta, administrador de recursos de Azure, chef, etc.,
Beneficios de la automatización en DevOps
Hemos visto lanzamientos anteriores, en ausencia de automatización que demore años en ingresar a la producción y también recientemente con ágil, ya sea esbelto, scrum o seguro, y con un porcentaje de automatización mejorado, los plazos de lanzamiento se redujeron a unos pocos meses o semanas.
Pero la automatización es absolutamente imprescindible para que los lanzamientos sean lo más rápidos posible en unas pocas horas. Por lo tanto, creo que es imposible hacer lanzamientos tan rápidos y frecuentes a menos que implementemos la automatización en todo el proceso.
Entonces, obviamente, si queremos lograr los objetivos de DevOps, alta calidad y valor entregado a los clientes a través de entregas frecuentes y rápidas, automatizar todo es una necesidad.
Claramente, a estas alturas sabemos que la automatización elimina los errores manuales, la dependencia de un individuo, funciona más rápido y logra precisión, logrando así consistencia y confiabilidad. Por lo tanto, automatizar todo permite el objetivo de DevOps de una entrega de alta calidad, permite lanzamientos frecuentes y lanzamientos más rápidos.
En pocas palabras, Automatización,
- Elimina errores manuales
- Los miembros del equipo están empoderados
- Dependencia eliminada
- Latencia eliminada
- Aumenta el no de entregas
- Reduce el tiempo de entrega
- Aumenta la frecuencia de lanzamientos
- Proporciona comentarios más rápidos
- Permite velocidad, confiabilidad y consistencia
Entonces, en resumen, la automatización en DevOps en última instancia encapsula todo, desde la construcción, implementación y monitoreo.
PREV Tutorial | SIGUIENTE Tutorial
Lectura recomendada
- Importancia de pequeños incrementos de entregas en DevOps
- Control de código fuente o control de versiones en DevOps (tutorial en video Parte 2 - Bloque 2)
- Tutorial de DevOps: la guía definitiva de DevOps (más de 25 tutoriales)
- Práctica de DevOps basada en el manifiesto ágil (Parte 2 - Bloque 1)
- Tutorial de pruebas de DevOps: ¿Cómo afectará DevOps a las pruebas de control de calidad?
- Tutorial de AWS CodeCommit para la implementación de DevOps en la nube
- Ver tutorial de automatización de pruebas: una guía de herramientas de automatización de pruebas móviles
- Entrega continua en DevOps