Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/2 arquitectura»
(Página creada con «🧱 SECCIÓN 1: Arquitectura Web <!--1------------------------------------------------------> <div class="slide"> ==Arquitectura Web== </div> {{Definicion |title=¿Qué...») |
(→Arquitectura Web) |
||
| (3 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 7: | Línea 7: | ||
{{Definicion | {{Definicion | ||
| − | |title=¿Qué es la Arquitectura Web? | + | |title=¿Qué es la Arquitectura Web?|La arquitectura web define la estructura y la forma en que se organizan los diferentes componentes de una aplicación que funciona en un entorno web. |
| − | | | + | |
Como en la construcción de un edificio, necesitamos planos (diseño), materiales (tecnologías) y roles profesionales (desarrolladores, diseñadores, administradores de sistemas). | Como en la construcción de un edificio, necesitamos planos (diseño), materiales (tecnologías) y roles profesionales (desarrolladores, diseñadores, administradores de sistemas). | ||
}} | }} | ||
| Línea 28: | Línea 27: | ||
===Arquitectura de la aplicación=== | ===Arquitectura de la aplicación=== | ||
| − | {{ | + | {{Definicion_MRM |
|title=Arquitectura de tres capas | |title=Arquitectura de tres capas | ||
|texto=Las aplicaciones web modernas suelen dividirse en tres capas: | |texto=Las aplicaciones web modernas suelen dividirse en tres capas: | ||
| Línea 106: | Línea 105: | ||
|- | |- | ||
| '''Java EE / Spring''' || Java Enterprise Edition || Orientada a grandes empresas, con servidores Tomcat o Glassfish. | | '''Java EE / Spring''' || Java Enterprise Edition || Orientada a grandes empresas, con servidores Tomcat o Glassfish. | ||
| + | |- | ||
| + | | '''Dockerized Stack''' || Despliegue con contenedores Docker || Permite ejecutar las tecnologías anteriores en entornos aislados, reproducibles y portables. | ||
|} | |} | ||
{{Color|orange| | {{Color|orange| | ||
| − | Las pilas tecnológicas combinan sistemas operativos, servidores, bases de datos y lenguajes de programación. | + | Las pilas tecnológicas combinan sistemas operativos, servidores, bases de datos y lenguajes de programación. |
| + | Hoy en día, estas pilas suelen desplegarse dentro de contenedores mediante herramientas como '''Docker''' y '''Docker Compose'''. | ||
}} | }} | ||
| + | |||
| + | ===Arquitecturas dockerizadas=== | ||
| + | |||
| + | {{Definicion | ||
| + | |title=¿Qué aporta Docker? | ||
| + | |texto=Docker permite crear contenedores que incluyen todo lo necesario para ejecutar una aplicación: sistema base, servidor web, intérprete de lenguaje, base de datos, etc. | ||
| + | Esto evita los clásicos problemas de configuración ("en mi ordenador funciona") y permite tener entornos iguales en todos los equipos. | ||
| + | }} | ||
| + | |||
| + | {| class="wikitable" style="width:100%" | ||
| + | ! Ejemplo !! Componentes Docker !! Archivo principal | ||
| + | |- | ||
| + | | '''LAMP en Docker''' || Contenedor PHP + Apache, contenedor MySQL, contenedor phpMyAdmin || `docker-compose.yml` | ||
| + | |- | ||
| + | | '''Django Stack en Docker''' || Contenedor Python/Django, contenedor PostgreSQL, contenedor Nginx || `docker-compose.yml` | ||
| + | |- | ||
| + | | '''MEAN en Docker''' || Contenedor Node.js/Express, contenedor MongoDB, contenedor frontend Angular o React || `docker-compose.yml` | ||
| + | |} | ||
| + | |||
| + | {{Color|green| | ||
| + | Cada servicio se ejecuta en un contenedor distinto, pero todos se comunican en la misma red Docker. | ||
| + | De esta forma los alumnos pueden crear un entorno de desarrollo completo en su propio ordenador. | ||
| + | }} | ||
| + | |||
| + | ===Herramientas complementarias=== | ||
| + | |||
| + | * **Docker Compose** → para definir y ejecutar varios servicios a la vez (web, base de datos, etc.) | ||
| + | * **Portainer** → interfaz gráfica para gestionar contenedores | ||
| + | * **Docker Hub** → repositorio de imágenes preconfiguradas (php, mysql, nginx, etc.) | ||
| + | * **Volúmenes** → para mantener los datos persistentes (bases de datos, código fuente) | ||
| + | |||
| + | {{Pregunta|texto=¿Qué ventajas tiene desarrollar con Docker frente a una instalación local tradicional?}} | ||
===Tendencias modernas=== | ===Tendencias modernas=== | ||
| Línea 132: | Línea 166: | ||
{{Color|blue| | {{Color|blue| | ||
| − | Durante este curso utilizaremos '''PHP y Laravel''' como nuestra principal tecnología de servidor, | + | Durante este curso utilizaremos '''PHP y Laravel''' como nuestra principal tecnología de servidor, pero también conoceremos alternativas modernas como '''Django''' y '''Node.js'''. |
| + | }} | ||
Última revisión de 11:11 7 oct 2025
🧱 SECCIÓN 1: Arquitectura Web
| La arquitectura web define la estructura y la forma en que se organizan los diferentes componentes de una aplicación que funciona en un entorno web.
Como en la construcción de un edificio, necesitamos planos (diseño), materiales (tecnologías) y roles profesionales (desarrolladores, diseñadores, administradores de sistemas). |
|
Actividad blue
|
Componentes principales de una aplicación web
- Servidor web → recibe las peticiones del cliente y devuelve una respuesta HTTP (ej: Apache, Nginx).
- Servidor de bases de datos → gestiona la información (ej: MySQL, PostgreSQL, MongoDB).
- Módulo de ejecución de código en el servidor → interpreta scripts dinámicos (ej: PHP, Node.js, Python).
- Cliente web → interpreta HTML, CSS y JavaScript (ej: navegadores).
- Lenguajes de programación → usados para construir tanto la parte visible (frontend) como la lógica (backend).
Arquitectura de la aplicación
|
Actividad green
|
Roles en el desarrollo
- Desarrollador backend
- Desarrollador frontend
- Diseñador web
- Administrador de sistemas
- DevOps / Full Stack Developer
⚙️ SECCIÓN 2: Tecnologías para programación web del lado del servidor
Introducción
Cuando hablamos de tecnologías web del lado del servidor, nos referimos a los lenguajes, frameworks y herramientas que se ejecutan en el servidor para generar páginas dinámicas y procesar la lógica de negocio.
Frameworks modernos
Un framework no es una nueva tecnología, sino una forma organizada de trabajar con una tecnología existente. Proporciona una estructura, utilidades y convenciones para acelerar el desarrollo.
| Lenguaje base | Framework | Descripción breve |
|---|---|---|
| PHP | Laravel | Basado en MVC. Muy usado para desarrollo rápido, limpio y seguro. |
| Python | Django | Robusto y completo, con ORM, sistema de autenticación y panel de administración integrado. |
| JavaScript | Express (Node.js) | Minimalista y flexible para APIs y aplicaciones en tiempo real. |
| Java | Spring Boot | Estandar empresarial; muy usado en grandes aplicaciones y microservicios. |
| Ruby | Ruby on Rails | Pionero en la filosofía “convención sobre configuración”. |
Ejemplos de arquitecturas tecnológicas
| Arquitectura | Significado | Componentes |
|---|---|---|
| LAMP / WAMP | Linux/Windows + Apache + MySQL + PHP | Clásica, muy usada en entornos educativos. |
| MEAN / MERN | MongoDB + Express + Angular/React + Node.js | Enfoque JavaScript completo (frontend y backend). |
| Django Stack | Python + Django + PostgreSQL + Nginx/Apache | Alternativa moderna, segura y escalable. |
| Java EE / Spring | Java Enterprise Edition | Orientada a grandes empresas, con servidores Tomcat o Glassfish. |
| Dockerized Stack | Despliegue con contenedores Docker | Permite ejecutar las tecnologías anteriores en entornos aislados, reproducibles y portables. |
|
Actividad orange
|
Arquitecturas dockerizadas
| Ejemplo | Componentes Docker | Archivo principal |
|---|---|---|
| LAMP en Docker | Contenedor PHP + Apache, contenedor MySQL, contenedor phpMyAdmin | `docker-compose.yml` |
| Django Stack en Docker | Contenedor Python/Django, contenedor PostgreSQL, contenedor Nginx | `docker-compose.yml` |
| MEAN en Docker | Contenedor Node.js/Express, contenedor MongoDB, contenedor frontend Angular o React | `docker-compose.yml` |
|
Actividad green
|
Herramientas complementarias
- **Docker Compose** → para definir y ejecutar varios servicios a la vez (web, base de datos, etc.)
- **Portainer** → interfaz gráfica para gestionar contenedores
- **Docker Hub** → repositorio de imágenes preconfiguradas (php, mysql, nginx, etc.)
- **Volúmenes** → para mantener los datos persistentes (bases de datos, código fuente)
Tendencias modernas
- Uso de contenedores con Docker para aislar servicios.
- Despliegues automatizados con CI/CD (GitHub Actions, GitLab CI).
- Arquitecturas basadas en microservicios o serverless.
- Frameworks backend con soporte API REST y GraphQL.
- Integración de servicios en la nube (AWS, Azure, Google Cloud).
Recursos para explorar
- Django Project
- Laravel Framework
- Node.js
- Spring Boot
- MongoDB
- Visión general del desarrollo web (YouTube)
|
Actividad blue
|