Integración, prueba y entrega continuas: así es el desarrollo del software
- Gestión de apps
El desarrollo de software generalmente lo lleva a cabo un equipo de desarrollo de software o una serie de equipos de desarrollo de software. Cada equipo de desarrollo de software generalmente constaría de desarrolladores, evaluadores y analistas de negocios.
Históricamente, el desarrollo de software fue visto como un acto de simplemente escribir código; la especificación de requisitos normalmente se dividiría a lo largo de líneas de funcionalidad y se asignaría a desarrolladores dentro de un solo equipo de desarrollo, o se asignaría a equipos de desarrollo de software.
Durante un período de tiempo prolongado, el código se uniría y, hacia el final de este ejercicio, por primera vez, el desarrollador comienza a pensar en la integración. La integración podría significar varias cosas:
- Integración con otros componentes del mismo producto que se está construyendo.
- Integración con otros productos o sistema.
- Problemas de integración
Hay algunos problemas en este enfoque:
- Construir un sistema de esta manera significa que, desde el principio, la mayoría de las decisiones que se podrían haber tomado se basarían en suposiciones sobre cómo se espera que funcionen las cosas.
- El coste de cualquier reproceso probablemente sea mayor que el de encontrar los defectos semanas o meses antes.
- La integración puede llevar más tiempo del esperado y eso podría ser un error en la fecha de entrega del proyecto en general.
Los problemas pueden mitigarse mediante la integración continua, que es un proceso de código de fusión continuo que utiliza herramientas de compilación. La integración continua es un grupo de prácticas que garantiza que el código se genere con la frecuencia con la que se ejecutan las comprobaciones de código / unidad, el código se implementa automáticamente en un entorno de prueba y luego se ejecutan más pruebas de extremo a extremo en el entorno de prueba. sistema desplegado.
Éxito de integración
Este es un proceso que está diseñado para ser repetible y, como se mencionó anteriormente, este proceso se ejecutará cada vez que se ingrese el código en el repositorio. Como debe haber notado, el proceso que se ha descrito anteriormente no excluye las pruebas, por lo que, en mi opinión, las pruebas continuas no pueden eliminarse de la integración continua; es parte integral del éxito de un proceso de integración continuo.
El objetivo de un equipo ágil es garantizar que podamos entregar un producto de calidad al cliente y, en última instancia, a los usuarios.
El lanzamiento del software podría ser un ejercicio que arruine los nervios y la entrega continua cuando se realiza correctamente tiende a quitarle los nervios del proceso de lanzamiento. Dado que el proceso de publicación es una actividad regular, los riesgos / temores asociados con la liberación de software son mínimos
'Las pruebas deben ser automatizadas'
El viaje de la integración poco frecuente a la integración continua (IC) y, finalmente, a la entrega continua (CD) requiere mucha práctica y trabajo arduo. Llas pruebas continuas son el centro de todo esto, las pruebas deben ser automatizadas y ejecutadas todo el tiempo. Cada vez que los trabajos de CI / CD recompilan o reconstruyen el código fuente, se deben ejecutar pruebas (unidad y / o prueba de integración) y cada vez que se realiza una implementación en un nuevo entorno, se deben ejecutar pruebas (aceptación / pruebas de extremo a extremo).
Descubre la innovación
Para asegurar el éxito empresarial, ahora y a futuro, es imprescindible maximizar el retorno de la inversión existente en software, a la vez que innovar y adoptar nuevas tecnologías. Los retos que hay abordar para competir en un mundo de TI Híbrida incluyen DevOps, Seguridad, Gestión de riesgos y Análisis predictivo. Puedes obtener más información sobre cómo abordar estos retos e innovar en este enlace.