¿Por qué necesito un CI / CD y cómo aprender a configurarlo?





La navegación por CI / CD es útil tanto para ingenieros de infraestructura como para desarrolladores. Konstantin Bryukhanov, líder de DevSecOps, explicó lo valiosa que es esta metodología y cómo los estudiantes aprenden a personalizar sus procesos en el curso en línea de CI / CD .



¡Hola! Comenzaré por contarles sobre el significado de usar CI / CD. Puedo señalar 5 razones:



1. Ahorro de tiempo gracias a la reutilización de código y la rápida implementación de proyectos



Habiendo descrito algún tipo de canalización para la entrega e implementación de código, siempre puede reutilizarlo. Por ejemplo, tiene 5 proyectos de Django, y ya ha descrito en uno de ellos cómo debería desarrollarse y funcionar todo. Estos desarrollos pueden tomarse y copiarse automatizando otros proyectos de Django con un poco de reconfiguración.



2. Obtener el resultado esperado de la implementación



El resultado esperado significa que si alguna vez describió la infraestructura o un proceso en forma de código, significa que cada vez que realice algunos procesos de implementación automática, serán los mismos. Siempre sabes lo que obtendrás al final.



CI / CD te permite prevenir situaciones en las que hoy te has desplegado de una forma, y ​​mañana alguien corrigió algo por sí mismo, vienes, pero no todo funciona, y necesitas averiguar por qué. Tiene la oportunidad de garantizarle al negocio que los procesos conducirán exactamente al resultado que usted regula.



3. Proyecto de independencia del medio ambiente



Recuerde la situación frecuente cuando implementó el código en el servidor, nada se inicia para usted, pero el desarrollador dice que todo funciona para él. Y hay que dedicar tiempo a descubrir que, de hecho, cambió algún tipo de adicción, sobre la que guardó silencio, por ejemplo. Tienes que realizar ingeniería inversa y descubrir la situación.



En CI / CD, todo lo que se necesita para que el servicio funcione ya viene con él. Es decir, pones tu código, bases de datos, dependencias en el contenedor y se lo das al servidor. Todo va en una esencia. Dondequiera que transfiera este contenedor, tiene todo con lo que trabajar. No tiene que perder tiempo configurando su entorno.



4. Infraestructura inmutable y migración sencilla



La inmutabilidad significa que la infraestructura está siempre en el mismo estado. Ha implementado un servidor que ha iniciado todos los procesos necesarios y los cambios en este servidor no se reflejarán en él. Si reinicia este servidor y vuelve a ejecutar el proceso de implementación del servidor, volverá a su posición original. No hay forma de realizar y escribir cambios en la infraestructura del servidor. Es imposible hacerle daño de ninguna manera.



Y la facilidad de la migración significa que solo necesita describir todo una vez. Y cuando necesite, por ejemplo, implementar de un centro de datos a otro, simplemente cambie el punto final donde implementar, y muévase con facilidad, implemente el mismo código sin ningún cambio adicional.



5. Posibilidades del enfoque "Infraestructura como código"



Esto significa que todos los patrones y enfoques de programación que se utilizan para el código son aplicables a la infraestructura.



Lo más importante es la presencia de control de versiones completo, que se realiza en el código, no en los servidores. Esto le permite retroceder, si es necesario, a una versión anterior de la infraestructura. Y una oportunidad igualmente importante para probar la infraestructura, es decir, hacer un despliegue de prueba del servidor, configurarlo para que no afecte al resto de servidores.



En resumen: ¿qué es CI / CD?



El concepto permite reducir el time to market sin perder requisitos no funcionales: escalabilidad, tolerancia a fallos, documentación, etc. Consta de 2 cosas:



  • CI (Integración continua) le permite integrar rápidamente los cambios de código en la versión de trabajo del código. Asegúrese de que el nuevo código entre en el último estable.
  • El CD (Continuous Delivery / Deployment) permite no solo integrar la funcionalidad en la versión de trabajo del código, sino también llevar una nueva versión de trabajo del código al mercado lo más rápido posible. Dependiendo de las tareas del proyecto, esto ocurre automáticamente o nosotros mismos enviamos el código usando scripts refinados.


A partir de aquí es obvio que no basta con estudiar las tecnologías Gitlab CI, Doker, Ansible, terraform, etc., sobre las que se construye el CI / CD. Por lo tanto, en el curso, estuvimos especialmente atentos a desarrollar la práctica. El trabajo de diseño es la parte final de la formación, donde debe implementar procesos de CI / CD para cualquier proyecto de código abierto de su elección. La secuencia de acciones de los estudiantes es la siguiente:



  • CI/CD Workflow, Gitlab CI. : , , .. .
  • , , . , . , Django. Java ..
  • CI/CD, , CI. , , . , .
  • : terraform-, Ansible-, , Doker-, , .
  • pipeline, .
  • pipeline , , .


El objetivo del trabajo final es obtener una solución completamente terminada, aceptable para el negocio, que se pueda agregar al portafolio y demostrar en la entrevista. De hecho, si viene a una empresa y dice que ha desarrollado soluciones universales desde cero para tres proyectos diferentes, este es un argumento serio para conseguir un puesto.



Las clases comienzan el 27 de agosto, pero puede unirse al grupo dentro de las dos semanas posteriores al inicio. El curso está diseñado para profesionales con experiencia en desarrollo y operación, para la capacitación será necesario aprobar una prueba de ingreso . Estoy esperando a todos los que decidieron dominar esta útil tecnología para sus proyectos y crecimiento profesional. ¡Nos vemos en OTUS!



All Articles