Infra vs Apps: ¿Dónde están mis Pipelines?

Rate this content
Bookmark

La automatización de una única aplicación monolítica es bastante sencilla. Divídela en una parte frontal y una parte trasera y aún es manejable. Agrega más componentes o infraestructura y de repente te estarás rascando la cabeza preguntándote por qué se ejecutó o no se ejecutó una compilación. ¿Cuántos pipelines necesito? ¿Cuántos repositorios de git debería tener? Vamos a revisar casos de uso desde equipos pequeños que poseen toda su pila hasta organizaciones con unidades de TI centralizadas que administran infraestructura compartida. Aprende qué escenarios y criterios determinan cómo dividir pero no convertir en espagueti tus pipelines.

FAQ

CICD se refiere a la integración continua y la entrega continua, un método para entregar aplicaciones e infraestructura de manera eficiente y segura a través de la automatización en las fases de desarrollo, prueba y producción.

Julie ha trabajado como ingeniera full-stack, Arquitecta Empresarial en Allianz Alemania y actualmente es ingeniera en Microsoft, formando parte del programa Fast Track para Azure.

Julie prefiere Jenkins porque lo considera su servidor de compilación favorito, a pesar de también utilizar Azure DevOps y GitHub Actions.

En el contexto de CICD, las aplicaciones monolíticas pueden ser manejadas mediante un mono repositorio, donde los cambios se empujan a la rama principal y se implementan automáticamente en el entorno de producción utilizando herramientas como Jenkins.

Julie destaca que al dividir una aplicación, como separar el backend del frontend, surge la confusión sobre qué componente implementar y cómo manejar múltiples componentes y disparadores en el sistema CICD.

Las pruebas de extremo a extremo son críticas en CICD para asegurar que las aplicaciones funcionen como se espera antes de su despliegue en producción, ya que permiten verificar la funcionalidad completa del sistema.

Julie menciona que Kubernetes puede complicar el proceso de CICD debido a su enfoque en la infraestructura, que incluye manejar múltiples almacenes de datos y configuraciones de enrutamiento, lo que aumenta la complejidad y los puntos de fallo potenciales.

Julie enfatiza la coordinación entre equipos y la importancia de la comunicación efectiva para manejar la complejidad en CICD, especialmente en grandes organizaciones donde los equipos deben trabajar juntos para resolver problemas y mejorar procesos.

Julie Ng
Julie Ng
32 min
01 Jul, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla sobre CI/CD abarca varios casos de uso, desafíos y mejores prácticas. Se enfatiza la importancia de las personas y el aprendizaje en CI/CD, así como la complejidad de coordinar equipos y administrar infraestructura. El orador comparte ideas sobre el desarrollo frontend, los microservicios y las consideraciones de seguridad. La charla concluye con discusiones sobre archivos Jenkins, scripts bash y los desafíos de DevOps en las organizaciones.

1. Introducción a CICD y Mi Experiencia

Short description:

Hola, mi nombre es Julie. Soy ingeniera en Microsoft y hoy voy a hablarles sobre CICD y cómo funciona todo, y cómo funciona cuando tienes aplicaciones e infraestructura. Formo parte del programa Fast Track para Azure, lo que significa que ayudo a incorporar a los clientes a Azure. Antes de eso, fui Arquitecta Empresarial en Allianz Alemania, que es una compañía de seguros multimillonaria, y en realidad muchas de las opiniones y recomendaciones que les voy a dar hoy provienen de esa experiencia, así como de mi experiencia en Microsoft. Vengo del mundo Mac, de código abierto. Me gusta Node.js, Ruby, realmente no me gusta Windows. Soy una persona muy opinativa, así que trataré de mencionar cuando algo es mi opinión personal y recomendación. La foto que puse aquí es nostálgica porque fue literalmente la última semana de febrero antes del confinamiento debido a la Corona. Así que se siente muy extraño no solo trabajar de forma remota sin haber conocido nunca a tus colegas, sino también dar una charla en este momento a través de video. Pero parece funcionar.

Hola, mi nombre es Julie. Soy ingeniera en Microsoft y hoy voy a hablarles sobre CICD y cómo funciona todo, y cómo funciona cuando tienes aplicaciones e infraestructura.

Así que un poco sobre mí. Como dije, soy ingeniera en Microsoft. Formo parte del programa Fast Track para Azure, lo que significa que ayudo a incorporar a los clientes a Azure. Antes de eso, fui Arquitecta Empresarial en Allianz Alemania, que es una compañía de seguros multimillonaria, y en realidad muchas de las opiniones y recomendaciones que les voy a dar hoy provienen de esa experiencia, así como de mi experiencia en Microsoft. Antes de eso, fui ingeniera full-stack, y todavía lo soy, y diseñadora.

Así que vengo del mundo Mac, de código abierto. Me gusta Node.js, Ruby, realmente no me gusta Windows. Soy una persona muy opinativa, así que trataré de mencionar cuando algo es mi opinión personal y recomendación. La foto que puse aquí es nostálgica porque fue literalmente la última semana de febrero antes del confinamiento debido a la Corona. Así que se siente muy extraño no solo trabajar de forma remota sin haber conocido nunca a tus colegas, sino también dar una charla en este momento a través de video. Pero parece funcionar.

2. CICD Use Cases and Mono Repo with Jenkins

Short description:

Hoy les voy a presentar varios casos de uso para CICD. Comencemos con un mono repositorio y Jenkins como servidor de compilación. Después de hacer un push a la rama principal, Jenkins implementa en el entorno de producción. Para asegurarnos de que funcione, necesitamos entrega continua y promoción automatizada. Ejecutar pruebas de extremo a extremo en la aplicación implementada ayuda a verificar su funcionalidad. Si las pruebas fallan, el trabajo se detiene. Si pasan, Jenkins realiza los cambios en la rama de producción, lo que desencadena otro trabajo para implementarlo.

De acuerdo, comencemos con un ejemplo muy simple. Hoy les voy a presentar varios casos de uso. Voy a intentar empezar de forma sencilla, y luego se vuelve realmente complicado muy rápidamente, pero la idea es enseñarles a pescar, y no darles un pez, cuando se trata de descubrir CICD por ustedes mismos.

Así que empecemos con lo más fácil posible, ¿verdad? Un mono repositorio, porque venimos de los monolitos. Muy simple. Voy a hacer un push y un servidor de compilación lo recogerá. Así que aquí tengo Jenkins. Jenkins es mi servidor de compilación favorito de todos los tiempos. Sí, también uso Azure DevOps y GitHub Actions, pero aún prefiero Jenkins.

De todos modos, digamos que hago un push a la rama principal. Se implementará en mi entorno de producción. Digamos que eventualmente estoy satisfecho. De alguna manera, en mi computadora local, hago cambios sin piedad en producción, y luego hago push de los cambios a producción y Jenkins los implementa en mi entorno de producción. Todo está bien, creo. ¿Cómo sabes que realmente funciona? Sabes, como ese tipo de CI que simplemente va allí. Hace algunas tareas. Pero ¿realmente funciona? ¿Cómo llegas al punto de la entrega continua? ¿Puedes hacer promoción automatizada? Eso es un poco más complicado de lo que muchas personas esperan cuando lo hacen por primera vez.

Entonces, todavía tenemos el mismo mono repositorio, la misma especie de aplicación monolítica. Vamos a hacer un push a nuestra rama principal, que recuerden, corresponde a nuestro entorno de desarrollo. Jenkins lo habrá implementado. Todo está listo. Ejecutemos algunas pruebas de extremo a extremo. Así que en este ejemplo teórico, digamos que tengo una aplicación de una sola página que en realidad tiene un conjunto de pruebas de extremo a extremo, que abrirá un navegador, hará clic en todo. Y lo que mi usuario final intenta hacer en la aplicación, podemos verificar que funcione como se espera. Así que tal vez pueda comprar una camiseta, por ejemplo. Según los resultados de esa prueba, si no funcionan, entonces decimos, oh, falló, fin del trabajo, fin de la historia, fin del trabajo de compilación, eso es. Digamos que realmente funciona. Lo que puedes hacer es hacer que Jenkins haga ese commit por ti en esa rama de producción. Mientras antes, tal vez hayas hecho clic en todo manualmente para asegurarte de que funcione, ahora puedes ejecutar un conjunto de pruebas de extremo a extremo y decir, okay, tengo confianza, implementémoslo en producción, lo que iniciará otro trabajo, y luego lo implementaremos en producción.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

¿Por qué es tan lento el CI?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
¿Por qué es tan lento el CI?
Todos nos hemos preguntado esto mientras esperamos una eternidad a que termine nuestro trabajo de CI. Un CI lento no solo arruina la productividad del desarrollador, rompiendo nuestra concentración, sino que también cuesta dinero en tarifas de computación en la nube y desperdicia enormes cantidades de electricidad. Vamos a adentrarnos en por qué ocurre esto y cómo podemos solucionarlo con herramientas mejores y más rápidas.
Poner fin al dolor: Repensando CI para Monorepos Grandes
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Poner fin al dolor: Repensando CI para Monorepos Grandes
Escalar bases de código grandes, especialmente monorepos, puede ser una pesadilla en los sistemas de Integración Continua (CI). El panorama actual de las herramientas de CI tiende a ser orientado a máquinas, de bajo nivel y exigente en términos de mantenimiento. Lo peor es que a menudo están desconectadas de las necesidades y el flujo de trabajo real del desarrollador.¿Por qué es un obstáculo el CI? Porque los sistemas de CI actuales son comodines, sin una comprensión específica de tu base de código. No pueden aprovechar el contexto en el que operan para ofrecer optimizaciones.En esta charla, exploraremos el futuro del CI, diseñado específicamente para bases de código grandes y monorepos. Imagina un sistema de CI que comprenda la estructura de tu espacio de trabajo, paralelice dinámicamente las tareas en máquinas utilizando datos históricos, y haga todo esto con una configuración mínima y de alto nivel. Repensemos el CI, haciéndolo más inteligente, eficiente y alineado con las necesidades del desarrollador.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!
Cómo construir tuberías de CI/CD para una aplicación de microservicios
DevOps.js Conf 2021DevOps.js Conf 2021
33 min
Cómo construir tuberías de CI/CD para una aplicación de microservicios
Top Content
Los microservicios presentan muchas ventajas para ejecutar software moderno, pero también traen nuevos desafíos tanto para las tareas de despliegue como operativas. Esta sesión discutirá las ventajas y desafíos de los microservicios y revisará las mejores prácticas para desarrollar una arquitectura basada en microservicios.Discutiremos cómo la orquestación de contenedores usando Kubernetes o Red Hat OpenShift puede ayudarnos y lo uniremos todo con un ejemplo de tuberías de Integración Continua y Entrega Continua (CI/CD) en OpenShift.
Pruebas automatizadas de regresión de rendimiento con Reassure
React Advanced Conference 2022React Advanced Conference 2022
16 min
Pruebas automatizadas de regresión de rendimiento con Reassure
Como desarrolladores, nos encanta sumergirnos en métricas de rendimiento, comparar soluciones y realizar pruebas de rendimiento. Aunque no siempre nos guste, a menudo nos vemos obligados a solucionar problemas de rendimiento en nuestras aplicaciones de React y React Native. Pero este proceso no es sostenible y propenso a regresiones, especialmente a medida que la aplicación y el equipo crecen. Lo peor de todo es que estos problemas a menudo son descubiertos por los usuarios, lo que hace que su experiencia sea miserable. En mi charla te presentaré Reassure, una biblioteca de pruebas de regresión de rendimiento para React y React Native, que resulta ser una pieza faltante en nuestras suites de pruebas automatizadas y rendimiento. Detectando problemas antes de que lleguen a producción.
Cómo hacer CI/CD correctamente en 2021: Una guía para CI y CD
DevOps.js Conf 2021DevOps.js Conf 2021
9 min
Cómo hacer CI/CD correctamente en 2021: Una guía para CI y CD
La entrega de software es una prioridad para las organizaciones que poseen software, sin embargo, sigue siendo uno de los problemas más desafiantes a los que se enfrentan las empresas hoy en día. La integración continua (CI) y la entrega continua (CD) son prácticas de software que permiten a las organizaciones y equipos entregar código a los clientes de manera rápida, segura y repetida. Ya sea para mejorar el desarrollo, las operaciones o la seguridad, los pipelines de CI/CD brindan a los ingenieros y equipos más tiempo para trabajar en cosas que importan y menos tiempo luchando con el riesgo, los estándares y la velocidad de las implementaciones. Únete a esta sesión para aprender sobre los componentes de CI/CD y cómo construir y escalar pipelines para el futuro.

Workshops on related topic

Aporta Calidad y Seguridad al pipeline de CI/CD
DevOps.js Conf 2022DevOps.js Conf 2022
76 min
Aporta Calidad y Seguridad al pipeline de CI/CD
WorkshopFree
Elena Vilchik
Elena Vilchik
En esta masterclass repasaremos todos los aspectos y etapas al integrar tu proyecto en el ecosistema de Calidad y Seguridad del Código. Tomaremos una aplicación web simple como punto de partida y crearemos un pipeline de CI que active el monitoreo de calidad del código. Realizaremos un ciclo completo de desarrollo, comenzando desde la codificación en el IDE y abriendo una Pull Request, y te mostraré cómo puedes controlar la calidad en esas etapas. Al final de la masterclass, estarás listo para habilitar esta integración en tus propios proyectos.
Despliega una aplicación de componentes web y configura un flujo de integración continua
DevOps.js Conf 2022DevOps.js Conf 2022
111 min
Despliega una aplicación de componentes web y configura un flujo de integración continua
Workshop
Philippe Ozil
Philippe Ozil
Únete a nosotros en un masterclass en el que desplegarás una aplicación Node.js simple construida con componentes web y configurarás un flujo de integración continua (CI). Aprenderás sobre el poder del Lightning Web Runtime (LWR) y las GitHub Actions.
Potenciando tu CI/CD con GitHub Actions
DevOps.js Conf 2022DevOps.js Conf 2022
155 min
Potenciando tu CI/CD con GitHub Actions
Workshop
David Rubio Vidal
David Rubio Vidal
Obtendrás conocimiento sobre los conceptos de GitHub Actions, como:- El concepto de secretos de repositorio.- Cómo agrupar pasos en trabajos con un propósito determinado.- Dependencias y orden de ejecución de trabajos: ejecutar trabajos en secuencia y en paralelo, y el concepto de matriz.- Cómo dividir la lógica de los eventos de Git en diferentes archivos de flujo de trabajo (en empuje de rama, en empuje a master/principal, en etiqueta, en implementación).- Para respetar el concepto de DRY (No te repitas), también exploraremos el uso de acciones comunes, tanto dentro del mismo repositorio como desde un repositorio externo.
Depuración de aplicaciones JavaScript en CI/CD
DevOps.js Conf 2022DevOps.js Conf 2022
124 min
Depuración de aplicaciones JavaScript en CI/CD
Workshop
Cecelia Martinez
Cecelia Martinez
- Causas de compilaciones fallidas en pipelines de CI/CD- Enfoques para la depuración (revisión de registros, acceso a entornos, reproducción de problemas)- Depuración de causas relacionadas con la aplicación (pruebas fallidas, compilaciones de la aplicación fallidas)- Depuración de causas relacionadas con el pipeline (configuración del pipeline, problemas de entorno, problemas de contenedor)
CI/CD 101 con CircleCI
DevOps.js Conf 2021DevOps.js Conf 2021
149 min
CI/CD 101 con CircleCI
Workshop
Angel Rivera
Zan Markan
2 authors
Los conceptos de Integración Continua y Entrega/Despliegue Continuo (CI/CD) son cada vez más adoptados por muchas organizaciones y equipos tecnológicos. CI/CD permite a los equipos establecer procesos que aumentan la velocidad, colaboración y calidad de su código. CI/CD permite a los equipos de desarrollo y operaciones romper silos innecesarios y obtener un conocimiento más profundo de sus respectivas áreas.
En este masterclass, los participantes serán introducidos a los fundamentos básicos de la Integración Continua y Entrega/Despliegue Continuo. Los participantes aprenderán los principios fundamentales de CI/CD y tendrán la oportunidad de reforzar lo que han aprendido en un taller práctico con la plataforma CircleCI. El taller demostrará la configuración de construcción de CI/CD, confirmaciones de código, construcción de confirmaciones, pruebas de código y empaquetado. Los participantes se irán con una experiencia práctica y comprensión de lo que implica CI/CD.
Tabla de contenidos- Introducción al tema de CI/CD y motivación para ello- Cómo se construyen y despliegan diferentes tipos de proyectos JavaScript (desde sitios estáticos hasta APIs)- Resumen de los pasos manuales comunes y cómo podríamos automatizarlos- Implementación de un pipeline de CI/CD desde cero- Resumen de los orbs de CircleCI- Pruebas en múltiples versiones de Node- Depuración de construcciones con SSH- Caché de dependencias- Seguridad / escaneo de vulnerabilidades- Despliegue en diferentes salidas
Requisitos previos- Código y git instalados- Cuenta de GitHub
github.com/CircleCI-Public/cicd-workshop-js