Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Multicloud
1. Sistemas multicloud: retos y oportunidades
Estado del arte y perspectivas de futuro
Carlos Canal
Cáceres, Mayo de 2014
Carlos Canal
Grupo GISUM
Universidad de Málaga
e-mail: canal@lcc.uma.es
http://www.lcc.uma.es/~canal
2. Sistemas multicloud. Mayo de 2014
Cloud Computing
Modelo de computación basado en
• conjunto de recursos compartidos y configurables
– redes, servidores, almacenamiento, servicios
• fácilmente accesibles a través de la red
• acceso ubicuo y bajo demanda
• rápidamente asignados y liberados
– con mínimo esfuerzo e interacción con el proveedor del servicio
(NIST, 2011)
3. Sistemas multicloud. Mayo de 2014
Orígenes y evolución
1950’s. Mainframes con terminales (remotos)
– time sharing, remote job entry (RJE)
1960’s. “Computation may someday be organized
as a public utility” (McCarthy)
1990’s. Virtual Private Networks (VPN)
– conmutación de redes, equilibrio de carga
2000’s. Virtualización (VirtualBox, VMware)
2000’s. Amazon EC2 (2006)
2010’s. Explosión del fenómeno cloud
4. Sistemas multicloud. Mayo de 2014
Tipos de clouds
• Cloud privado
– operado por una única organización para uso propio
• Cloud comunitario
– compartido por varias organizaciones con intereses similares
• Cloud público
– ofrecido por un proveedor (cloud vendor) al público en general
• Cloud híbrido
– combinación de dos o más clouds (públicos, privados…)
• Cloud heterogéneo
– formado por diversos tipos de servidores
• Cloud distribuido
– formado por servidores distribuidos geográficamente
5. Sistemas multicloud. Mayo de 2014
Modelos de servicio
• IaaS. Infrastructure as a Service
• PaaS. Platform as a Service
• SaaS. Software as a Service
• XaaS, *-aaS. Anything as a Service
– STaaS
– DBaS
– CaaS
– NaaS
– Maas
– PeaaS
– …
6. Sistemas multicloud. Mayo de 2014
Infrastructure as a Service
IaaS ofrece servicios básicos de:
• máquinas virtuales, con distintas configuraciones
• control y equilibrado de carga, autoescalado (hipervisor)
• almacenamiento en disco, bloques u objetos
• direccionamiento IP, firewall
• software básico preinstalalado
en donde el usuario instala y ejecuta sus aplicaciones
Proveedores
– Amazon EC2, Google Compute Engine, Microsoft Azure
– AT&T, HP, Oracle, IBM, …
– CloudStack (Datapipe), OpenStack (RackSpace), …
7. Sistemas multicloud. Mayo de 2014
Platform as a Service
PaaS ofrece:
• herramientas para crear aplicaciones web
– lenguajes de programación (Java, Python, Ruby, PHP,…)
– bibliotecas
– base de datos (MySQL, MongoDB,…)
– …
que después se ejecutan sobre la propia plataforma
Proveedores
– Google App Engine, Microsoft Azure Websites
– Heroku (Salesforce.com)
– Cloud Foundry (AppFog, Tier3, Pivotal)
8. Sistemas multicloud. Mayo de 2014
Software as a Service
SaaS ofrece:
• aplicaciones o servicios web
– de propósito general o específicos
– que se ejecutan en la plataforma del proveedor
– destinados a usuarios finales (GUI, navegador web)
– pero también accesibles a través de una API
Servicios
• Google Drive, Office 365, Dropbox
• Youtube, Flickr, Picassa
• Spotify, Grooveshark
• Wikia
• …
9. Sistemas multicloud. Mayo de 2014
Fortalezas y Oportunidades
• Eficiencia
– optimiza el uso de los recursos disponibles
– reduce costes medioambientales
– reduce el tiempo de llegada al mercado
• Economía de escala
– ofrece soluciones asequibles (pay-as-you-go o suscripción)
– reduce drásticamente la inversión inicial
– ajusta dinámicamente el coste al uso de los recursos
Las tecnologías cloud
– son una alternativa a los centros de datos de empresa
– resultan muy adecuadas para startups
10. Sistemas multicloud. Mayo de 2014
Debilidades y Amenazas
• Volatilidad
– mercado aún joven e inestable
– cualquier proveedor puede desaparecer a corto o medio plazo
– o cambiar significativamente sus políticas de negocio y facturación
• Heterogeneidad
– oferta de recursos similares de manera heterogénea
• sistemas propietarios; falta de estándares
• disparidad en lenguajes de desarrollo y bibliotecas
• infraestructura tecnológica y servicios ofertados
Las tecnologías cloud
– pueden ser causa de morir de éxito
– presentan serios problemas de vendor lock-in
11. Sistemas multicloud. Mayo de 2014
Vendor Lock-in
• Dependencia de un cliente respecto a los productos y
servicios ofrecidos por su proveedor
– elevados costes para cambiar de proveedor
– fragmenta el mercado y dificulta la libre competencia
• En sistemas cloud
– falta de estándares y disparidad de sistemas propietarios
• El vendor lock-in dificulta
– portabilidad
– interoperabilidad
– migración
el desarrollo de sistemas multicloud
12. Sistemas multicloud. Mayo de 2014
Vendor lock-in
• Diferencias en
– mecanismos de acceso (HTTP, REST, SOAP, línea comandos)
– APIs ofrecidas
• IaaS
– VM ofertadas y software preinstalado
– hipervisores (VMware, KVM, Xen, ... )
• PaaS
– lenguajes de programación y bibliotecas disponibles
– bases de datos y otras infraestructuras (Google Cloud DataStore)
• SaaS
– funcionalidad y semántica del servicio
– mecanismos específicos para servicios locales (Azure Service Bus)
– representación de los datos (XML, JSON)
13. MODELSWARD , Barcelona, February 20, 2013
Vendor Lock-in
Escenario
• Dependencias entre una app
y el proveedor cloud
1. entre componentes cloud y
el resto del sistema
2. entre componentes cloud y
los servicios de la plataforma
subyacente
3. entre componentes cloud
y servicios externos alojados
en clouds distintos
1
2
3
14. Sistemas multicloud. Mayo de 2014
Sistemas multicloud
• Orientados a la portabilidad, interoperabilidad, y migración
– integran diversas tecnologías para crear un mercado común
– eliminan o mitigan los riesgos asociados al vendor lock-in
Nivel 0. Sistemas monocloud específicos
– diseñados para ejecutarse en un cloud determinado (incl. estándar)
Nivel 1. Sistemas monocloud agnósticos
– portabilidad: la asignación se retrasa a etapas tardías de desarrollo
Nivel 2. Sistemas multicloud de topología estática
– interoperabilidad: formado por artefactos en clouds distintos
Nivel 3. Sistemas multicloud de topología dinámica
– migración: los artefactos pueden moverse de un cloud a otro
– monitorización
15. Sistemas multicloud. Mayo de 2014
Sistemas multicloud
• Gran cantidad de iniciativas
– falta de estándares
– inestabilidad
– trasladan el lock-in del cloud vendor al multicloud vendor
• Clasificación
– Estandarización
– APIs y middleware
– MDD
• Ámbito
– la mayoría para IaaS
– algunas incursiones en PaaS
16. Sistemas multicloud. Mayo de 2014
CloudStack
Apache Software Foundation (2013)
– originalmente Cloud.com y Citrix
• creación de clouds IaaS (públicos, privados o híbridos)
– estándar de código abierto
• arquitectura simple, aunque rígida
– 2 VM incluso en la misma máquina física
– Management Server: API RESTful y tb. compatible Amazon WS
– Cloud Infrastructure: hipervisor e infraestructura cloud
– hipervisores: XenServer, Oracle VM, VMware, KVM, vSphere, …
• sin demasiado respaldo industrial
– uso escaso como cloud público (p.ej. Datapipe)
17. Sistemas multicloud. Mayo de 2014
OpenStack
OpenStack Software Foundation
– originalmente Rackspace y NASA
– numerosos participantes: Red Hat, Oracle, IBM, VMWare, …
• creación de clouds IaaS con gran número de servidores
– estándar de código abierto (licencia Apache 2.0)
– portabilidad entre clouds
• arquitectura más compleja y difícil de instalar
– integración con tecnologías de almacenamiento y virtualización
– hipervisores: Xen, KVM, otros parcialmente
– segura y resistente
• autoescalado, equilibrado de carga, firewall, detección de intrusos
• mayor comunidad de usuarios y perspectivas
18. Sistemas multicloud. Mayo de 2014
jclouds
Apache Software Foundation
• toolkit y API multicloud IaaS de código abierto
– wrapper que abstrae de particularidades de los clouds
– portabilidad, interoperabilidad, migración dinámica
– interfaz Java; no precisa usar tecnologías cloud y WS (REST, etc.)
– bajo nivel, no hay noción de arquitectura o topología
• ComputeService: gestión de VMs (nodos), instalación de software…
• Blobstore: almacenamiento de datos clave-valor
• Clouds soportados
– +30: Google, Amazon EC2, Azure , HP, OpenStack, CloudStack, …
– amplia comunidad de usuarios
19. Sistemas multicloud. Mayo de 2014
OCCI
Open Cloud Computing Interface
Open Grid Forum (OGF, 2011)
– inicialmente Sun Microsystems, RabbitMQ y UCM
– +250 miembros: Rackspace, Oracle, OpenNebula, …
• especificación de API estándar para IaaS
– código abierto
– RESTful, HTTP
– integración, portabilidad e interoperabilidad multicloud
– despliegue, autoescalado, monitorización, …
• implementaciones para:
– Amazon EC2, CloudStack, OpenStack, jclouds, …
• iniciativa más bien académica
– no ha despertado el interés de los grandes proveedores
20. Sistemas multicloud. Mayo de 2014
Cloud Foundry Core
Cloud Foundry Foundation
– originalmente desarrollado por VMware
– CloudFoundry.com (Pivotal), CenturyLink (AppFog), Tier 3, …
• cloud PaaS virtual para el desarrollo de aplicaciones web
– estándar de código abierto (licencia Apache 2.0)
– precisa de middleware para la ejecución sobre otros clouds
• Amazon WS, Microsoft Azure, HP,…
– lenguajes: Java, Python …
– frameworks: Spring, Django, …
– bases de datos: MySQL, Postgres, MongoDB, …
• el middleware sobrecarga la ejecución (y el coste)
– se despliega "la planta con la maceta"
21. Sistemas multicloud. Mayo de 2014
Brooklyn
Apache Software Foundation
– originalmente desarrollado por CloudSoft
– precursor de CAMP
• biblioteca Java para aplicaciones distribuidas multicloud
– construido sobre jclouds
– portabilidad, interoperabilidad, migración
– despliegue, monitorización y adaptación dinámica
– cierto nivel de descripción arquitectónica y topológica
• panel de control
– interfaz gráfica, de comandos y REST
– almacenamiento de credenciales
– se elige proveedor(es) y se despliega con un solo clic
22. Sistemas multicloud. Mayo de 2014
Brooklyn: Conceptos
• Entidad
– componente de una aplicación (WAR, JBox, BD, cluster,…)
– atributos de configuración (localización, memoria, usr/pwd,…)
– sensores: auditan la entidad (latencia, CPU,…) y generan eventos
– efectores: actúan sobre la entidad (arranque, apagado,…)
• Política (regla de adaptación)
– se suscribe a sensores y actúa sobre los efectores
– pueden arrancarse y apagarse
– Enricher: genera eventos de alto nivel a partir de otros
• Aplicación
– contenedor jerárquico de entidades
– no hay representación explícita de conexiones
– define despliegue y políticas
24. Sistemas multicloud. Mayo de 2014
TOSCA
Topology & Orchestration Specification for Cloud Apps
Estándar OASIS (2013)
– comité de +70 miembros: IBM, Red Hat, CISCO, CapGemini,…
• especificación agnóstica de apps. (mono-)cloud complejas
– portabilidad (redefiniendo operaciones)
– arquitectura, topología, nodos (artefactos) y relaciones
– operaciones para despliegue, escalado y apagado de artefactos
– archivo CSAR (comprimido, XML)
– gran complejidad e interdependencias en el CSAR
– Winery: editor gráfico que ayuda a crear el CSAR
• Management Plan
– workflow: BPMN, BPEL,…
– describe el comportamiento operacional
– creación de VMs, asignación de artefactos…
25. Sistemas multicloud. Mayo de 2014
TOSCA
Conceptos
• Service Template
– describe arquitectura de la aplicación cloud
– tipos, topología y planes
• Types
– interfaces, propiedades,
capacidades y
requisitos
• Topology Template
– estructura
(nodos y relaciones)
• Planes
– comportamiento
– llama a operaciones de los nodos
27. Sistemas multicloud. Mayo de 2014
OpenTOSCA
Open Source Runtime Environment for TOSCA
Universidad de Stuttgart
– actualmente en desarrollo (v1.1, cierta inestabilidad)
– código abierto
• entorno de ejecución TOSCA
– interpreta el archivo CSAR
– admite planes en BPEL y (recientemente) YAML
– realiza las operaciones de despliegue en el cloud elegido
– ejecuta la aplicación como un WS sobre Apache Tomcat
• clouds soportados
– en principio cualquier IaaS
• otras implementaciones basadas en TOSCA
– IBM SmartCloud Orchestrator (anunciada en 2013), …
28. Sistemas multicloud. Mayo de 2014
Cloud4SOA
Cloud Interoperability Framework for SOA design,
deployment and distributed execution
– EU FP7-ICT (2010-2013). 2,730M€
– ATOS, CERTH, Cyntelix, Telecom Portugal, …
•Framework abierto de interoperabilidad semántica
– portabilidad a nivel PaaS para aplicaciones (mono-)cloud
•Modelo de recursos y servicios
– proporciona información QoS sobre distintos PaaS
•Discovery & matchmaking
– ayuda el proceso de decisión para el despliegue
•Repositorio
– define adaptadores para conseguir portabilidad cloud
31. Sistemas multicloud. Mayo de 2014
MODAClouds
Model-Driven Approach for Design and Execution
of Applications on Multiple Clouds
– EU FP7-ICT (2012-2015)
– ATOS, Polimi, SINTEF, Imperial College London, Siemens, …
•Entorno de desarrollo (IDE) y ejecución (mono-)cloud
– generación semi-automática de código
– portabilidad
– despliegue cloud agnóstico garantizando QoS
•Entorno de monitorización y auto-adaptación
– data collectors: IaaS, PaaS, SaaS
– data analysers: determinístico, estadístico (predicciones)
– C-SPARQL (consultas sobre flujos de datos RDF)
34. Sistemas multicloud. Mayo de 2014
CAMP
Cloud Application Management for Platforms
Estándar OASIS
– comité de +20 miembros: Oracle, Red Hat, Rackspace, Cloudsoft,…
– en desarrollo, aun muy inestable
– basado en REST
• Definición conceptual de recursos e interfaces para:
– construir, administrar, ejecutar, parchear y monitorizar aplicaciones
– portabilidad entre plataformas PaaS
– despliegue monocloud
– fomentar el desarrollo de herramientas
35. Recursos
• plataformas, ensamblados,
componentes, sensores,
planes, servicios, relaciones...
• identificados mediante URI
• accedidos con HTTP y JSON
Self Service API PaaS
• acceso y gestión de recursos
• no realiza la implementación
– se deja al proveedor PaaS
Sistemas multicloud. Mayo de 2014
CAMP
Self Service API PaaS
36. Sistemas multicloud. Mayo de 2014
CAMP
Planes y despliegue
Plan
• archivo YAML con metadatos que describe
– capacidades de una aplicación
– artefactos que la forman
– servicios para usar los artefactos
– relaciones entre artefactos y servicios
Platform Deployment Package (PDP)
• archivo (zip, tar…) que contiene
– plan
– artefactos
– certificados y credenciales
37. Sistemas multicloud. Mayo de 2014
Seaclouds
Seamless adaptive multi-cloud management of
service-based applications
– EU FP7-ICT (2013-2016). 2,190M€
– ATOS, UMA, UNIPI, Polimi, CloudSoft, Nuro Games
•Framework y tools para aplicaciones multicloud complejas
– modelado (arquitectura y requisitos QoS)
– planificación y despliegue (asignación de artefactos a clouds)
– monitorización y reconfiguración runtime para asegurar QoS
•Agility after Deployment
•promoción de estándares y tecnologías ya existentes
– TOSCA, MODAClouds, Brooklyn, jclouds
40. Reflexiones
Estandarización
Iniciativas
– CloudStack, OpenStack, OVF, OCCI, OGF, TOSCA, CAMP,…
• Fortalezas y oportunidades
– una interfaz común para todos los proveedores
– no se produce vendor lock-in
– permiten portabilidad e interoperabilidad
• Debilidades y amenazas
– poco impacto y/o estado preliminar de desarrollo
– los grandes proveedores no están interesados en la
estandarización
– no serán una solución a medio y corto plazo
– pueden consolidarse varios estándares
Sistemas multicloud. Mayo de 2014
41. Reflexiones
Middleware y APIs
Iniciativas
– CloudFoundry, OpenTosca, Clod4SOA, SOCCA, IBM AltoCumulus,
MODAClouds, SeaClouds, …
– OCCI, jclouds, Brooklyn, mOSAIC, …
• Fortalezas y oportunidades
– aíslan la aplicación de la plataforma y servicios subyacentes
– evitan o mitigan la mayoría de los inconvenientes del vendor lock-in
– abordan monitorización y migración
– soluciones efectivas y actualmente disponibles
• Debilidades y amenazas
– el efecto lock-in se desplaza del proveedor al API o middleware
– pueden comprometer eficiencia y coste (en particular middlewares)
Sistemas multicloud. Mayo de 2014
42. Sistemas multicloud. Mayo de 2014
Agradecimientos
• Grupo GISUM – Scenic
http://www.gisum.uma.es
Ernesto, Paco, Javi, Jose, Adrián, Samuel, Miguel, Antonio,…
• Seaclouds EU FP7-ICT Project
http://www.seaclouds-project.eu
• Slideshare.net
http:www.slideshare.net
• Wikia
http://multicloud.wikia.com
¡Gracias por vuestra atención!