Introducción al Cloud Computing

Alberto Molina Coballes / @alberto_molina y José Domingo Muñoz Rodríguez / @Pledin_JD

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
iaas-paas-saas

Fuente: ad-hoc.net/blogs

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.

Algunos ejemplos

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.

Máquinas físicas
Máquinas virtuales
IaaS