412 words
2 minutes
2.2 Entornos De Desarrollo Y Despliegues

02/Octubre/2025

En el desarrollo web, la elección del entorno de programación y despliegue influye directamente en la agilidad y estabilidad del proyecto.

Sistemas operativos y entornos#

  • Linux Desktop / Linux Server: Permite que el ambiente de desarrollo sea prácticamente igual al de producción, lo que facilita pruebas y reduce errores. Además, Linux ofrece gran facilidad para manejar contenedores y tener varias versiones del mismo software ejecutándose en paralelo.
  • FreeBSD (usado también en macOS): Aunque es un sistema robusto, al compilar software puede presentar más dificultades por diferencias en librerías. Su ventaja es el aislamiento del kernel, lo que permite mayor separación entre entornos.

Contenedores y VDI#

  • En Linux se usan ampliamente contenedores (ej. Docker) para aislar servicios. Sin embargo, el docente resalta que es mejor crear y administrar nuestros propios contenedores que usar archivos prediseñados (.yml) que no siempre son confiables.

  • VDI (Virtual Desktop Infrastructure): Son máquinas virtuales aisladas, cada una con un entorno completo (ejemplo: Ruby on Rails + SQLite). Es como tener “kits de herramientas” listos para cada versión:

    freeBSD_rails7.0
    freeBSD_rails8.0
    freeBSD_rails9.0

    Esto agiliza el trabajo: en lugar de reinstalar dependencias cada vez, simplemente se descarga y arranca el VDI correspondiente.

Flujo de trabajo con Git y VDI#

  • Se crean ramas en Git para trabajar en nuevas funciones.
  • Una vez probado y validado en el VDI, se fusiona con la rama principal y se conecta al entorno de producción.
  • El aislamiento hace más rápido el ciclo de desarrollo → prueba → despliegue.

Bases de datos en entornos aislados#

  • En un VDI se puede usar SQLite para desarrollo y pruebas, porque consume pocos recursos.
  • En producción se cambia a MySQL o PostgreSQL, lo que permite escalar sin perder compatibilidad.

Bitácoras#

  • Es importante llevar una bitácora de desarrollo: puede ser en Markdown, ASCII NEMA o con herramientas que graben automáticamente las acciones.
  • Estas bitácoras sirven como respaldo y documentación mínima, almacenadas en local o en la nube.
  • Los respaldos semanales también pueden verse como bitácoras de cambios.

Administradores de versiones y dependencias#

  • En Java se debe configurar el PATH y usar entornos como NetBeans.
  • En Python, el equivalente son entornos virtuales (virtualenv, pipenv) y gestores como pip o conda.
  • En Ruby, se usan gemas para dependencias.

Definiciones#

  • Contenedor: Entorno aislado que empaqueta aplicaciones y sus dependencias para que funcionen igual en cualquier sistema.
  • VDI (Virtual Desktop Infrastructure): Escritorios o máquinas virtuales completas, aisladas y listas para trabajar con una versión específica de software.
  • Kernel: Núcleo del sistema operativo que gestiona recursos y procesos.
  • Bitácora: Registro detallado de las acciones y cambios realizados en un sistema o proyecto.
  • Gemas (Ruby) / pip (Python): Gestores de paquetes que permiten instalar y mantener librerías externas.
2.2 Entornos De Desarrollo Y Despliegues
https://jangelmm.github.io/posts/informatica/ingenieriasoftware/programacion-web/2-html-xml-y-css/22-entornos-de-desarrollo-y-despliegues/
Author
Jesús Ángel Martínez Mendoza
Published at
2025-10-05
License
CC BY-NC-SA 4.0