análisis de sistemas relevantes de cloud computing a nivel de iaas y paas

13
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 [email protected]

Upload: jorge-canas

Post on 22-Jan-2018

309 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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 [email protected]

Page 2: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

Análisis de sistemas relevantes de Cloud Computing existentes a nivel de IaaS y PaaS Jorge Cañas Estévez

1

Page 3: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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

Page 4: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

Análisis de sistemas relevantes de Cloud Computing existentes a nivel de IaaS y PaaS Jorge Cañas Estévez

3

Page 5: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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

Page 6: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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

Page 7: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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.

Page 8: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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.

Page 9: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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

Page 10: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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.

Page 11: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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

Page 12: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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/

Page 13: Análisis de Sistemas Relevantes de Cloud Computing a nivel de IaaS y PaaS

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/