El curso está estructurado en tres módulos:
El primer modulo te permitirá que conozcas el concepto de Cloud Computing (Computación en Nube) de forma profunda y no sesgada, así como los principales antecedentes y tecnologías afines que han propiciado su auge. Se abordan las tecnologías, herramientas, proveedores, estándares y paradigmas de computación involucrados en el Cloud. Se estudian algunos casos de éxito de la tecnología y se discuten tanto los principales modelos de servicio (IaaS, PaaS, SaaS y *aaS), como los modelos de despliegue (Cloud público, híbrido, on-premise y de comunidad) como las ventajas/inconvenientes de la externalización del almacenamiento y/o cómputo a un tercer proveedor.
El segundo módulo aborda los principales servicios de AWS (Amazon Web Services) para la creación de aplicaciones escalables y elásticas con aprovisionamiento dinámico de recursos y con gestión eficiente de datos en la nube. Para ello se cubre el servicio Amazon EC2, para el aprovisionamiento de máquinas virtuales, el servicio Amazon S3 para el almacenamiento de ficheros en la nube y el servicio Auto Scaling para la creación de flotas elásticas de máquinas virtuales que crecen y decrecen en función de reglas de escalado. Posteriormente se trata la gestión de bases de datos en la nube. Para ello trabajarás con el servicio Amazon RDS para el despliegue de sistemas gestores de bases de datos relacionales en la nube. Posteriormente, conocerás las bases de datos de tipo NoSQL y trabajarás con Amazon SimpleDB para desplegar bases de datos de tipo clave/valor en la nube de AWS.
El tercer módulo permite al alumno iniciarse en la arquitectura de aplicaciones elásticas y escalables en la nube. Se abordan las principales características y aspectos de diseño que toda aplicación Cloud debería idealmente cumplir. Además se presentan los servicios, herramientas y patrones de diseño que se pueden utilizar para cumplir dichos requisitos. Se tratan buenas prácticas para el desarrollo de aplicaciones en el Cloud, abordando esquemas de tolerancia a fallos, replicación y desacoplado de componentes. Todo ello para producir aplicaciones escalables que aprovechen las capacidades elásticas de la infraestructura de Cloud público.
Módulo 1: Introducción a Cloud Computing
- Definición(es) de Cloud Computing
- Relación con otros paradigmas de computación
- Modelos de despliegue
- Casos de éxito: Académicos y Empresariales
- Retos en la adopción
Módulo 2: Introducción a Amazon Web Services
- Panorámica de servicios en AWS
- Amazon EC2 (Elastic Compute Cloud), para el despliegue de máquinas virtuales (instancias)
- EBS (Elastic Block Store), para la gestión de volúmenes orientados a bloques
- Amazon S3 (Simple Storage Service), para el almacenamiento de ficheros en la nube
- Amazon ELB (Elastic Load Balancer), para crear balanceadores de peticiones entre instancias
- Auto Scaling, para la creación de flotas elásticas de instancias de cómputo
- Amazon RDS (Relational Database Service), para el despliegue de gestores de bases de datos relacionales en la nube
- Amazon SimpleDB, para la creación de bases de datos de tipos NoSQL en la nube
Módulo 3: Aplicaciones Cloud
- Características de las aplicaciones Cloud
- Servicios, herramientas y tecnologías para el diseño de aplicaciones Cloud
- Casos de estudio científicos, académicos y empresariales
- Patrones de diseño de aplicaciones Cloud