Cloud Computing. Características
- Servicio disponible de forma automática y a demanda
- Accesible a través de la red
- Modelo multi-tenancy
- Se comparten los recursos con otros usuarios
- Debe garantizarse aislamiento y seguridad entre
usuarios
- Los recursos se agrupan en pools
- Elasticidad
- Pago por uso
Fuente: The NIST Definition of Cloud Computing
... as a Service (...aaS)
- Modelo de negocio no basado en la venta de licencias o
hardware
- Oferta de servicios con caracterísicas de cloud
- Habitualmente se definen tres capas o niveles: SaaS, PaaS e
IaaS
Software as a Service (SaaS)
Aplicación como servicio en la nube
- El usuario utiliza una aplicación a través de la web en
lugar de tenerla instalada en el propio equipo.
Aviso: No todas las aplicaciones web son SaaS, deben cumplir
con las características.
- Utilizado por cualquier usuario
- Ya lo usamos, pero se prevé que se use cada vez más
- Ejemplos: Servicios de Google, Office365
Platform as a Service (PaaS)
Plataforma de desarrollo web en la nube
- Utilizado por desarrolladores de software
- Se proporciona toda la plataforma de desarrollo y despliegue
de una aplicación al desarrollador
- Ejemplos: Google App Engine, Windows Azure, Heroku,
Openshift, CloudFoundry
Infrastructure as a Service (IaaS)
Infraestructura como servicio en la nube
- Utilizado principalmente por administradores de
sistemas
- Se proporciona principalmente capacidad de cómputo, redes y
diversos modos de almacenamiento
- Ejemplos: Amazon Web Services, Joyent, Windows Azure,
Rackspace Cloud Servers, Google Compute Engine
Tipos de despliegues
- Público: Una empresa ofrece servicios a terceros, encargándose
de toda la gestión del Cloud.
- Privado: Una organización configura sus propios recursos de
forma mucho más flexible en una nube. En inglés también se
denomina "On premise cloud"
- Híbrido: Se utilizan recursos de la nube privada o de una o
varias nubes públicas en función de las características de cada
caso o las necesidades puntuales que haya. Normalmente utilizan
una API común que permita una buena integración.
PaaS Público
Una empresa ofrece este servicio a terceros, proporcionando:
- Sencillez de mantenimiento ya que se encarga de la
instalación, configuración y actualización de la plataforma
- El desarrollador solo se preocupa de su aplicación
- Limitado por el software del proveedor. Por ejemplo: Google
App Engine solo tiene soporte para Python y Java
- En algunos casos es necesario hacer adaptaciones de código
para la plataforma
¿Para qué usar PaaS?
- La tecnología de PaaS viene a competir fuertemente con el
hosting tradicional, frente al que tiene importantes
ventajas.
- El usuario típico de PaaS es un desarrollador o pequeña
empresa que desea tener una aplicación web escalable y en pago por
uso y además no tiene el tiempo o los conocimientos técnicos de
sistemas para hacerlo por su cuenta.
- Es muy adecuado para aplicaciones web que utilicen servidores
de aplicaciones y middleware muy extendidos (PHP, Ruby on Rails,
Django, etc.), pero no suele valer para cosas que se salgan de la
norma.
IaaS público
Una empresa ofrece este servicio a terceros,
proporcionando:
- Control completo sobre la instancia, pudiendo instalar
cualquier software
- El administrador es el encargado de la configuración,
actualización y mantenimiento de todo el software de la
instancia.
- Finalmente la seguridad, el aislamiento, la
confidencialidad de los datos y la disponibilidad de los
servicios dependen del proveedor de IaaS
- Usuario puede quedar cautivo del proveedor (Vendor
lock-in)
¿Para qué usar IaaS?
- Viene a competir fuertemente con servidores dedicados,
virtuales o físicos
- También es una tecnología a considerar en clustering
- Típicamente usada por cualquier empresa con departamento de
sistemas para gestionar sus propios servidores a medida
- Además se han incluído nuevas tecnologías de
almacenamiento y redes
- Lo que no pueden ofrecer los servidores dedicados o los
clusters tradicionales es ELASTICIDAD
Amazon Web Services
- Pionero y gran dominador en IaaS pública
- Gran variedad de servicios: EC2, S3, Glacier, CloudFormation,
RDS y un largo etcétera
- SDKs:
- Android
- iOS
- Java
- JavaScript
- .NET
- PHP
- Python
- Ruby
- APIs son estándares de facto
- Lleva la iniciativa en IaaS
Ejemplo de servicio en IaaS público
Servicio web de vídeo bajo demanda
Problema: Requitos de hardware muy variables con grandes picos y
valles
Alto coste en infraestructura tradicional
Solución: Clúster con un número de nodos variable en el
tiempo y que se ajuste a la demanda
- Se incluyen balanceadores para repartir la carga
- Se crean de forma automática nuevos servidores cuando se
precisa
- Cuando baja la demanda, se eliminan los servidores que
sobren.
Evolución de la infraestructura
En los siguientes diagramas se representan de forma muy simple
las principales diferencias entre la estructura clásica de máquinas
físicas o virtuales y la infraestructura en nube.