Despliegue y mantenimiento

Control de versiones con Git.

En el desarrollo de software, gestionar los cambios en el código fuente es crucial para la colaboración efectiva entre equipos, el mantenimiento de proyectos y la integración continua de mejoras y actualizaciones. Git, un sistema de control de versiones distribuido, se ha establecido como una herramienta esencial en este proceso. Este capítulo proporciona una visión exhaustiva sobre Git, abordando sus principios básicos, funcionalidades clave, y cómo se puede utilizar para optimizar el flujo de trabajo de desarrollo.

Fundamentos de Git

Git fue creado por Linus Torvalds en 2005 para la gestión del código fuente del kernel de Linux. Desde entonces, se ha adoptado globalmente debido a su robustez, flexibilidad y capacidades distribuidas.

  1. Conceptos Clave:
    • Repositorio: Un repositorio de Git contiene todos los archivos de un proyecto y su historial completo de revisiones. Puede estar alojado en un servidor remoto (como GitHub, Bitbucket, o GitLab) o almacenado localmente en tu computadora.
    • Commit: Un commit en Git es una instantánea de los cambios en el código fuente, guardando un registro claro de quién hizo qué y cuándo. Cada commit tiene un identificador único llamado hash.
    • Rama (Branch): Las ramas son versiones del repositorio que divergen del estado principal o de otra rama. Permiten a los desarrolladores trabajar en características o correcciones sin afectar al código principal.

Despliegue básico en plataformas como GitHub Pages o Netlify.

En la fase final del ciclo de desarrollo de software, el despliegue es el proceso mediante el cual una aplicación web se pone a disposición del público general. Plataformas como GitHub Pages y Netlify simplifican este proceso, permitiendo a los desarrolladores desplegar sitios web de manera rápida y eficiente. Este capítulo ofrece una visión detallada sobre cómo realizar despliegues básicos en estas plataformas, explorando sus características y pasos específicos para su uso.

Introducción a GitHub Pages

GitHub Pages es un servicio ofrecido por GitHub que permite alojar sitios web directamente desde un repositorio en GitHub. Es ideal para desplegar páginas estáticas como portfolios, proyectos de documentación y blogs.

  1. Cómo Funciona GitHub Pages:

    • Puedes desplegar un sitio web desde la rama master, gh-pages o desde un directorio /docs en cualquier rama.
    • GitHub Pages utiliza Jekyll de manera predeterminada para sitios estáticos, pero puedes subir cualquier contenido HTML estático, CSS y JavaScript.
  2. Configuración de un Sitio en GitHub Pages:

    • Crea un Repositorio: Si aún no tienes uno, crea un repositorio en GitHub. Esto almacenará todos los archivos de tu sitio web.
    • Sube tu Sitio Web: Asegúrate de que tu sitio web estático (incluyendo index.html en la raíz) esté en tu repositorio.
    • Activa GitHub Pages: Ve a la configuración (‘Settings’) de tu repositorio, desplázate hacia abajo hasta la sección «GitHub Pages», selecciona la rama desde donde quieres desplegar y guarda los cambios.
  3. Ventajas de GitHub Pages:

    • Es gratuito para repositorios públicos.
    • Integración directa con GitHub.
    • Soporte para HTTPS automáticamente.

Introducción a Netlify

Netlify es una plataforma de automatización de despliegues que proporciona un flujo de trabajo continuo para construir, testear y desplegar sitios web. Es especialmente poderoso para proyectos más complejos que requieren funcionalidades modernas de desarrollo web, como sitios generados dinámicamente o aplicaciones de una sola página (SPA).

  1. Cómo Funciona Netlify:

    • Netlify se conecta directamente a tu repositorio de GitHub, GitLab o Bitbucket.
    • Detecta cuando haces un push y automáticamente construye y despliega tu sitio desde la rama especificada.
  2. Configuración de un Sitio en Netlify:

    • Conecta tu Repositorio: Crea una cuenta en Netlify y utiliza su interfaz para conectar tu repositorio de código.
    • Configura tu Despliegue: Configura las opciones de construcción y despliegue, incluyendo la rama a desplegar y los comandos de construcción si es necesario.
    • Despliega tu Sitio: Una vez configurado, cada push a tu repositorio disparará un nuevo despliegue automáticamente.
  3. Ventajas de Netlify:

    • Integración continua y entrega continua (CI/CD) integradas.
    • Ofrece funciones avanzadas como funciones serverless, formularios, y autenticación.
    • Certificados SSL gratuitos y configuración de dominio personalizado.

Mejores Prácticas para el Despliegue

  1. Prueba Localmente: Antes de desplegar, asegúrate de que tu sitio funciona como se espera en tu entorno local.
  2. Optimiza los Activos: Minifica CSS, JavaScript y comprime imágenes para mejorar los tiempos de carga.
  3. Seguridad: Asegúrate de que tu sitio esté configurado para usar HTTPS, protegiendo así la privacidad y seguridad de tus usuarios.