Definición y análisis de Infraestructura como servicio y plataformas como servicio. Además de una breve comparativa entre las empresas que ofrecen este tipo de servicios.
Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS
1. ANÁLISIS DE SISTEMAS
RELEVANTES DE
CLOUD COMPUTING
EXISTENTES A NIVEL
DE IAAS Y PAAS
Trabajo Cloud Computing – 1º Máster en
Ingeniería Informática
Jorge Cañas Estévez
Jorge.canas@alu.uhu.es
2. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
1
3. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
2
Contenido
1 Introducción............................................................................................................................. 4
2 Estado del arte.......................................................................................................................... 5
3 Descripción de los sistemas de Cloud a nivel de IaaS y PaaS ........................................... 6
3.1 Infrastructure as a Service............................................................................................... 6
3.1.1 Amazon Web Services............................................................................................. 6
3.1.2 Google Compute Engine........................................................................................ 7
3.1.3 Microsoft Azure ....................................................................................................... 7
3.2 Platform as a Service........................................................................................................ 7
3.2.1 AWS Elastic Beanstalk............................................................................................ 7
3.2.2 Google App Engine................................................................................................. 8
3.2.3 Microsoft Azure ....................................................................................................... 8
3.2.4 Heroku....................................................................................................................... 8
4 Discusión y análisis de los sistemas de Cloud a nivel de IaaS y PaaS............................... 8
4.1 Análisis de los IaaS........................................................................................................... 8
4.2 Análisis de los PaaS........................................................................................................ 10
5 Conclusiones........................................................................................................................... 11
6 Bibliografía.............................................................................................................................. 11
4. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
3
5. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
4
1 Introducción
En los últimos años tanto el incremento de elementos que se pueden situar en Cloud
Computing, como la gente y compañías que hacen uso de estos sistemas se ha visto
incrementado enormemente. La tecnología de la virtualización, en la que se basa gran
parte de la computación en la nube, no es nada nueva (Eugenio Villar) ya que en los
60 ya se compartían recursos en un ordenador físico para dar servicio a varios usuarios,
compartiendo CPU, disco y otros recursos.
Los servicios que ofrece la nube, se pueden dividir en tres capas (Figura 1. Diferencia
entre cada capa de Cloud Computing). De mayor a menor control por parte del usuario
(donde el color azul representa la parte que administra el usuario y en gris el proveedor)
del sistema se situaría el Infraestructure as a Service (IaaS, infraestructura como
servicio) donde se podrían administrar aplicaciones, servidores, bases de datos,
seguridad y tiempo de ejecución. La siguiente capa sería la de Platform as a Service
(PaaS, plataforma como servicio), donde solo se administran las aplicaciones que se
ejecutan. Y por último estaría el Software as a Service (SaaS, software como servicio)
donde simplemente se usan aplicaciones que están en la nube, como correo,
almacenamiento de datos, etc.
Cada uno de los servicios está orientado a un grupo concreto de público, por ejemplo
el IaaS está orientado a los administradores de IT, que se despreocuparían del
mantenimiento hardware y podrían decidir qué sistemas operativos montar, los
tiempos de ejecución, las bases de datos, entre otras. En el caso del PaaS su principal
audiencia serían los desarrolladores para montar sus aplicaciones, despreocupándose
del mantenimiento de servidores, SO, tiempos de ejecución, escalado y rendimiento de
los equipos. Y por último el SaaS está orientado a los usuarios que buscan una
aplicación concreta como correo, paquete ofimático, calendarios, etc.
Figura 1. Diferencia entre cada capa de Cloud Computing
6. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
5
2 Estado del arte
Cada día crece la inversión en grandes centros de datos, el interés por parte de
gobiernos de formar sistemas de Cloud (como es el caso de FiWare en Europa) y la
ampliación en otros países de la infraestructura de grandes compañías (Facebook o
Google). Según un estudio realizado por Eclipse y otras compañías (Eclipse, 2014),
que se centra en el crecimiento del cloud computing entre los años 2008 y 2014, lanza
unos datos muy interesantes que son:
La industria de la computación en la nube ha crecido de unos 46.000.000$ a
unos 150.000.000$.
El 75% de los encuestados hacen uso de algún tipo de plataforma de cloud,
usando servicios como correo, almacenamiento de fotos, streaming de música,
calendarios, etc. Siendo Google, Amazon y Microsoft las plataformas más
usadas.
El 86% de las compañías usa más de un tipo de servicio en la nube, la mayoría
usando unos cuatro.
Más del 50% de la información tecnológica estará en la nube en los próximos
5 a 10 años.
En los próximos 5 años, el 43% de las nubes serán híbridas (que tiene tanto
una parte pública como privada).
El tipo de datos más almacenados son fotos (Figura 2. Tipo de datos más
almacenados en la nube).
Los datos son abrumadores y cada día son más usados para dar servicio a un mayor
grupo de gente debido al ahorro que supone en infraestructura, mantenimiento y otro
tipo de ventajas que proporciona la computación en la nube. A continuación se
procede a detallar los proveedores más destacados en esta tecnología.
Figura 2. Tipo de datos más almacenados en la nube
7. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
6
3 Descripción de los sistemas de Cloud a nivel de IaaS y PaaS
Dentro de los sistemas de Cloud Computing más relevantes en cuanto a IaaS y PaaS
se pueden encontrar las compañías Amazon Web Services, Microsoft y Google, cada
una de ellas ofrece ambas soluciones, pero en el caso de Amazon, su IaaS se llama
Elastic Compute Cloud (EC2)/Simple Storage Service (S3) dependiendo de si se quiere hacer
uso de servidores o un sistema de almacenamiento respectivamente. En el caso de
Google su IaaS se llama Google Compute Engine. Si se da paso a los PaaS Amazon lo
llama Elastic Beanstalk y Google lo llama Google App Engine. En el caso de Microsoft, la
plataforma que da servicio tanto a IaaS como a PaaS se llama Azure. Además, por
añadir otra compañía más que solo se centra en la parte del PaaS se hablará de Heroku.
A continuación se describirán cada uno de ellos, junto con sus principales
características.
3.1 Infrastructure as a Service
A continuación se describirán algunos de los servicios que ofrecen cada uno de los
proveedores a día de hoy, ya que cada compañía lanza nuevas funcionalidades con
bastante frecuencia.
3.1.1 Amazon Web Services
Amazon Web Services (Amazon, 2016) o AWS a partir de ahora, es una plataforma de
computación en la nube, que ofrece una gran cantidad de servicios y que crecen día a
día para facilitar la labor de despliegue, escalado, mantenimiento, etcétera de
servidores. Amazon se puede considerar como la pionera en ofrecer este tipo de
servicio.
Entre los servicios que cuenta AWS se pueden encontrar máquinas virtuales (en inglés
virtual machines, VM a partir de ahora) que se pueden gestionar con sistemas
operativos (SO) distintos, sistemas Docker (tecnología de código abierto para crear,
probar e implementar aplicaciones distribuidas dentro de contenedores software),
ejecución de código en respuesta a eventos sin necesidad de ejecutar y mantener un
servidor. También ofrece almacenamiento en la nube, entrega de contenido, sistemas
de bajo coste para datos accedidos con poca frecuencia como Backups. Bases de datos
relacionales de varios tipos, bases de datos NoSQL (DynamoDB), sistemas de
almacenamiento caché. También permite crear redes virtuales privadas en la nube,
sistemas de conectividad dedicada, directa y privada para empresas (pudiendo usar IPs
privadas y públicas según se requiera) y un gran abanico de servicios que crecen día a
día.
La mayoría de los servicios están pensados para que solo se paguen por uso. Además
ofrece un servicio de auto-escalado y balanceo de carga, de forma que se pueda
mantener un nivel de capacidad según las necesidades del momento en prácticamente
todos sus productos.
8. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
7
3.1.2 Google Compute Engine
Google Compute Engine (Google Inc., 2016) es el servicio de IaaS de Google, que
permite la creación de VM bajo demanda, pudiendo usar una gran variedad de sistemas
operativos de los que ofrece Google o la comunidad, e incluso crear uno propio. Para
hacer uso del sistema, los usuarios tienen que autenticarse usando OAuth 2.0 y se
puede acceder a la plataforma desde distintas fuentes como la consola de desarrollador,
la API RESTful o por la interfaz de línea de comandos.
Actualmente ofrecen servicios de máquinas virtuales predefinidas, máquinas a medida
(beta), discos persistentes (almacenamiento en red) que son independientes de las VM,
discos SSD encriptados y conectados físicamente a las máquinas virtuales, balanceo de
carga global, procesamiento por lotes, facturación por minuto (a partir del minuto 10),
descuentos por porcentaje de uso y gestión de contenedores (Docker). Además ofrece
bases de datos MySQL, su BigTable (base de datos NoSQL) y otros servicios parecidos
a los de AWS. Por último ofrece servicios para Big Data, para analizar, ejecutar e
investigar grandes cantidades de datos.
3.1.3 Microsoft Azure
Azure (Microsoft, 2016) es la IaaS de Microsoft, al igual que Amazon y Google, ofrece
unas características similares, es decir, VM con Windows Server y Linux, bases de datos
SQL, redes virtuales y almacenamiento en la nube. También cuenta con una
infraestructura para escritorio/aplicaciones remotas, donde los usuarios pueden
trabajar desde cualquier dispositivo y tener acceso a sus aplicaciones de empresa que
se ejecutan en la nube. También cuenta con una herramienta para facilitar la creación
de soluciones de análisis predictivo y elementos de aprendizaje automático. Por último
incluye un mercado en el que se pueden comprar y vender aplicaciones SaaS y
conjuntos de datos, tanto de proveedores de datos comerciales como públicos
acreditados.
3.2 Platform as a Service
A continuación se añadirá una explicación más concreta de los servicios que cada
empresa usa para su PaaS, que también se puede apoyar en los servicios del IaaS.
Además se hablará de Heroku, que sólo funciona como PaaS al contrario que el resto.
3.2.1 AWS Elastic Beanstalk
AWS Elastic Beanstalk es el servicio que tiene Amazon para implementar, escalar
servicios y aplicaciones web desarrolladas en Java, .NET, PHP, Node.js, Python, Ruby,
Go y Docker. Una vez montada la aplicación Amazon se encarga del almacenamiento,
balanceo de carga, escalado automático y monitorización. Además se cuenta con la
parte de IaaS para dar un mayor soporte a la aplicación.
9. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
8
3.2.2 Google App Engine
Google App Engine (GAE a partir de ahora) es el PaaS de Google, que permite
ejecutar aplicaciones creadas en Java, Phyton, PHP, GO en instancias específicas de
Google, también lo llama sandbox (un sistema de aislamiento de procesos). En el caso
de Ruby, Node.js necesita usar una VM que habrá que configurar. Por otro lado GAE
permite el acceso sus elementos del sistema cloud, como DataStore, Google Cloud
Endpoints, mail, OAuth y un largo etcétera.
3.2.3 Microsoft Azure
Microsoft Azure, en su PaaS también ofrece la creación de aplicaciones web y API en
.Net, Node.js, PHP, Python o Java. También incluye integración con Studio Team
Services o GitHub. También se pueden generar aplicaciones para Android, iOS y
Windows, con conexión corporativa y conexión segura con datos locales, además de
poder generar y manejar datos de la aplicación sin conexión de red. Otra posibilidad
que ofrece es la de exportar e importar datos usando una API abierta. Por último se
pueden mandar notificaciones push nativas y configurables para, a través del uso de
etiquetas, poder mandar las notificaciones a todo el mundo o audiencias específicas.
3.2.4 Heroku
Al contrario que el resto de plataformas descritas, Heroku solo tiene la función de
PaaS, es decir, es una plataforma completamente orientada a los desarrolladores. Al ser
un servicio específico, proporciona herramientas, add-ons, botones especiales para
configuración, despliegue, añadir librerías, patrones y demás, todo en 1 simple click.
También cuenta con paquetes para compilar apps específicamente para Heroku con
frameworks específicos. Además proporcionan bases de datos Postgres y NoSQL de
tipo clave-valor. Todo esto hace que trabajar sea mucho más rápido y directo que con
otras plataformas como las descritas.
4 Discusión y análisis de los sistemas de Cloud a nivel de IaaS
y PaaS
En las próximas líneas se hará un breve análisis de cada servicio, intentando mencionar
las particularidades de cada uno.
4.1 Análisis de los IaaS
Si se comparan las distintas plataformas, en cuanto a IaaS (Aldiab, 2015) y teniendo en
cuenta el constante movimiento y generación de nuevos servicios, se puede presuponer
que van a contar con unas características muy parecidas, pero cada una intenta
diferenciarse del resto proporcionando algo distinto, en las siguientes líneas se
mostrarán unas tablas comparativas donde se verá qué proporciona cada
infraestructura y qué nombre recibe el servicio en alguno de los casos. En primer lugar
las tres IaaS proporcionan una gran variedad de servidores, unos con más o menos
CPUs y poca RAM, otros con más RAM que CPUs y una mezcla, cada uno orientado
10. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
9
a una función específica donde se necesite más una característica que otra. En general
la única diferencia final entre un proveedor y otro será el precio de la VM que se tratará
más adelante.
Si se pasa al sistema de almacenamiento y bases de datos, la siguiente tabla representa
esta información:
Almacenamiento Bases de datos
Tempora
l
Bloque Objeto Relacional Archivos NoSQL/Big
Data
AWS Si EBS S3 RDS Glacier DynamoDB
, EMR,
Kinesis,
Redshift
GCP Si Persistent
disks
Google
Cloud
Storage
Google
Cloud SQL
Nearline Cloud
Datastore,
Big Query,
Hadoop
Azure Si (D
drive)
Page
Blobs
Blobs de
bloque y
ficheros
BD
relacionales
- Windows
Azure
Table,
HDInsight
Como se puede ver, todos los proveedores ofrecen alguna solución para
almacenamiento y bases de datos, solo Azure no ofrece una solución para archivos que
apenas tengan accesos, por lo que para almacenar este tipo de archivos habrá que pagar
un poco más.
A continuación se muestra las posibles configuraciones sobre la red que permite cada
proveedor:
Red Virtual IP Pública Cloud Híbrida DNS Firewall/ACL
AWS VPC Si Si Route 53 Si
GCP Subnet Si Si Cloud DNS Si
Azure VNet Si Si DNS Si
Como se puede observar todas tienen una función para facilitar la creación de redes,
tanto públicas como privadas y proteger el acceso a estas mediante listas de acceso y
cortafuegos.
Por último si se comparan a nivel de precio de las VM, se obtienen bastantes
diferencias y parecidos. Todos los proveedores cobran por uso, lo que ahorra bastante
dinero si necesitas usar algo momentáneamente o por un tiempo muy limitado.
Después de este detalle el resto de proveedores tienen una política distinta, que se
enumeran a continuación:
AWS: facturación redondeada hacia arriba por hora con un mínimo de 1 hora.
También ofrecen la posibilidad de reservar instancias por 1 a 3 años donde el
precio se dará por el uso.
11. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
10
GCP: facturación por minuto redondeada hacia arriba, con un mínimo de 10
minutos, pero ofrece descuentos según el número de días del mes que se haga
uso de la instancia, pudiendo ahorrarse hasta un 40% del precio.
Azure: facturación por minuto redondeada hacia arriba y subscripciones
prepago de 12 meses que cuentan con un descuento sobre el precio normal.
En cuanto a redes, bases de datos, almacenamiento y demás servicios, cada proveedor
ofrece un precio, normalmente facturando según los GBs que tienen almacenados, el
número de comunicaciones, entradas en tablas, etc. Además, según lo que se use, se
pueden dar ciertos descuentos, como es el caso de Glacier de AWS para almacenar
archivos con pocos accesos.
Cabe mencionar que cada proveedor cuenta con alguna diferencia más en cuanto a la
gratuidad de algunos servicios que son:
AWS ofrece un año de subscripción donde se puede disfrutar de ciertas
características de forma gratuita, siempre sin llegar a unos límites y teniendo en
cuenta que algunos servicios se eliminan una vez terminado el tiempo.
En GCE se puede disfrutar de una evaluación de 60 días con 300$ de
presupuesto para gastar en los distintos servicios.
Azure ofrece también una evaluación, pero solo de 30 días y con 170$ de
presupuesto, pero ofrecen la posibilidad de seguir usando ciertos servicios de
forma gratuita.
4.2 Análisis de los PaaS
En el caso de los PaaS, hay bastantes diferencias entre cada proveedor ya que cada uno
cobra de una forma distinta y ofrecen distintos servicios que ya se comentaron y por
tanto no se comentarán de nuevo. La forma de facturación o lo que permiten en cada
PaaS es la siguiente:
AWS Elastic Beanstalk: no se cobra por el servicio, pero si por la instancia en
la que se corra, el almacenamiento, copias de seguridad y el sistema o sistemas
de base de datos que pueda usar. Además puede haber alguna sorpresa si no se
controla el escalado.
Google App engine: ofrece una serie de cuotas gratuitas, cuotas modificables
por el administrador y cuotas límite (Google Inc, 2016) que tiene Google para
proteger la integridad del problema. El resto de elementos como instancias,
tráfico de salida, almacenamiento, logs, etcétera se cobra por horas, meses o
GB/mes, según de qué se trate. En principio una aplicación en GAE es más
económica que en AWS o Azure.
Azure: tiene una versión gratuita para hacer pruebas y varias comprobaciones
ya que solo permite 60 minutos de CPU por día, a partir de ahí ofrecen varios
servicios de VM cuyo precio varía según la capacidad de la máquina.
Heroku: en el caso de Heroku, proporciona una instancia gratuita con
limitaciones, como dormir tras 30 minutos de inactividad y tener que dormir
al menos 6 horas diarias y corre en una instancia más básica que en el resto de
12. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
11
proveedores. A partir de ahí existe una opción intermedia que elimina las
restricciones y otros equipos más potentes. En principio, Heroku es más
sencillo y rápido de gestionar al estar mucho más orientado a programadores.
Junto a este punto, Heroku cuenta con una mayor ventaja, ya que si sólo se va
a usar para algo básico, su precio es el más económico. Sin embargo, las
herramientas del Marketplace se compran a parte y otras características como
la base de datos Postgres también hay que pagarlas si se quiere una cuota
mayor. Además en el caso de necesitar algo más de potencia el precio sube muy
rápido y la gestión del escalado de los dynos (instancias) hay que hacerlo de
forma manual.
5 Conclusiones
En este trabajo se han podido ver algunos de los proveedores de Cloud más relevantes
del mercado y se ha podido comprobar que proporcionan más o menos los mismos
servicios. También del estudio que se ha hecho, se ha comprobado que alguno de los
servicios que no disponían hace un año, como es el caso del DNS de Google, se ha
implementado hace poco, lo que hace ver que al ser un mundo tan competitivo tardan
poco en proporcionar los mismos servicios unos proveedores que otros.
Como al final terminan teniendo los mismos servicios, el decantarse un cliente por un
proveedor o por otro dependerá en muchas ocasiones de lo experimentado que sea,
siendo quizás una de las razones de elección la facilidad de uso que proporcione la
plataforma. Otra razón será el precio que le cueste mantener el sistema que desee, que
en muchas ocasiones dependerá del uso que se le dé al mismo, ya que cada empresa
proporciona una forma de facturación ligeramente diferente del resto.
Por último cabe mencionar que se ha hablado de Heroku porque ha sido una
plataforma que se ha usado para el despliegue de una página web en otra asignatura y
que gracias a la gratuidad del servicio básico se ha podido hacer con bastante facilidad.
6 Bibliografía
Aldiab, M. (4 de marzo de 2015). Cloud Academy. Obtenido de
http://cloudacademy.com/blog/public-cloud-war-aws-vs-azure-vs-google/
Amazon. (3 de febrero de 2016). https://aws.amazon.com/. Obtenido de
https://aws.amazon.com/es/?nc2=h_lg: https://aws.amazon.com/
Eclipse. (2014). www.eclipse.net.uk. Obtenido de
http://www.eclipse.net.uk/cms/images/dmImage/SourceImage/cloud-
computing-infographic-thumb.jpg
Eugenio Villar, J. G. (s.f.). http://www.adminso.es. Obtenido de
http://www.adminso.es/images/6/6d/Eugenio_cap1.pdf
Google Inc. (3 de febrero de 2016). Google App Engine. Obtenido de
https://cloud.google.com/appengine/docs/quotas
Google Inc. (3 de febrero de 2016). Google Compute Engine. Obtenido de
https://cloud.google.com/compute/
13. Análisis de sistemas relevantes de Cloud Computing
existentes a nivel de IaaS y PaaS Jorge Cañas Estévez
12
Microsoft. (3 de febrero de 2016). Microsoft Azure. Obtenido de
https://azure.microsoft.com/es-es/