1.1.3 Optimizando Ciclo de Vida del Software VA.pptx
viaranda
0 views
31 slides
Oct 07, 2025
Slide 1 of 31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
About This Presentation
Permite conocer optimización del ciclo de vida del software
Size: 7.97 MB
Language: es
Added: Oct 07, 2025
Slides: 31 pages
Slide Content
Optimizando Ciclo de Vida del Software
Integración Continua
Integración Continua La integración continua (CI) es una práctica en el desarrollo de software que consiste en integrar cambios de código frecuentemente para encontrar errores de manera temprana y oportuna. El objetivo principal de CI es detectar y resolver problemas de integración de manera temprana y automática mediante la ejecución automatizada de pruebas unitarias y de integración. Esto permite a los equipos de desarrollo mantener una calidad constante en el código y facilita la entrega continua de software funcional y estable, optimizando así el proceso de desarrollo y reduciendo el riesgo de errores en versiones futuras del software.
Integración Continua Marketer . (2023, December 18). Best 19 CI/CD Tools to Watch out in 2024. Jelvix . https://jelvix.com/blog/best-ci-cd-tools-comparison
Integración Continua IDE (Entorno de Desarrollo Integrado) es una herramienta de software utilizada por los desarrolladores para escribir, editar, compilar, depurar y gestionar el código fuente de una aplicación . Aunque tradicionalmente se asocia más con el desarrollo y la programación, el término IDE también puede tener implicaciones en el contexto de la integración continua debido a su papel en el flujo de trabajo de desarrollo de software
Integración Continua Visual Studio Code User Interface. (2021, November 3). https://code.visualstudio.com/docs/getstarted/userinterface
Integración Continua Git es una herramienta utilizada para el control de versiones en desarrollo de software. Básicamente, ayuda a los equipos a seguir los cambios en el código con el tiempo, guardando un historial completo de todas las revisiones. Funciona de manera distribuida , lo que significa que cada desarrollador tiene una copia completa del repositorio. Esto hace que el trabajo en equipo sea más fácil y permite gestionar ramas ( branches ) de manera eficiente para trabajar en diferentes funcionalidades al mismo tiempo. Git usa identificadores únicos para cada cambio ( commit ), lo que asegura que los datos sean siempre seguros y fiables.
Integración Continua Una herramienta de integración continua es un software diseñado para automatizar y gestionar el proceso de integración continua en el desarrollo de software. Estas herramientas son fundamentales para facilitar la implementación efectiva de la integración continua (CI), asegurando que los cambios de código se integren de manera automática y frecuente en un repositorio compartido, seguidos de la ejecución de pruebas automáticas y otros procesos definidos.
Integración Continua 4 tips for GitHub Actions usability (+2 bonus tips for debugging ) | Fleet. ( n.d .). https://fleetdm.com/engineering/tips-for-github-actions-usability
Integración Continua Un pipeline se refiere a un conjunto automatizado de pasos que permiten la construcción, prueba y despliegue de software de manera eficiente y consistente. Este flujo de trabajo se compone típicamente de varias etapas secuenciales, como la compilación del código fuente, la ejecución de pruebas unitarias y de integración, el empaquetado del software y su despliegue en un entorno de producción o de pruebas. Utilizando herramientas de automatización y gestión de versiones, como Jenkins, GitLab CI/CD, o GitHub Actions , los pipelines aseguran que cualquier cambio en el código sea integrado y probado de forma rápida, minimizando errores y facilitando la entrega continua de aplicaciones de alta calidad.
Integración Continua
Despliegue Continuo
Despliegue Continuo El despliegue continuo es una práctica en el desarrollo de software que automatiza el proceso de entrega de código al entorno de producción de manera frecuente y consistente. Con el despliegue continuo, cada cambio que pasa las pruebas automáticamente se prepara y despliega automáticamente en un entorno de producción o de pruebas preconfigurado. Este enfoque reduce significativamente el tiempo y los riesgos asociados con los despliegues manuales, asegurando que las nuevas funcionalidades y mejoras estén disponibles rápidamente y de manera confiable para los usuarios finales.
Despliegue Continuo Continuous Delivery vs. Continuous Deployment : A Comparison . ( n.d .). katalon.com. https://katalon.com/resources-center/blog/continuous-delivery-vs-continuous-deployment
Despliegue Continuo Garfield, L. (2022, February 12). Best practices in deployment have evolved. Devmio - Software Know-How. https://devm.io/continuous-delivery/deployment-best-practices-172662
Estrategias de Deployment All in Once: En esta estrategia, la aplicación se despliega de una sola vez en todos los servidores o instancias. Esto significa que todo el tráfico de usuarios se redirige inmediatamente a la nueva versión del software. Aunque es sencillo y rápido de implementar, presenta riesgos significativos si la nueva versión tiene errores, ya que no hay posibilidad de revertir sin afectar a todos los usuarios.
Estrategias de Deployment Uptime : Puede haber interrupciones significativas, ya que todos los servidores cambian simultáneamente. Impacto del Rollback : Alto impacto, ya que revertir implica cambiar nuevamente todos los servidores, lo que puede causar más tiempo de inactividad. Costo: Bajo costo en términos de infraestructura y complejidad, ya que no se requieren entornos adicionales ni procesos graduales. Velocidad de Despliegue: Muy rápido, ya que se implementa de una sola vez en todos los servidores.
Estrategias de Deployment Rolling Update : Consiste en actualizar gradualmente las instancias de la aplicación, una por una o en pequeños lotes. Durante este proceso, parte del tráfico sigue dirigiéndose a la versión anterior mientras se prueban las nuevas instancias. Esto reduce el riesgo de interrupciones y permite detectar problemas antes de que afecten a todos los usuarios, facilitando una transición más segura y controlada.
Estrategias de Deployment Uptime : Mantiene un alto nivel de uptime , ya que solo una parte de los servidores se actualiza a la vez. Impacto del Rollback : Bajo impacto, ya que solo se necesita revertir las instancias problemáticas, minimizando la interrupción. Costo: Moderado, ya que requiere un sistema de orquestación y monitoreo para gestionar el despliegue gradual. Velocidad de Despliegue: Moderada, porque la actualización se realiza de manera incremental, lo que lleva más tiempo en comparación con un despliegue completo.
Estrategias de Deployment
Estrategias de Deployment Canary : Esta estrategia introduce la nueva versión de la aplicación a un pequeño subconjunto de usuarios mientras el resto sigue usando la versión antigua. Si no se detectan problemas, el despliegue se extiende gradualmente a más usuarios. Es ideal para minimizar riesgos y probar cambios en producción de manera controlada, permitiendo revertir fácilmente si se encuentran errores.
Estrategias de Deployment Uptime : Muy alto, ya que solo una pequeña fracción de usuarios se ve afectada inicialmente, minimizando el riesgo de interrupciones. Impacto del Rollback : Muy bajo, ya que es fácil revertir solo la pequeña fracción afectada si se detectan problemas. Costo: Moderado a alto, debido a la necesidad de monitoreo y capacidad para gestionar el tráfico entre versiones. Velocidad de Despliegue: Lenta, ya que el despliegue se realiza de manera muy controlada y gradual.
Estrategias de Deployment
Estrategias de Deployment Blue Green: Implica mantener dos entornos de producción idénticos, uno con la versión actual (blue) y otro con la nueva versión ( green ). Una vez que el entorno green está listo y probado, el tráfico se redirige del entorno blue al green . Esto permite un cambio instantáneo y fácil reversión si es necesario, asegurando alta disponibilidad y mínima interrupción del servicio.
Estrategias de Deployment Uptime : Excelente, ya que el tráfico se puede cambiar instantáneamente entre entornos sin tiempo de inactividad. Impacto del Rollback : Muy bajo, ya que solo implica redirigir el tráfico de vuelta al entorno original. Costo: Alto, debido a la necesidad de mantener dos entornos de producción completos. Velocidad de Despliegue: Rápida en términos de cambio de versiones, ya que el entorno green puede estar completamente probado antes del cambio de tráfico.
Estrategias de Deployment
Resumen
Resumen Automatización y Eficiencia : La integración continua y el despliegue continuo transforman la manera en que desarrollamos software al automatizar procesos repetitivos como pruebas y despliegues. Esto no solo mejora la eficiencia del desarrollo, sino que también nos permite enfocarnos más en la creatividad y la calidad del código. Calidad y Confianza : Estas prácticas nos enseñan la importancia de la calidad desde el inicio. Al integrar y desplegar cambios frecuentemente, aprendemos a escribir código más robusto y a realizar pruebas exhaustivas para mantener la confianza en nuestras aplicaciones.
Resumen Colaboración y Comunicación : La integración continua fomenta la colaboración entre equipos al facilitar la integración fluida de cambios de múltiples desarrolladores. Además, promueve una comunicación clara sobre el estado del código y los despliegues, esencial para trabajar eficazmente en proyectos conjuntos. Preparación para el Mundo Real : Estas prácticas no solo son teóricas, sino que son altamente valoradas en la industria. Nos preparan para enfrentar los desafíos del desarrollo de software en entornos profesionales, donde la velocidad, la calidad y la capacidad de respuesta son cruciales para el éxito del producto.