Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/2 arquitectura»

De WikiEducator
Saltar a: navegación, buscar
(Arquitectura Web)
 
(Una revisión intermedia 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.
|texto=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 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===

Última revisión de 11:11 7 oct 2025

🧱 SECCIÓN 1: Arquitectura Web



Icon define.gif

Definición

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

  1. Servidor web → recibe las peticiones del cliente y devuelve una respuesta HTTP (ej: Apache, Nginx).
  2. Servidor de bases de datos → gestiona la información (ej: MySQL, PostgreSQL, MongoDB).
  3. Módulo de ejecución de código en el servidor → interpreta scripts dinámicos (ej: PHP, Node.js, Python).
  4. Cliente web → interpreta HTML, CSS y JavaScript (ej: navegadores).
  5. Lenguajes de programación → usados para construir tanto la parte visible (frontend) como la lógica (backend).



Icon qmark.gif

Pregunta

{{{1}}}


Arquitectura de la aplicación

Plantilla:Definicion MRM

Actividad green


Roles en el desarrollo

  • Desarrollador backend
  • Desarrollador frontend
  • Diseñador web
  • Administrador de sistemas
  • DevOps / Full Stack Developer



Icon qmark.gif

Pregunta

{{{1}}}



⚙️ SECCIÓN 2: Tecnologías para programación web del lado del servidor

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.



Icon define.gif

Definición

{{{1}}}



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”.



Icon qmark.gif

Pregunta

{{{1}}}


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

Icon define.gif

Definición

{{{1}}}



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)



Icon qmark.gif

Pregunta

{{{1}}}


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).



Icon qmark.gif

Pregunta

{{{1}}}


Recursos para explorar

Actividad blue