La computación en la nube

Desarrollo de Aplicaciones en Internet

La computación en la nube

Desarrollo de Aplicaciones en Internet

Historia

  • Sistemas tradicionales: self-hosting (gestionado por uno mismo), managed-hosting (infraestructura gestionada por terceros).
  • Amazon Web Services abre al público en 2006.
  • Las primeras referencias al término son de 1996 (la nube como metáfora de internet).

Introducción

  • Servicios y recursos computacionales ofrecidos por terceros, escalables y disponibles bajo demanda.
  • Similar al consumo de electricidad o de agua.
  • Estimación de costes con la calculadora de AWS o la de Google Cloud Platform.

Definición

Características

  • Pool de recursos computacionales disponible para todos los clientes.
  • Virtualización a todos los niveles para maximizar la utilización del hardware.
  • Escalado elástico (en ambos sentidos) e inmediato según las necesidades.
  • Se paga por lo que se usa (por horas, minutos, GBs o MBs, por ejemplo).
  • Reducción de CAPEX (gastos de capital), pero en ocasiones también de OPEX (gastos operativos).
  • Acceso automático vía APIs web o SDK a todos los servicios.

Capacidad frente a demanda

X-as-a-Service

  • X puede ser infraestructura (IaaS), plataforma (PaaS), aplicaciones (SaaS), almacenamiento, bases de datos, logging, seguridad, mensajes, centros de datos, traducción automática, reconocimiento de objetos, etc.

Centros de datos

Centros de datos

  • Gran consumo eléctrico.
  • Eficiencia energética optimizada.
  • Estimaciones de 2016 para Google: 2.500.000 de servidores aprox.
  • Centros de datos submarinos o en plataformas marinas.

Tecnologías de código abierto

Proveedores de computación en la nube

  • Amazon Web Services
  • Windows Azure
  • Google Compute Engine
  • IBM SoftLayer
  • Rackspace

Tecnologías relacionadas

  • Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It works with a range of container tools, including Docker”

Tecnologías relacionadas

  • “A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.”

Tecnologías relacionadas

  • Computación de altas prestaciones: GPUs en la nube.