CARGANDO

Escribe para buscar

¿Qué es CI/CD? Guía Completa sobre Integración y Entrega Continua

CI/CD para el desarrollo de software

Hace unos artículos te explicamos que era Ansible y la importancia que tenía, bien, pues la implementación de CI/CD en tu compañía también es muy importante, conseguimos menor tiempo en los despliegues de programas hacía la infraestructura, un correcto control de versiones y la posibilidad de hacer rollback en caso de que las cosas vayan mal y todo esto, intentando el zero downtime.

Sigue leyendo para descubrir que es todo esto del CI/CD!.

CI/CD

¿Qué es CI/CD?

Primero aclarar que, no debemos confundir CI/CD como una sola unidad, aunque vayan muy ligadas, cada sigla es independiente, podemos hacer una integración continua y no hacer la distribución e implementación o viceversa, aunque normalmente, utilicemos la integración y la distribución en conjunto.

Aclarado lo anterior, CI/CD son las siglas que utilizamos para la integración y entrega continua, con esto conseguimos mejorar y agilizar el ciclo de vida del desarrollo de software, además de, darnos menos quebraderos de cabeza cuándo subimos código nuevo a producción.

Ahora, te voy a explicar cada sigla, para que sepas diferenciarlas.

¿Qué es la integración continua (CI)?

CI ciclo

La integración continua (CI), es la práctica de integrar todos los cambios de código en la rama principal de un repositorio compartido de manera rápida y frecuente, gracias a esta práctica, conseguimos probar de forma automática, cada cambio que se va a realizar en el código y automáticamente los compila.

¿Qué beneficios tiene la integración continua (CI)?

Existen múltiples beneficios de realizar la práctica de CI en nuestros proyectos, te voy a decir los que para mí, son más importantes:

  • Facilidad al identificar errores y problemas de seguridad en el código antes de aplicarlos.
  • Facilidad a la hora del desarrollo colaborativo.
  • Menos trabajo manual, ya que, una vez creado el ficherito para CI, todo es automático.
  • Minimiza los conflictos de código.
  • Control de versiones.

¿Como funciona la integración continua (CI)?

Los procesos de funcionamiento en CI pueden cambiar dependiendo de lo que elijamos al crearlo, pero comúnmente, se utiliza este ciclo:

  1. Análisis estático de código para verificar la calidad.
  2. Una vez pasadas las pruebas, las rutinas de CI automatizadas, empaquetan el código.
  3. Compilación del código.

Es importante en esta parte, que tengamos un control de versiones que rastree los cambios, de esta manera, sabemos que versión del código estamos utilizando, incluso, si tenemos que hacer rollback, podemos volver a una versión anterior de forma rápida.

¿Qué es la entrega continua (CI)?

CD ciclo

Primero decirte que, con la entrega continua (CD), no solo puedes aprovisionar código, también puedes aprovisionar infraestructura.

Bien, ya sabes que es el CI, pero, ¿que es la entrega continua (CD)?, simple. Es una práctica que funciona normalmente en conjunto con CI para automatizar el aprovisionamiento de infraestructura y lanzamiento de aplicaciones.

Para que me entiendas, una vez tenemos todo el código testado y compilado con CI, ahora tocan las operaciones para realizar el deploy hacia la infraestructura, ya sea un servidor, un PaaS, un BaaS, lo que tengas, de forma automática. Sí, administradores de sistemas, gracias a esta práctica, ya no tenemos que acceder al servidor y subir el código a manija, con un botón, automáticamente se hará todo el proceso que antiguamente, hacías de forma manual.

¿Qué beneficios tiene la entrega continua (CD)?

Al igual que en CI, el CD tiene bastantes ventajas:

  • Menos errores humanos, ya que tenemos un fichero creado previamente con todos los pasos que se deben realizar, todos los deploys se harán de la misma manera, da igual el técnico que lo realice.
  • Tiempos más rápidos en los despliegues de nuevas versiones en los programas.
  • Velocidad a la hora de hacer rollback, gracias a las controles de versiones.
  • Zero downtime, aunque a veces no se consiga por el reinicio de algún servicio, pero podemos hacer el despliegue en caliente, sin que los usuarios se vean afectados.
  • Menor disponibilidad humana en tiempos intempestivos, al no tener que estar delante realizando los pasos, se programa el lanzamiento del nuevo código en la infraestructura.

¿Como funciona la entrega continua (CD)?

El ciclo de CD es sencillito una vez lo tenemos optimizado, simplemente, mediante un fichero, elegimos los pasos que debe seguir para realizarse el aprovisionamiento.

Para crear ese fichero hazte la siguiente pregunta ¿qué pasos manuales realizo normalmente como técnico de infraestructura para, por ejemplo, subir una nueva versión de mi WEB corporativa en mi servidor GNU/Linux?.

  1. Conecto por ssh al servidor.
  2. Copio los ficheros necesarios del programa a un directorio del sistema definido.
  3. Modifico los ficheros de Apache o Nginx con los parámetros necesarios.
  4. Reinicio el servicio WEB para que aplique los cambios.
  5. Desconecto la sesión SSH

Te he puesto un ejemplo mega sencillo, pero creo que con esto, ya sabes por donde quiero ir. Solamente te tocará adaptarlo al lenguaje del fichero que utilices para el CD.

CI/CD ciclo completo

¿Qué son las pipelines en CI/CD?

Con esto ya tienes claro que es el CI/CD, que ciclos tiene, para que sirve, etc. Ahora, quiero comentarte que son las pipelines, porque lo vas a escuchar muchísimo dentro de esta práctica de CI/CD.

Para explicártelo, vamos a ceñirnos a su traducción literal, tuberías, si, como lo lees. Las pipelines son un conjunto de operaciones que se van realizando en orden mediante acciones definidas en ficheros de forma automática, cuándo se completa un paso, va al siguiente, cuándo este se completa, al siguiente y así hasta su finalización.

Pipelines en CI/CD

Imagínate el agua que pasa por una tubería, lleva un proceso por pasos desde que sale de la depuradora, hasta que llega a nuestras casas. Las pipelines son lo mismo, pero en vez de llevar agua, lleva información que nosotros hemos definido a través de ficheros y se canaliza a través de esas “tuberías”.

¿Qué Herramientas de CI/CD existen?

Tenemos muchísimas herramientas en el mercado para implementar CI/CD, obviamente, unas de pago, otras libres, no te puedo decir cual es mejor o peor, eso tendrás que verlo por ti mismo, probar las herramientas, etc.

Las más “comunes” o que más se suelen utilizar son:

Para CI:

  • Jenkins
  • CircleCI
  • TravisCI

Para CD:

  • Spinnaker
  • Octopus Deploy
  • Gitlab

Aunque te las haya separado, realmente algunas de estas herramientas, valen para hacer el ciclo completo de CI/CD, como es el caso de GitLab (propiedad de github).

¿Qué empresas utilizan CI/CD como metodología?

La respuesta a esta pregunta es sencilla, prácticamente todas las empresas grandes que puedas imaginar, utilizan CI/CD. Amazon, Netflix, HBO, Microsoft y un largo etc.

Al final, como CI/CD podemos implementarlo en muchas tecnologías, como por ejemplo para levantar contenedores en docker o pods en Kubernetes, hace que esta metodología sea muy versátil y se utilice en grandes compañías.

Conclusiones

Espero que con este artículo, te haya aclarado que es el CI/CD. Esta metodología está en auge y ha venido para quedarse, por lo que, como bien sabes, es importante que estemos a la orden del día y tengamos conocimiento de todo, para no quedarnos sin trabajo 😁.

En próximos artículos haremos algún ciclo CI/CD sencillo para que lo veas en práctica y puedas entender este concepto abstracto de mejor manera, así que, suscríbete a nuestra newsletter para no perdértelo!, AH! y déjanos un comentario que estamos encantados de leerte!.

Antes de irte!

Te dejo un artículo analizando la arquitectura de Netflix que es súper interesante, así ves un poquito de CI/CD en "acción"

NETFLIX Y SU SECRETO: Su Arquitectura Interna Revelada

Ah, hola 👋
Un placer conocerte.

Veo que te gusta la tecnología, ¿quieres que te mandemos una newsletter semanal?.

Acepto la política de privacidad *

¡No enviamos spam!. yo también lo odio a muerte!.

Tags:

También podría gustarte

Deja un Comentario

Your email address will not be published. Required fields are marked *