Puede ser intimidante emprender un proyecto grande y tratar de hacer todo a la vez. En lugar de decir: «Voy a crear un sitio hoy», comience con «Voy a asignar la interfaz de usuario y la funcionalidad del sitio».
Luego pase a elegir la tecnología para construir la infraestructura de su sitio. Luego configure el frontend y el backend. Luego concéntrese en conectarlos para que los datos de muestra se puedan solicitar, recibir y mostrar en la interfaz. Luego configure una ruta para que los datos generados por el usuario se carguen en la base de datos.
En este punto, no se preocupe por la apariencia o las características del sitio web. ¿Por qué? Porque centrarse demasiado en el producto final correría el riesgo de perderse algunos detalles básicos pero clave al principio. Al seguir su proyecto paso a paso y verificar cada cambio, tendrá más confianza de que está creando una base de código sólida que admite más funciones y una interfaz llamativa.
Este enfoque hipotético para construir un sitio web es un ejemplo simplificado de los principios de integración continua en acción.
¿Qué es la Integración Continua?
La integración continua es un enfoque de desarrollo en el que los cambios de código se fusionan regularmente en un repositorio o rama compartida. El código base vinculado luego se integra en la aplicación de prueba donde se ejecutan pruebas automatizadas para corregir los errores. Cualquier defecto encontrado se devuelve a los desarrolladores para su reparación.
La integración continua (CI) es la base de las canalizaciones de DevOps y se utiliza en los flujos de trabajo de desarrollo Agile. El objetivo de este enfoque es reducir la cantidad y la complejidad de los conflictos de fusión mediante la implementación de impulsos frecuentes en la línea principal. Después de integrar y probar el código, el código en las computadoras locales se actualiza con descargas frecuentes, lo que garantiza que los desarrolladores siempre trabajen con el código más reciente.

En el ciclo de vida de desarrollo de software tradicional, CI se centra en las fases de construcción e integración. El pipeline de CI se obtiene combinando la automatización (herramientas y servicios) y el cambio cultural (alineando los valores y objetivos del equipo con los principios de DevOps).
Este video de freeCodeCamp proporciona otra explicación de CI:
El objetivo de la integración continua
En los enfoques tradicionales de desarrollo de software, como el modelo en cascada, a los desarrolladores se les asignan funciones para construir durante el sprint. Al final del sprint, los ingenieros combinan el código terminado para crear el código base final para construir la aplicación.
Este enfoque suena perfecto, pero de hecho, dos desarrolladores pueden terminar editando la misma parte de un archivo.
¿Qué sucede si el desarrollador A extiende un fragmento de código para admitir su función mientras que el desarrollador B ha eliminado el mismo fragmento de código? Ambos han estado trabajando con diferentes versiones del mismo archivo durante semanas, y ahora sus ediciones básicamente están en conflicto entre sí. El proceso de resolución de conflictos es tedioso y requiere mucho tiempo.
Multiplique ese riesgo por muchos desarrolladores que trabajan con cientos o miles de archivos para aplicaciones empresariales, y verá por qué esta trampa se conoce como «infierno de combinación», a veces denominado «infierno de integración».
CI aborda esta ineficiencia en las canalizaciones de desarrollo tradicionales mediante el uso de la automatización para aumentar la frecuencia de unión e integración de semanas a días e incluso horas. Ahora cualquier conflicto de fusión es mucho más pequeño y simple, lo que acelera el tiempo de resolución del equipo de desarrollo. Además, los ingenieros ahora están trabajando con una base de código que refleja los cambios de sus colegas, manteniendo a todos en la misma página.
Además de resolver este obstáculo común, la integración continua ofrece varios otros beneficios.
Los beneficios de la integración continua
CI proporciona beneficios tanto para el equipo de desarrollo como para la organización en su conjunto, que se analizan a continuación.
1. Captura de errores más rápido
Cada aprobación ahora activa un proceso automatizado de revisión y prueba del código. Si el código falla, los desarrolladores reciben una notificación de inmediato para que puedan trabajar en la corrección del error. Dado que CI pone énfasis en la aprobación regular, generalmente al menos una vez al día, los desarrolladores revisan constantemente su trabajo, en lugar de esperar hasta el final de la fase de codificación.
2. Más confianza en el software antes
Otro beneficio de las confirmaciones persistentes es que su código se actualiza y prueba constantemente. Los equipos de desarrollo tienen más confianza en la aplicación, ya que reciben constantemente comentarios de las pruebas automatizadas. Esto aumenta enormemente las posibilidades de que el producto final cumpla con los requisitos del proyecto, ya que valida cualquier característica o componente nuevo frente a estas expectativas.
3. Mayor visibilidad para la organización
Las herramientas que crean canalizaciones de CI también pueden realizar un seguimiento del desarrollo de características y otros objetivos de desarrollo. Estos datos también se utilizan para informar a otras partes interesadas sobre el cronograma de implementación.
El equipo de operaciones puede realizar un seguimiento de cuándo deben recibir los paquetes que se liberarán del desarrollo. Los equipos comerciales pueden ver los tiempos de entrega esperados de las nuevas funciones para mantener informados a sus clientes, y los equipos de marketing pueden desarrollar contenido y campañas en torno a las nuevas funciones del producto a medida que se desarrollan, no después del lanzamiento.
4. Disponibilidad permanente de una versión de prueba
El código se integra continuamente a medida que se realizan cambios y se valida con casos de prueba. Esto garantiza que siempre haya una compilación comprobable de aplicaciones para que el equipo de control de calidad (QA) evalúe los requisitos de rendimiento y configuración.
El equipo de control de calidad puede informar al equipo de desarrollo sobre cualquier deficiencia, lo que reduce los tiempos de respuesta, en lugar de descubrir estos problemas una vez que se completa la fase de codificación.
5. Definición explícita de requisitos
Un CI solo puede ofrecer todos los beneficios con una estrategia de prueba sólida. De lo contrario, todo lo que el equipo de desarrollo puede lograr es simplificar la canalización del código defectuoso.
Un beneficio adicional de este enfoque en las pruebas es que los equipos comerciales y de desarrollo tienen un incentivo adicional para definir claramente los objetivos al principio del ciclo de vida. La planificación cuidadosa es esencial para que los ingenieros escriban casos de prueba para verificar que el código cumple con estos objetivos.
La integración continua es el primer paso que están dando muchos equipos de desarrollo para acelerar el ciclo de vida del software. El siguiente paso es la entrega continua, que automatiza la publicación del código fusionado para la implementación manual.
Algunas organizaciones extienden este enfoque a la implementación continua que automatiza el lanzamiento y procesos de implementación para que el código entre en producción sin intervención humana. Combinadas, estas estrategias forman una canalización de CI/CD.
Ahora que comprende la integración continua y su importancia, echemos un vistazo a cómo se usa en la práctica.
¿Cómo funciona la integración continua?
CI permite a los desarrolladores de software segmentar responsabilidades en paralelo y codificar funciones de forma independiente. Se requieren varios conjuntos de herramientas diferentes para crear una canalización de CI que admita de manera efectiva este flujo de trabajo.
En primer lugar, el equipo de desarrollo necesita un sistema de control de versiones para rastrear y fusionar cambios. Luego, la canalización de CI requiere un repositorio de código para contener la base de código. Una combinación popular de un sistema de control de versiones y un repositorio es Git y GitHub.
Finalmente, la canalización necesita un conjunto de pruebas. Este subconjunto de herramientas se puede utilizar para realizar comprobaciones de calidad del código y revisiones de sintaxis antes de que se confirme el código, y para realizar pruebas unitarias después de que se haya compilado la base de código y se haya compilado la aplicación.

Después de organizar la canalización con las herramientas adecuadas, el flujo de trabajo de CI de muestra se verá así:
- El desarrollador revisa el código que se va a editar en su espacio de trabajo.
- El desarrollador confirma los cambios en el repositorio.
- La calidad del código y la sintaxis se verifican antes de aceptar la aprobación.
- Commit activa la compilación de la aplicación.
- Si no se puede crear la aplicación, se notifica al equipo para que solucione el problema.
- El servidor de compilación ejecuta pruebas unitarias contra la aplicación.
- Si la aplicación pasa las pruebas de caso, se informa al equipo que el código está listo para fusionarse.
- Si la aplicación falla en los casos de prueba, el código se devuelve al equipo para corregir los errores.
- Repita este ciclo a lo largo de la fase de desarrollo.
Este video de Edureka presenta el concepto de CI, su propósito y luego le muestra cómo crear un flujo de trabajo de CI de muestra con Jenkins:
La integración continua admite DevOps
CI es una piedra angular importante de DevOps y se alinea con el enfoque del modelo DevOps para la iteración y mejora continuas. Además, CI interactúa con otras prácticas recomendadas de DevOps, como las pruebas y la automatización de Shift Left.
Las herramientas de CI también mantienen informado al resto de la organización sobre el progreso del desarrollo para que todas las partes interesadas puedan planificar sus esfuerzos para igualar el ritmo del desarrollo y lograr mejores resultados comerciales. CI persigue el objetivo principal de un equipo ágil: producir software de mayor calidad más rápido.








