🚀 Proyecto Final
Despliegue de Aplicación MVC en Contenedor Docker sobre Infraestructura Cloud con Linode
Stack completo del proyecto final
ASP.NET Core MVC
Framework de Microsoft para construir aplicaciones web usando el patrón Modelo-Vista-Controlador con C#.
Docker
Plataforma de contenedores que empaqueta la aplicación con todas sus dependencias para correr en cualquier entorno.
Docker Hub
Registro de imágenes Docker en la nube, usado para almacenar y distribuir la imagen del proyecto.
Linode (Akamai)
Proveedor de infraestructura cloud donde se despliega y ejecuta el contenedor Docker en un servidor Linux.
Nginx
Servidor web usado como proxy inverso que redirige el tráfico HTTPS al contenedor Docker corriendo en el puerto 8080.
Let's Encrypt
Autoridad certificadora gratuita que emite certificados SSL/TLS para habilitar HTTPS en el dominio del proyecto.
No-IP DDNS
Servicio de DNS dinámico gratuito que asigna el dominio proyectomvc.ddns.net a la IP pública del servidor.
Cómo se construyó y desplegó este proyecto
1️⃣ Crear aplicación MVC
Aplicación web con patrón Modelo-Vista-Controlador en ASP.NET Core 8 usando Visual Studio.
2️⃣ Escribir el Dockerfile
Archivo de instrucciones que define cómo construir la imagen Docker con un multi-stage build.
3️⃣ Construir la imagen
Ejecutar docker build para generar la imagen optimizada de la aplicación.
4️⃣ Subir a Docker Hub
Publicar la imagen en Docker Hub con docker push para que esté disponible en la nube.
5️⃣ Configurar servidor Linode
Crear una instancia Linux en Linode e instalar Docker para poder ejecutar contenedores.
6️⃣ Desplegar en producción
Ejecutar docker pull y docker run en el servidor para poner la app en línea.
7️⃣ Dominio con No-IP DDNS
Registrar el hostname proyectomvc.ddns.net en No-IP apuntando a la IP pública del servidor Linode.
8️⃣ Configurar Nginx como proxy
Instalar Nginx y configurarlo como proxy inverso para redirigir el tráfico del puerto 80/443 al contenedor en el puerto 8080.
9️⃣ SSL con Let's Encrypt
Usar Certbot para obtener e instalar un certificado SSL gratuito, habilitando HTTPS en proyectomvc.ddns.net.