SlideShare a Scribd company logo
1 of 57
Download to read offline
DESARROLLO DE APLICACIONES WEB - TEMA 3

Despliegue de
aplicaciones web
Micael Gallego
Correo: micael.gallego@urjc.es
Twitter: @micael_gallego
Blog: http://micaelgallego.github.io

ESCUELA TÉCNICA SUPERIOR DE
INGENIERÍA INFORMÁTICA

DEPARTAMENTO DE CIENCIAS
DE LA COMPUTACIÓN
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Alojamiento tradicional
• Computación en la nube

• Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

2
DESPLIEGUE DE LAS APLICACIONES WEB

Introducción
• Las aplicaciones web tienen las siguientes
características:


Se ejecutan en un servidor (físico o virtual), no en el
dispositivo del usuario



Pueden atender a miles de usuarios simultáneos, no a
uno sólo



Es muy habitual que se necesiten varios servidores para
una única aplicación web (por escalabilidad y
tolerancia a fallos)

Tema 3 - Despliegue de aplicaciones web

3
DESPLIEGUE DE LAS APLICACIONES WEB

Introducción
• Las aplicaciones web tienen las siguientes
características:


Se ejecutan dentro de un servidor web



Están formadas por código y por recursos (imágenes,
documentos html, css, js, ficheros estáticos…)



Utilizan servicios adicionales: base de datos, servidor
de correo, servidor de vídeo…



Requieren de un proceso de instalación y
configuración (despliegue) en el servidor o servidores
Tema 3 - Despliegue de aplicaciones web

4
DESPLIEGUE DE LAS APLICACIONES WEB

Introducción
• Empresas de alojamiento o hosting


Son empresas que permiten a sus clientes que ejecuten
sus aplicaciones web en sus instalaciones



Se encargan del suministro eléctrico, conexión a
Internet, compra y mantenimiento de servidores,
contol de acceso físico, etc…



Existe una amplia variedad de servicios que dependen
del proveedor y de las necesidades del cliente
Tema 3 - Despliegue de aplicaciones web

5
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Alojamiento tradicional
• Computación en la nube

• Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

6
DESPLIEGUE DE LAS APLICACIONES WEB

Alojamiento tradicional
• Tipos de alojamiento


Compartido: Varias aplicaciones web conviven en la
misma máquina física. El desarrollador no tiene
control total sobre el servidor



Dedicado: El cliente dispone de una máquina física
que controla completamente.

Tema 3 - Despliegue de aplicaciones web

7
DESPLIEGUE DE LAS APLICACIONES WEB

Alojamiento tradicional
• Tipos de alojamiento


Virtual: El cliente dispone de una máquina virtual
que controla completamente y se ejecuta en un
servidor físico compartido con otras máquinas
virtuales

Tema 3 - Despliegue de aplicaciones web

8
DESPLIEGUE DE LAS APLICACIONES WEB

Alojamiento tradicional
• Existen muchos proveedores con diferentes
servicios (compartido, dedicado y virtual)
• Algunos de los más conocidos en España

Tema 3 - Despliegue de aplicaciones web

9
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Hosting compartido

Tema 3 - Despliegue de aplicaciones web

10
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Hosting compartido

Tema 3 - Despliegue de aplicaciones web

11
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Hosting compartido

Tema 3 - Despliegue de aplicaciones web

12
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Hosting compartido

Tema 3 - Despliegue de aplicaciones web

13
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Servidores dedicados

Tema 3 - Despliegue de aplicaciones web

14
ALOJAMIENTO TRADICIONAL

Datos Enero 2012

Ejemplo 1&1 – Servidores virtuales

Tema 3 - Despliegue de aplicaciones web

15
ALOJAMIENTO TRADICIONAL

Alojamientos nacionales
• Hostalia


http://www.hostalia.com

• Strato


https://www.strato-alojamiento.es/

• Arsys.es


http://www.arsys.es

• Sync.es


http://www.sync.es

Tema 3 - Despliegue de aplicaciones web

16
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Alojamiento tradicional
• Computación en la nube

• Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

17
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• La computación en la nube (Cloud computing) es un concepto de
marketing más que un concepto técnico

• Cuando los proveedores utilizan la palabra cloud se refieren a la
posibilidad de configurar y redimensionar los recursos que se usan
de forma rápida y sencilla, o manualmente vía web o usando APIs
REST
• Dado que son tan dinámicos, se suele cobrar por tiempo de uso de
los recursos (horas o minutos), sin tener que hacer un contrato
previo con un tiempo de permanencia determinado.

• Los recursos de computación en la nube suelen estar virtualizados,
aunque en algunas ocasiones pueden ser máquinas físicas

Tema 3 - Despliegue de aplicaciones web

18
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Los proveedores de cloud computing ofrecen diversos tipos de
servicios, tanto de bajo nivel como de alto nivel.


Servidores virtuales (instancias)



Gestión del sistema operativo que tendrán los servidores (imagen)



Sistema de copias de seguridad de los servidores completos



Balanceadores de carga entre servidores



Bases de datos administradas



Servicios de gestión de logs, monitorización, alarmas…



Plataforma auto-escalable para ejecución de aplicaciones

Tema 3 - Despliegue de aplicaciones web

19
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• La diferencia con los alojamientos tradicionales consiste en
la elasticidad de los recursos

• Desde una consola web o una app móvil se pueden activar
o desactivar recursos (servidores, sistemas operativos,
copias de seguridad…)
• También se pueden gestionar de forma automática con APIs
REST o librerías en lenguajes de programación
• El software es verdaderamente escalable. Si necesita más
recursos hardware, los puede conseguir de forma
automática
Tema 3 - Despliegue de aplicaciones web

20
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Proveedores más conocidos

Tema 3 - Despliegue de aplicaciones web

21
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Los servicios ofrecidos por los proveedores
pueden ser de diferentes niveles de
abstracción:


Desarrolladores
 Infraestructura como servicio (bajo nivel)
 Plataforma como servicio (nivel medio)



Usuario final
 Software como servicio (alto nivel)

Tema 3 - Despliegue de aplicaciones web

22
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Infraestructura como servicio


Infraestructure as a Service (IaaS)



Servicios:








Servidores (instances)
Balanceadores de carga (load balancer)
Gestión de sistemas operativos (images)
Copias se seguridad de servidores
Almacenamiento de datos
Direcciones IP
Servidores DNS
Tema 3 - Despliegue de aplicaciones web

23
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Plataforma como servicio


Platform as a Service (PaaS)



Plataforma para el despliegue de aplicaciones web:
 La plataforma está diseñada para ser escalable de forma
automática (sin intervención del
desarrollador/administrador)
 Dependiendo del proveedor existen plataformas para las
tecnologías mas usadas: Java, PHP, Ruby, .NET..
 La plataforma ofrece servicios adicionales como un
servicio: Bases de datos, servidor de correo, bus de
comunicaciones, etc…

Tema 3 - Despliegue de aplicaciones web

24
DESPLIEGUE DE APLICACIONES WEB

Computación en la nube
• Software como Servicio


Software as a Service (SaaS)



El software se ofrece como un servicio por Internet (vía
web)
 El usuario no instala el software, lo usa vía web
 Generalmente se paga por uso o por número de usuarios
 Normalmente están destinados al usuario final, aunque
algunos servicios están orientados a desarrolladores
 Ejemplos: Dropbox, GMail, GoogleDocs, Microsoft 365,
iCloud, flickr
Tema 3 - Despliegue de aplicaciones web

25
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Tipos de Alojamiento
• Computación en la nube


Infraestructura como Servicio



Plataforma como Servicio



Software como Servicio

• Arquitecturas escalables y tolerantes a fallos
Tema 3 - Despliegue de aplicaciones web

26
DESPLIEGUE DE LAS APLICACIONES WEB

Infraestructura como servicio
• Es la capa de abstracción más baja del cloud
computing

• Amazon Web Services es el proveedor más famoso y
más completo en estos servicios
• AWS ofrece un conjunto de servicios y un modelo de
precios muy completo y que se ajusta a las
necesidades de cada cliente

Tema 3 - Despliegue de aplicaciones web

27
INFRAESTRUCTURA COMO SERVICIO

Amazon Elastic Compute Compute (EC2)
• http://aws.amazon.com/es/ec2/
• Es el nombre comercial del servicio de
servidores virtuales o instancias
• Disponen de varios tipos de instancias según su “hardware”:







Instancias estándar: Pequeñas, medianas, grandes y extragrandes
Instancias micro
Instancias con gran cantidad de memoria
Instancias con CPU de alto rendimiento
Instancias en clúster (con redes de alta velocidad ente ellas)
Instancias de GPU para clústeres

Tema 3 - Despliegue de aplicaciones web

28
INFRAESTRUCTURA COMO SERVICIO

Amazon Elastic Compute Compute (EC2)
• Otros servicios adicionales


Amazon Elastic Block Store: Disco duro de
las instancias persistente. Sus datos permanecen
cuando la instancia se apaga



Varias ubicaciones: El cliente puede elegir la ubicación para
reducir la latencia a los usuarios de los servicios. Además, existen
varias zonas de disponibilidad dentro de la misma ubicación para
minimizar el impácto de las catástrofes



Direcciones Elastic IP: Por defecto Las instancias tienen IPs
internas en la red de Amazon. Se puede asociar una IP pública a
una instancia

Tema 3 - Despliegue de aplicaciones web

29
INFRAESTRUCTURA COMO SERVICIO

Amazon Elastic Compute Compute (EC2)
• Otros servicios adicionales


Amazon Cloud Watch: Servicio de
monitorización de instancias con sistema
de alarmas y gráficas de uso de recuros (memoria, CPU, red…)



Auto Scaling: Se pueden configurar reglas para que Amazon inicie
más instancias cuando la carga de las existentes supere un umbral
y volver a bajar cuando la carga disminuya



Elastic Local Balancer: Dispositivos que reparten las peticiones
web a cada una de las instancias que se han creado con el
escalado automático o manual

Tema 3 - Despliegue de aplicaciones web

30
INFRAESTRUCTURA COMO SERVICIO

Amazon Elastic Compute Compute (EC2)
• Otros servicios adicionales (software)


Imágenes de Instancias (AMI): Amazon
permite la gestión de imágenes de las instancias (AMI),
pudiendo crear y gestionar varias imágenes. Se puede iniciar
una instancia con cualquier imagen. Se puede crear una
imagen como una copia de seguridad de una instancia.



Software preconfigurado en las instancias:
 Sistemas operativos: Windows y Linux (Red Hat, Ubuntu,
Oracle, Debian, Fedora, Suse…)
 Otro tipo de software: BBDD, Servidores web, Gestión de
recursos, servidores de vídeo, etc…
Tema 3 - Despliegue de aplicaciones web

31
INFRAESTRUCTURA COMO SERVICIO

Amazon Elastic Compute Compute (EC2)
• Forma de pago


Instancias bajo demanda (on-demand) :

 El usuario paga exclusivamente por el uso
que hace de las instancias (se paga por horas)



Instancias reservadas:

 El usuario puede reservar las instancias que quiera pagando una
cantidad por adelantado para 1 o 3 años.
 En las instancias reservadas el coste por hora es menor



Instancias Spot:

 El usuario fija el precio al que está dispuesto a pagar una hora
de cómputo. Amazon ofrece al usuario las instancias “que
sobran” cuando están disponibles a ese precio en base a la
oferta y la demanda

Tema 3 - Despliegue de aplicaciones web

32
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Tipos de Alojamiento
• Computación en la nube


Infraestructura como Servicio



Plataforma como Servicio



Software como Servicio

• Arquitecturas escalables y tolerantes a fallos
Tema 3 - Despliegue de aplicaciones web

33
DESPLIEGUE DE LAS APLICACIONES WEB

Plataforma como servicio
• En el Platform as a Service (PaaS) se ofrece una
plataforma para la ejecución de aplicaciones
(servidores web, bases de datos, gestión de logs,
monitorización, auto-escalado, etc…)
• Los desarrolladores no se preocupan de la gestión de
la plataforma, sólo se preocupan de su software
• La ventaja fundamental es que es escalable y
tolerante a fallos de forma automática
• Cada proveedor ofrece unos servicios diferentes
Tema 3 - Despliegue de aplicaciones web

34
DESPLIEGUE DE LAS APLICACIONES WEB

Plataforma como servicio
• Servicios PaaS de Amazon


Amazon Elastic BeanStalk: Plataforma de
ejecución de código Java y PHP escalable y elástica



Amazon Simple Notification Service (Amazon
SNS): Envío de notificaciones SMS, Correo,…



Amazon Simple Queue Service (Amazon SQS):
Servicio de comunicación basado en colas de los
diferentes módulos de la aplicación

Tema 3 - Despliegue de aplicaciones web

35
DESPLIEGUE DE LAS APLICACIONES WEB

Plataforma como servicio
• Servicios PaaS de Amazon


Almacenamiento
 Amazon Simple Storage Service (Amazon S3):
Servicio de almacenamiento de ficheros
 Amazon Rational Database Service (Amazon RDS):
Base de datos MySQL u Oracle escalable
 Amazon Simple DB: Base de datos NoSQL simple
 Amazon DynamoDB: Base de datos NoSQL
avanzada

Tema 3 - Despliegue de aplicaciones web

36
DESPLIEGUE DE LAS APLICACIONES WEB

Plataforma como servicio
• Existen otros proveedores de PaaS que
ofrecen otros servicios:


Heroku



Google App Engine



Appfog



CloudFoundry



OpenShift



Muchos más…
Tema 3 - Despliegue de aplicaciones web

37
DESPLIEGUE DE LAS APLICACIONES WEB

Plataforma como servicio
• Cada proveedor ofrece diferentes funcionalidades
• Algunos ofrecen algunas tecnologías cerradas y otros
ofrecen tecnologías abiertas (típicamente open source)
• Algunos se ejecutan sobre proveedores de IaaS (AWS,
Rackspace) y otros tienen su propia infraestructura (Google
App Engine)
• Algunos permiten que instales su sistema de PaaS en tus
máquinas (ideal para desarrollo)
• Algunos permiten la ejecución de aplicaciones sin
modificar, otros requieren adaptaciones
Tema 3 - Despliegue de aplicaciones web

38
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Tipos de Alojamiento
• Computación en la nube


Infraestructura como Servicio



Plataforma como Servicio



Software como Servicio

• Arquitecturas escalables y tolerantes a fallos
Tema 3 - Despliegue de aplicaciones web

39
DESPLIEGUE DE APLICACIONES WEB

Software como servicio
• Software as a Service (SaaS)
• El software como servicio engloba aquellos
servicios que se ofrecen al usuario final vía web
• Desde un punto de vista técnico, muchos servicios
del Platform as a Service se podrían considerar
como Software as a Service, pero con Software as
a Service se incide en que el usuario final usa el
servicio
Tema 3 - Despliegue de aplicaciones web

40
DESPLIEGUE DE APLICACIONES WEB

Software como servicio
• En este modelo es habitual que el
proveedor/desarrollador ofrezca un modelo
de pago por uso a los usuarios
• Ejemplos: Google Apps,
Microsoft Office 365, Salesforce

Tema 3 - Despliegue de aplicaciones web

41
DESARROLLO DE APLICACIONES WEB

Despliegue de las aplicaciones web
• Introducción

• Alojamiento tradicional
• Computación en la nube

• Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

42
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
• Las aplicaciones web tienen que atender a
todos los usuarios que la estén usando (aunque
sean muchos): escalabilidad
• Hay veces que hay muchos usuarios y otras
veces que hay pocos usuarios: elasticidad
• El hardware falla, pero la aplicación web tiene
que seguir prestando servicio a los usuarios:
tolerancia a fallos
Tema 3 - Despliegue de aplicaciones web

43
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
• Una arquitectura en la que el servidor web y la
base de datos están en el mismo servidor:


Arquitectura monolítica



Si falla la máquina, no se atiende a los usuarios (no
tolerante a fallos)



Si hay muchos usuarios, puede que la máquina colapse,
y no se atiende a ninguno (no escalable)



Poner una máquina muy potente sólo alivia el problema
temporalmente. Además, se estarían desaprovechando
recursos con pocos usuarios (no elástica)
Tema 3 - Despliegue de aplicaciones web

44
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura monolítica en AWS

Tema 3 - Despliegue de aplicaciones web

45
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
• Los proveedores de computación en la nube
ofrecen servicios para que las aplicaciones
web se desplieguen en arquitecturas
escalables, tolerantes a fallos y elásticas

Tema 3 - Despliegue de aplicaciones web

46
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

47
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

48
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

49
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

50
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

51
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

52
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
Arquitectura escalable

Tema 3 - Despliegue de aplicaciones web

53
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
• La arquitectura que se ha mostrado no hace
uso de una base de datos.
• Cuando se usa una base de datos, también
tiene que ser escalable y tolerante a fallos
• Se puede usar el servicio Amazon RDS que
ofrece una base de datos MySQL gestionada,
escalable y tolerante a fallos
Tema 3 - Despliegue de aplicaciones web

54
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

55
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos
• Una de las técnicas que se pueden usar para
aumentar la escalabilidad de una web es
utilizar una caché
• Una caché guarda en memoria la información
que se consulta a la bbdd con mucha
frecuencia, lo que reduce el tiempo de
consulta

Tema 3 - Despliegue de aplicaciones web

56
DESPLIEGUE DE APLICACIONES WEB

Arquitecturas escalables y tolerantes a fallos

Tema 3 - Despliegue de aplicaciones web

57

More Related Content

What's hot

Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
Yare LoZada
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
anibalsmit
 
Silabo gestión y administración web
Silabo   gestión y administración webSilabo   gestión y administración web
Silabo gestión y administración web
Edwin Mamani López
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
errroman
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p
 

What's hot (20)

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Servidores web o http
Servidores web o httpServidores web o http
Servidores web o http
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
Metodologias para el desarrollo de aplicaciones web
Metodologias para el desarrollo de aplicaciones webMetodologias para el desarrollo de aplicaciones web
Metodologias para el desarrollo de aplicaciones web
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
Metodologia web
Metodologia webMetodologia web
Metodologia web
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
 
Fcaps
FcapsFcaps
Fcaps
 
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
 
Silabo gestión y administración web
Silabo   gestión y administración webSilabo   gestión y administración web
Silabo gestión y administración web
 
Metodología WEB UWE
Metodología WEB UWEMetodología WEB UWE
Metodología WEB UWE
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
 
Requerimientos de usuario y del sistema
Requerimientos de usuario y del sistemaRequerimientos de usuario y del sistema
Requerimientos de usuario y del sistema
 
Modelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones webModelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones web
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del software
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 

Viewers also liked

Viewers also liked (13)

Desarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicDesarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
 
La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
 
WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015
 
El mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorEl mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesor
 
La priorización de historias de usuario (versión reducida)
La priorización de historias de usuario (versión reducida)La priorización de historias de usuario (versión reducida)
La priorización de historias de usuario (versión reducida)
 
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaTypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 

Similar to Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)

Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
campus party
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Efrain Criss
 
La Computación En La Nube
La Computación En La Nube La Computación En La Nube
La Computación En La Nube
Sulman809
 
Curso ofimática en la nube
Curso ofimática en la nubeCurso ofimática en la nube
Curso ofimática en la nube
pcland
 

Similar to Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web) (20)

Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Nuevas tendencias
Nuevas tendenciasNuevas tendencias
Nuevas tendencias
 
Capitulo 3 informacion en la nube
Capitulo 3 informacion en la nubeCapitulo 3 informacion en la nube
Capitulo 3 informacion en la nube
 
El Cloud Computing & Amazon Web Services
El Cloud Computing & Amazon Web ServicesEl Cloud Computing & Amazon Web Services
El Cloud Computing & Amazon Web Services
 
Profundiza u5
Profundiza u5Profundiza u5
Profundiza u5
 
Arquitectura de la nube (coud computig)
Arquitectura de la nube (coud computig)Arquitectura de la nube (coud computig)
Arquitectura de la nube (coud computig)
 
The azure platform TechDay2010
The azure platform TechDay2010The azure platform TechDay2010
The azure platform TechDay2010
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
 
La Computación En La Nube
La Computación En La NubeLa Computación En La Nube
La Computación En La Nube
 
La Computación En La Nube
La Computación En La Nube La Computación En La Nube
La Computación En La Nube
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nube
 
Programación web
Programación webProgramación web
Programación web
 
4 miguel alfaro fournier
4   miguel alfaro fournier4   miguel alfaro fournier
4 miguel alfaro fournier
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloud
 
Presentacion la arquitectura de la nube
Presentacion la arquitectura de la nubePresentacion la arquitectura de la nube
Presentacion la arquitectura de la nube
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Curso ofimática en la nube
Curso ofimática en la nubeCurso ofimática en la nube
Curso ofimática en la nube
 
Arquitectura de la nube
Arquitectura de la nubeArquitectura de la nube
Arquitectura de la nube
 

More from Micael Gallego

More from Micael Gallego (19)

Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
 
Como ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesComo ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicaciones
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
 

Recently uploaded

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (15)

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)

  • 1. DESARROLLO DE APLICACIONES WEB - TEMA 3 Despliegue de aplicaciones web Micael Gallego Correo: micael.gallego@urjc.es Twitter: @micael_gallego Blog: http://micaelgallego.github.io ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
  • 2. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Alojamiento tradicional • Computación en la nube • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 2
  • 3. DESPLIEGUE DE LAS APLICACIONES WEB Introducción • Las aplicaciones web tienen las siguientes características:  Se ejecutan en un servidor (físico o virtual), no en el dispositivo del usuario  Pueden atender a miles de usuarios simultáneos, no a uno sólo  Es muy habitual que se necesiten varios servidores para una única aplicación web (por escalabilidad y tolerancia a fallos) Tema 3 - Despliegue de aplicaciones web 3
  • 4. DESPLIEGUE DE LAS APLICACIONES WEB Introducción • Las aplicaciones web tienen las siguientes características:  Se ejecutan dentro de un servidor web  Están formadas por código y por recursos (imágenes, documentos html, css, js, ficheros estáticos…)  Utilizan servicios adicionales: base de datos, servidor de correo, servidor de vídeo…  Requieren de un proceso de instalación y configuración (despliegue) en el servidor o servidores Tema 3 - Despliegue de aplicaciones web 4
  • 5. DESPLIEGUE DE LAS APLICACIONES WEB Introducción • Empresas de alojamiento o hosting  Son empresas que permiten a sus clientes que ejecuten sus aplicaciones web en sus instalaciones  Se encargan del suministro eléctrico, conexión a Internet, compra y mantenimiento de servidores, contol de acceso físico, etc…  Existe una amplia variedad de servicios que dependen del proveedor y de las necesidades del cliente Tema 3 - Despliegue de aplicaciones web 5
  • 6. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Alojamiento tradicional • Computación en la nube • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 6
  • 7. DESPLIEGUE DE LAS APLICACIONES WEB Alojamiento tradicional • Tipos de alojamiento  Compartido: Varias aplicaciones web conviven en la misma máquina física. El desarrollador no tiene control total sobre el servidor  Dedicado: El cliente dispone de una máquina física que controla completamente. Tema 3 - Despliegue de aplicaciones web 7
  • 8. DESPLIEGUE DE LAS APLICACIONES WEB Alojamiento tradicional • Tipos de alojamiento  Virtual: El cliente dispone de una máquina virtual que controla completamente y se ejecuta en un servidor físico compartido con otras máquinas virtuales Tema 3 - Despliegue de aplicaciones web 8
  • 9. DESPLIEGUE DE LAS APLICACIONES WEB Alojamiento tradicional • Existen muchos proveedores con diferentes servicios (compartido, dedicado y virtual) • Algunos de los más conocidos en España Tema 3 - Despliegue de aplicaciones web 9
  • 10. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Hosting compartido Tema 3 - Despliegue de aplicaciones web 10
  • 11. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Hosting compartido Tema 3 - Despliegue de aplicaciones web 11
  • 12. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Hosting compartido Tema 3 - Despliegue de aplicaciones web 12
  • 13. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Hosting compartido Tema 3 - Despliegue de aplicaciones web 13
  • 14. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Servidores dedicados Tema 3 - Despliegue de aplicaciones web 14
  • 15. ALOJAMIENTO TRADICIONAL Datos Enero 2012 Ejemplo 1&1 – Servidores virtuales Tema 3 - Despliegue de aplicaciones web 15
  • 16. ALOJAMIENTO TRADICIONAL Alojamientos nacionales • Hostalia  http://www.hostalia.com • Strato  https://www.strato-alojamiento.es/ • Arsys.es  http://www.arsys.es • Sync.es  http://www.sync.es Tema 3 - Despliegue de aplicaciones web 16
  • 17. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Alojamiento tradicional • Computación en la nube • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 17
  • 18. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • La computación en la nube (Cloud computing) es un concepto de marketing más que un concepto técnico • Cuando los proveedores utilizan la palabra cloud se refieren a la posibilidad de configurar y redimensionar los recursos que se usan de forma rápida y sencilla, o manualmente vía web o usando APIs REST • Dado que son tan dinámicos, se suele cobrar por tiempo de uso de los recursos (horas o minutos), sin tener que hacer un contrato previo con un tiempo de permanencia determinado. • Los recursos de computación en la nube suelen estar virtualizados, aunque en algunas ocasiones pueden ser máquinas físicas Tema 3 - Despliegue de aplicaciones web 18
  • 19. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Los proveedores de cloud computing ofrecen diversos tipos de servicios, tanto de bajo nivel como de alto nivel.  Servidores virtuales (instancias)  Gestión del sistema operativo que tendrán los servidores (imagen)  Sistema de copias de seguridad de los servidores completos  Balanceadores de carga entre servidores  Bases de datos administradas  Servicios de gestión de logs, monitorización, alarmas…  Plataforma auto-escalable para ejecución de aplicaciones Tema 3 - Despliegue de aplicaciones web 19
  • 20. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • La diferencia con los alojamientos tradicionales consiste en la elasticidad de los recursos • Desde una consola web o una app móvil se pueden activar o desactivar recursos (servidores, sistemas operativos, copias de seguridad…) • También se pueden gestionar de forma automática con APIs REST o librerías en lenguajes de programación • El software es verdaderamente escalable. Si necesita más recursos hardware, los puede conseguir de forma automática Tema 3 - Despliegue de aplicaciones web 20
  • 21. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Proveedores más conocidos Tema 3 - Despliegue de aplicaciones web 21
  • 22. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Los servicios ofrecidos por los proveedores pueden ser de diferentes niveles de abstracción:  Desarrolladores  Infraestructura como servicio (bajo nivel)  Plataforma como servicio (nivel medio)  Usuario final  Software como servicio (alto nivel) Tema 3 - Despliegue de aplicaciones web 22
  • 23. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Infraestructura como servicio  Infraestructure as a Service (IaaS)  Servicios:        Servidores (instances) Balanceadores de carga (load balancer) Gestión de sistemas operativos (images) Copias se seguridad de servidores Almacenamiento de datos Direcciones IP Servidores DNS Tema 3 - Despliegue de aplicaciones web 23
  • 24. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Plataforma como servicio  Platform as a Service (PaaS)  Plataforma para el despliegue de aplicaciones web:  La plataforma está diseñada para ser escalable de forma automática (sin intervención del desarrollador/administrador)  Dependiendo del proveedor existen plataformas para las tecnologías mas usadas: Java, PHP, Ruby, .NET..  La plataforma ofrece servicios adicionales como un servicio: Bases de datos, servidor de correo, bus de comunicaciones, etc… Tema 3 - Despliegue de aplicaciones web 24
  • 25. DESPLIEGUE DE APLICACIONES WEB Computación en la nube • Software como Servicio  Software as a Service (SaaS)  El software se ofrece como un servicio por Internet (vía web)  El usuario no instala el software, lo usa vía web  Generalmente se paga por uso o por número de usuarios  Normalmente están destinados al usuario final, aunque algunos servicios están orientados a desarrolladores  Ejemplos: Dropbox, GMail, GoogleDocs, Microsoft 365, iCloud, flickr Tema 3 - Despliegue de aplicaciones web 25
  • 26. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Tipos de Alojamiento • Computación en la nube  Infraestructura como Servicio  Plataforma como Servicio  Software como Servicio • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 26
  • 27. DESPLIEGUE DE LAS APLICACIONES WEB Infraestructura como servicio • Es la capa de abstracción más baja del cloud computing • Amazon Web Services es el proveedor más famoso y más completo en estos servicios • AWS ofrece un conjunto de servicios y un modelo de precios muy completo y que se ajusta a las necesidades de cada cliente Tema 3 - Despliegue de aplicaciones web 27
  • 28. INFRAESTRUCTURA COMO SERVICIO Amazon Elastic Compute Compute (EC2) • http://aws.amazon.com/es/ec2/ • Es el nombre comercial del servicio de servidores virtuales o instancias • Disponen de varios tipos de instancias según su “hardware”:       Instancias estándar: Pequeñas, medianas, grandes y extragrandes Instancias micro Instancias con gran cantidad de memoria Instancias con CPU de alto rendimiento Instancias en clúster (con redes de alta velocidad ente ellas) Instancias de GPU para clústeres Tema 3 - Despliegue de aplicaciones web 28
  • 29. INFRAESTRUCTURA COMO SERVICIO Amazon Elastic Compute Compute (EC2) • Otros servicios adicionales  Amazon Elastic Block Store: Disco duro de las instancias persistente. Sus datos permanecen cuando la instancia se apaga  Varias ubicaciones: El cliente puede elegir la ubicación para reducir la latencia a los usuarios de los servicios. Además, existen varias zonas de disponibilidad dentro de la misma ubicación para minimizar el impácto de las catástrofes  Direcciones Elastic IP: Por defecto Las instancias tienen IPs internas en la red de Amazon. Se puede asociar una IP pública a una instancia Tema 3 - Despliegue de aplicaciones web 29
  • 30. INFRAESTRUCTURA COMO SERVICIO Amazon Elastic Compute Compute (EC2) • Otros servicios adicionales  Amazon Cloud Watch: Servicio de monitorización de instancias con sistema de alarmas y gráficas de uso de recuros (memoria, CPU, red…)  Auto Scaling: Se pueden configurar reglas para que Amazon inicie más instancias cuando la carga de las existentes supere un umbral y volver a bajar cuando la carga disminuya  Elastic Local Balancer: Dispositivos que reparten las peticiones web a cada una de las instancias que se han creado con el escalado automático o manual Tema 3 - Despliegue de aplicaciones web 30
  • 31. INFRAESTRUCTURA COMO SERVICIO Amazon Elastic Compute Compute (EC2) • Otros servicios adicionales (software)  Imágenes de Instancias (AMI): Amazon permite la gestión de imágenes de las instancias (AMI), pudiendo crear y gestionar varias imágenes. Se puede iniciar una instancia con cualquier imagen. Se puede crear una imagen como una copia de seguridad de una instancia.  Software preconfigurado en las instancias:  Sistemas operativos: Windows y Linux (Red Hat, Ubuntu, Oracle, Debian, Fedora, Suse…)  Otro tipo de software: BBDD, Servidores web, Gestión de recursos, servidores de vídeo, etc… Tema 3 - Despliegue de aplicaciones web 31
  • 32. INFRAESTRUCTURA COMO SERVICIO Amazon Elastic Compute Compute (EC2) • Forma de pago  Instancias bajo demanda (on-demand) :  El usuario paga exclusivamente por el uso que hace de las instancias (se paga por horas)  Instancias reservadas:  El usuario puede reservar las instancias que quiera pagando una cantidad por adelantado para 1 o 3 años.  En las instancias reservadas el coste por hora es menor  Instancias Spot:  El usuario fija el precio al que está dispuesto a pagar una hora de cómputo. Amazon ofrece al usuario las instancias “que sobran” cuando están disponibles a ese precio en base a la oferta y la demanda Tema 3 - Despliegue de aplicaciones web 32
  • 33. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Tipos de Alojamiento • Computación en la nube  Infraestructura como Servicio  Plataforma como Servicio  Software como Servicio • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 33
  • 34. DESPLIEGUE DE LAS APLICACIONES WEB Plataforma como servicio • En el Platform as a Service (PaaS) se ofrece una plataforma para la ejecución de aplicaciones (servidores web, bases de datos, gestión de logs, monitorización, auto-escalado, etc…) • Los desarrolladores no se preocupan de la gestión de la plataforma, sólo se preocupan de su software • La ventaja fundamental es que es escalable y tolerante a fallos de forma automática • Cada proveedor ofrece unos servicios diferentes Tema 3 - Despliegue de aplicaciones web 34
  • 35. DESPLIEGUE DE LAS APLICACIONES WEB Plataforma como servicio • Servicios PaaS de Amazon  Amazon Elastic BeanStalk: Plataforma de ejecución de código Java y PHP escalable y elástica  Amazon Simple Notification Service (Amazon SNS): Envío de notificaciones SMS, Correo,…  Amazon Simple Queue Service (Amazon SQS): Servicio de comunicación basado en colas de los diferentes módulos de la aplicación Tema 3 - Despliegue de aplicaciones web 35
  • 36. DESPLIEGUE DE LAS APLICACIONES WEB Plataforma como servicio • Servicios PaaS de Amazon  Almacenamiento  Amazon Simple Storage Service (Amazon S3): Servicio de almacenamiento de ficheros  Amazon Rational Database Service (Amazon RDS): Base de datos MySQL u Oracle escalable  Amazon Simple DB: Base de datos NoSQL simple  Amazon DynamoDB: Base de datos NoSQL avanzada Tema 3 - Despliegue de aplicaciones web 36
  • 37. DESPLIEGUE DE LAS APLICACIONES WEB Plataforma como servicio • Existen otros proveedores de PaaS que ofrecen otros servicios:  Heroku  Google App Engine  Appfog  CloudFoundry  OpenShift  Muchos más… Tema 3 - Despliegue de aplicaciones web 37
  • 38. DESPLIEGUE DE LAS APLICACIONES WEB Plataforma como servicio • Cada proveedor ofrece diferentes funcionalidades • Algunos ofrecen algunas tecnologías cerradas y otros ofrecen tecnologías abiertas (típicamente open source) • Algunos se ejecutan sobre proveedores de IaaS (AWS, Rackspace) y otros tienen su propia infraestructura (Google App Engine) • Algunos permiten que instales su sistema de PaaS en tus máquinas (ideal para desarrollo) • Algunos permiten la ejecución de aplicaciones sin modificar, otros requieren adaptaciones Tema 3 - Despliegue de aplicaciones web 38
  • 39. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Tipos de Alojamiento • Computación en la nube  Infraestructura como Servicio  Plataforma como Servicio  Software como Servicio • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 39
  • 40. DESPLIEGUE DE APLICACIONES WEB Software como servicio • Software as a Service (SaaS) • El software como servicio engloba aquellos servicios que se ofrecen al usuario final vía web • Desde un punto de vista técnico, muchos servicios del Platform as a Service se podrían considerar como Software as a Service, pero con Software as a Service se incide en que el usuario final usa el servicio Tema 3 - Despliegue de aplicaciones web 40
  • 41. DESPLIEGUE DE APLICACIONES WEB Software como servicio • En este modelo es habitual que el proveedor/desarrollador ofrezca un modelo de pago por uso a los usuarios • Ejemplos: Google Apps, Microsoft Office 365, Salesforce Tema 3 - Despliegue de aplicaciones web 41
  • 42. DESARROLLO DE APLICACIONES WEB Despliegue de las aplicaciones web • Introducción • Alojamiento tradicional • Computación en la nube • Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 42
  • 43. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos • Las aplicaciones web tienen que atender a todos los usuarios que la estén usando (aunque sean muchos): escalabilidad • Hay veces que hay muchos usuarios y otras veces que hay pocos usuarios: elasticidad • El hardware falla, pero la aplicación web tiene que seguir prestando servicio a los usuarios: tolerancia a fallos Tema 3 - Despliegue de aplicaciones web 43
  • 44. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos • Una arquitectura en la que el servidor web y la base de datos están en el mismo servidor:  Arquitectura monolítica  Si falla la máquina, no se atiende a los usuarios (no tolerante a fallos)  Si hay muchos usuarios, puede que la máquina colapse, y no se atiende a ninguno (no escalable)  Poner una máquina muy potente sólo alivia el problema temporalmente. Además, se estarían desaprovechando recursos con pocos usuarios (no elástica) Tema 3 - Despliegue de aplicaciones web 44
  • 45. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura monolítica en AWS Tema 3 - Despliegue de aplicaciones web 45
  • 46. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos • Los proveedores de computación en la nube ofrecen servicios para que las aplicaciones web se desplieguen en arquitecturas escalables, tolerantes a fallos y elásticas Tema 3 - Despliegue de aplicaciones web 46
  • 47. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 47
  • 48. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 48
  • 49. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 49
  • 50. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 50
  • 51. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 51
  • 52. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 52
  • 53. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Arquitectura escalable Tema 3 - Despliegue de aplicaciones web 53
  • 54. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos • La arquitectura que se ha mostrado no hace uso de una base de datos. • Cuando se usa una base de datos, también tiene que ser escalable y tolerante a fallos • Se puede usar el servicio Amazon RDS que ofrece una base de datos MySQL gestionada, escalable y tolerante a fallos Tema 3 - Despliegue de aplicaciones web 54
  • 55. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 55
  • 56. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos • Una de las técnicas que se pueden usar para aumentar la escalabilidad de una web es utilizar una caché • Una caché guarda en memoria la información que se consulta a la bbdd con mucha frecuencia, lo que reduce el tiempo de consulta Tema 3 - Despliegue de aplicaciones web 56
  • 57. DESPLIEGUE DE APLICACIONES WEB Arquitecturas escalables y tolerantes a fallos Tema 3 - Despliegue de aplicaciones web 57