Sunteți pe pagina 1din 47

CURSOS DE VERANO 2014

CLOUD COMPUTING: LA INFORMÁTICA


COMO SERVICIO EN INTERNET

LA PLATAFORMA GOOGLE CLOUD PLATFORM.


GOOGLE APP ENGINE

Pedro A. Castillo Valdivieso


Universidad de Granada
http://bit.ly/unia2014 1
Presentación

2
Presentación

3
Índice
Parte teórica
La plataforma Google Cloud Platform
Introducción a la plataforma Google Compute Engine
Introducción a Google App Engine
Ventajas de Google App Engine
Restricciones de Google App Engine
Servicios más importantes de los que dispone

Parte práctica
Instalación del SDK de Google App Engine
Crear la primera aplicación
Crear formularios
Aplicación con contenido estático
Usar servicios de Google
Entorno de ejecución PHP
4
Índice. Parte teórica

!  La plataforma Google Cloud Platform

Introducción a la plataforma Google Compute Engine

Introducción a Google App Engine

Ventajas de Google App Engine

Restricciones de Google App Engine

Servicios más importantes de los que dispone

5
Google Cloud Platform

La plataforma Cloud de Google.

Miles de kilómetros de fibra óptica.

Grandes redes informáticas.

Servicios de almacenamiento avanzados.

Cable de fibra óptica propio bajo el Océano Pacífico.

6
Google Cloud Platform

Servicios disponibles para la arquitectura de una aplicación:

!  Máquinas Virtuales
!  Plataforma administrada
!  Almacenamiento de blob
!  Almacenamiento por bloques
!  Almacén de datos NoSQL
!  Base de datos MySQL
!  Análisis de Big Data

7
Google Cloud Platform

Servicios ofrecidos:

!  App Engine: nos proporciona herramientas para el desarrollo de


nuestro código sin preocuparnos por las revisiones ni el
mantenimiento.
!  Compute Engine: que nos permite el uso de máquinas virtuales.
!  Cloud SQL y Cloud Datastore: Para obtener bases de datos
MySQL ó NoSQL sin esquema.
!  Cloud Storage: Nos proporciona almacenamiento flexible de objetos
con almacenamiento en la memoria caché perimetral global.
!  Google también nos permite utilizar su API para habilitar
rápidamente una amplia gama de funciones para la aplicación.

8
Niveles en el Cloud Computing

Servicios ofrecidos:

!  App Engine: nos proporciona herramientas para el desarrollo de


nuestro código sin preocuparnos por las revisiones ni el
mantenimiento.
!  Compute Engine: que nos permite el uso de máquinas virtuales.
!  Cloud SQL y Cloud Datastore: Para obtener bases de datos
MySQL ó NoSQL sin esquema.
!  Cloud Storage: Nos proporciona almacenamiento flexible de objetos
con almacenamiento en la memoria caché perimetral global.
!  Google también nos permite utilizar su API para habilitar
rápidamente una amplia gama de funciones para la aplicación.

9
Índice. Parte teórica

La plataforma Google Cloud Platform

!  Introducción a la plataforma Google Compute Engine

Introducción a Google App Engine

Ventajas de Google App Engine

Restricciones de Google App Engine

Servicios más importantes de los que dispone

10
Google Compute Engine

IaaS (Infraestructura como servicio)

Ofrece máquinas virtuales flexibles y autoadministradas alojadas en la


nube de Google.

Lanzar máquinas virtuales bajo demanda.

Máquinas virtuales basadas en Linux que se ejecutan en KVM.

Procesamiento a gran escala.

Cada máquina virtual se cobra por un mínimo de 10 minutos, seguido por


incrementos de 1 minuto.

11
Google Compute Engine

Los servicios que ofrece Google Compute Engine son (I)

!  Creación de máquinas virtuales con diferentes configuraciones:


!  Imagen de arranque de Ubuntu 12.04, CentOS 6.2, o imagen propia.
!  Creación de instancias de máquinas virtuales.

!  Mantenimiento y almacenamiento de datos en almacenamiento de


bloques persistente:
!  En Google Compute Engine se pueden montar discos persistentes que
mantengan el estado de las máquinas, los datos de estos discos se
conservan aunque la máquina virtual sufra algún error o se deje sin
conexión. Estos datos también se replican para tener más redundancia.

12
Google Compute Engine

Los servicios que ofrece Google Compute Engine son (II)

!  Administración del acceso de red a las máquinas virtuales:


!  La máquinas se pueden utilizar independientemente o conectándolas
para formar clúster de procesamiento.
!  Las máquinas virtuales se pueden conectar a Internet con direcciones
IPv4 estáticas o dinámicas.
!  Utilización de cortafuegos + aislamiento para proteger las instancias.
!  Creación de redes interna de máquinas virtuales.

!  Uso de varias herramientas y autenticación OAuth 2.0 para


administrar las máquinas virtuales:
!  Aprovecha las funciones de OAuth 2.0 para realizar la autenticación en la
API de RESTful a fin de crear y eliminar instancias, discos y otros
recursos.
!  Utilizar identidades de cuenta de servicio para autenticar las instancias
en otros servicios y eliminar la necesidad de insertar claves.
13
Google Compute Engine

Instancia es el término que se utiliza para nombrar a las máquinas


virtuales.

Cada instancia ejecuta el sistema operativo que decidamos.

El usuario puede especificar el número de CPUs, memoria RAM y otras


propiedades de la máquina.

Usar la herramienta de Google Compute Engine, el API de REST, o la


propia consola web.

Acceso mediante SSH.

Un proyecto puede tener una o varias instancias comunicadas entre sí.


14
Índice. Parte teórica

La plataforma Google Cloud Platform

Introducción a la plataforma Google Compute Engine

!  Introducción a Google App Engine

Ventajas de Google App Engine

Restricciones de Google App Engine

Servicios más importantes de los que dispone

15
Google App Engine (GAE)

Herramienta para el alojamiento de aplicaciones web escalables sobre la


infraestructura de Google.

Permitir al desarrollador web crear aplicaciones web escalables sin ser


un experto en sistemas.

Servicio de PaaS (Plataforma como Servicio).

Entorno de desarrollo que consiste en una abstracción del medio en el


que se ejecuta la aplicación.

El desarrollador solo tiene que usar las bibliotecas y recursos que le son
ofrecidos.

16
Google App Engine (GAE)

¿Por qué esta plataforma?

!  Más de 250000 desarrolladores.


!  Más de 250 millones de páginas servidas diariamente.
!  Más de 10000 aplicaciones.
!  Más de 62 millones de usuarios.

17
Pero, ¿por qué GAE?

¿Por qué esta plataforma?

!  Más de 250000 desarrolladores.


!  Más de 250 millones de páginas servidas diariamente.
!  Más de 10000 aplicaciones.
!  Más de 62 millones de usuarios.

18
Pero, ¿por qué GAE?

Porque abarcarlo todo es complicado.

Dificultades y complicaciones para mantener la disponibilidad del


servicio.

Costes que salen cuando quieres hacerlo todo:


!  Mantener el software actualizado
!  Precio de licencias
!  Mantenimiento
!  Ancho de banda y tráfico
!  Actualizaciones del hardware

19
¿Qué ofrece GAE?

SDK, herramientas.

Alta disponibilidad.

Tolerancia a fallos.

Balanceo de carga.

Servicios en la nube.

Desarrollo en varios lenguajes.

20
Google App Engine (GAE)

Carácterísticas (I):

!  Limita la responsabilidad del programador al desarrollo y primer


despliegue: GAE provee recursos computacionales dinámicamente

!  Toma control de los picos de tráfico: Si nuestro portal crece en


popularidad, no es necesario actualizar nuestra infraestructura
(servidores, BBDD).

21
Google App Engine (GAE)

Carácterísticas (II):

!  Ofrece replicación y balanceo de carga automática.

!  Fácilmente integrable con otros servicios de Google: Se pueden usar


componentes existentes y la librería de APIs de Google (email,
autenticación, pagos, etc.)

22
Google App Engine (GAE)

Carácterísticas (III):

!  Ofrece una plataforma completa para el alojamiento y escalado


automático de aplicaciones, consistiendo en:
!  Servidores de aplicaciones Python, Java, Go, PHP
!  La base de datos BigTable
!  El sistema de almacenamiento GFT

!  Como desarrollador sólo hay que subir el código a Google, lanzar la


aplicación, y monitorizar el uso y otras métricas.

23
Google App Engine (GAE)

Carácterísticas (IV):

!  Incluye librerías estándar de Python, Java, Go y PHP.

!  No todas las acciones se permiten (acceso a ficheros, llamadas al


SO, algunas llamadas de red).

!  Ejecución en un entorno restringido para permitir que las


aplicaciones escalen.

24
Google App Engine (GAE)

!  Estructura de componentes de la
plataforma.

!  Ejecución en el “sandbox”.

!  Acceso a los servicios de Google.

!  Énfasis en la seguridad.

25
Google App Engine

Facturación:
!  Hasta 25 aplicaciones gratuitas con 500 MB de almacenamiento y 5
millones de visitas al mes cada una.
!  Página de presupuestado y facturación de recursos:
https://developers.google.com/appengine/pricing?hl=es
!  Detalles sobre las cuotas en:
https://developers.google.com/appengine/docs/quotas?hl=es

26
Google App Engine

Parte gratuita:

!  ~ 5 millones de páginas servidas al mes


!  6.5 horas de CPU por día
!  1 GB almacenamiento
!  650K peticiones de URL al día
!  2000 destinatarios de email
!  1 GB de ancho de banda al día
!  100000 tareas en cola
!  650K mensajes XMPP por día

27
Índice. Parte teórica

La plataforma Google Cloud Platform

Introducción a la plataforma Google Compute Engine

Introducción a Google App Engine

!  Ventajas de Google App Engine

Restricciones de Google App Engine

Servicios más importantes de los que dispone

28
Ventajas del GAE

!  Una de las características más importantes es su fácil escalabilidad.

!  El servicio que ofrece se ajusta a medida de que el tráfico va


subiendo.

!  Facilidad para mantener y crear aplicaciones en AppEngine.

!  No hay que preocuparse de mantener ninguna infraestructura, solo


de diseñar y programar la aplicación.

29
Ventajas del GAE

Lenguajes disponibles:

!  Go: es un lenguaje desarrollado por Google. Es concurrente y está


muy orientado a la nube. Como principal problema, se encuentra en
fase experimental y los cambios son constantes, por lo que las
actualizaciones de Google traen inestabilidad a las aplicaciones
desarrolladas en este lenguaje.

!  PHP: es un lenguaje de programación de propósito general en el


lado del servidor. Es el más extendido en la Internet. Su integración
con Google App Engine aún se encuentra en fase de pruebas, por lo
que también ofrece cierta inestabilidad.

30
Ventajas del GAE

Lenguajes disponibles:

!  Java: es un lenguaje de propósito general, concurrente, orientado a


objetos y basado en clases.

!  Python: es un lenguaje de programación orientado a objetos e


imperativo. Su filosofía se basa en un código legible.

31
Ventajas del GAE

Modelo gratuito en el que dichas cuentas tienen:


!  un límite de 500 MB de almacenamiento permanente
!  suficiente ancho de banda y CPU para cinco millones de visitas
mensuales

Se pueden comprar cuotas adicionales.

Posibilidad de usar los métodos de almacenamiento de Google.

Soporte para diversos framewoks (en el caso de Python, soporta


CherryPy, Pylons, Flask y Django 0.96 y 1.2).

32
Ventajas del GAE

Utilización de memoria caché distribuida.

API para el envío de mensajes de correo electrónico.

Escalabilidad gracias a la utilización de instancias.

Integrable con otros servicios de Google.

33
Índice. Parte teórica

La plataforma Google Cloud Platform

Introducción a la plataforma Google Compute Engine

Introducción a Google App Engine

Ventajas de Google App Engine

!  Restricciones de Google App Engine

Servicios más importantes de los que dispone

34
Restricciones del GAE

Restricciones:

!  El acceso al sistema de archivos que usa AppEngine es de sólo


lectura, es decir, no se permite la escritura de archivos en el sistema.

!  Las aplicaciones no tienen acceso a Internet directamente. Si


quieren acceder a algún recurso deben usar el servicio que hay
preparado a tal efecto.

!  Ningún lenguaje de programación puede usar librerías externas que


no sean propias del lenguaje. Por ejemplo usar librerías C o tener
extensiones con código previamente compilado.

35
Restricciones del GAE

Restricciones:

!  Las aplicaciones tienen un límite de tiempo. Una aplicación iniciada


en un servidor, no puede tardar en responder una petición más de un
tiempo igual a 60 segundos.

!  En el modo gratuito sólo se pueden crear hasta 25 aplicaciones, que


se pueden registrar utilizando una cuenta de Google.

!  Solo se puede ejecutar código a través de consultas HTTP.

!  No soporta sesiones persistentes, solo sesiones replicadas a las que


además se les aplican ciertos límites.

36
Índice. Parte teórica

La plataforma Google Cloud Platform

Introducción a la plataforma Google Compute Engine

Introducción a Google App Engine

Ventajas de Google App Engine

Restricciones de Google App Engine

!  Servicios más importantes

37
Servicios del GAE

!  Datastore

!  Blobstore

!  Memcache

!  URL fetch

!  Taskqueue

!  MapReduce

38
Servicios del GAE

!  Datastore
El almacén de datos que ofrece Google para AppEngine es un
almacén que utiliza un esquema basado en NoSQL.

Garantiza las características de Atomicidad, Consistencia,


Aislamiento y Durabilidad.

Es transparentemente escalable.

Se pueden realizar consultas usando la API de clases y funciones


que hay disponible en todos los lenguajes de programación.

Para el almacenamiento de datos, se usa en la actualidad High


Replication Datastore (HRD), en los que se replica los datos en
varios centros distribuidos por todo el planeta.
39
Servicios del GAE

!  Blobstore
Permite al usuario que su aplicación pueda almacenar objetos de
gran tamaño.

Estos objetos se llaman blobs.

Los blobs se suelen usar para almacenar archivos como


sustitutivo del sistema de archivos.

40
Servicios del GAE

!  Memcache
Un almacén en memoria extremadamente rápido que permite
guardar valores en caché asociados a una clave.

No ofrece ninguna garantía de permanencia de los datos.

Permite al desarrollador optimizar su aplicación.

41
Servicios del GAE

!  URL fetch
Como la aplicación no tiene acceso a internet, se usa este
servicio para hacer peticiones a direcciones URL y recibir la
respuesta.

El servidor no da la respuesta hasta que no termina de recibirla.

42
Servicios del GAE

!  MapReduce
Algoritmo muy útil para procesar grandes volúmenes de datos en
relativamente poco tiempo.

Permite paralelizar ese procesamiento entre los centros de datos.

Se pueden especificar los datos de origen, los manejadores y los


datos de salida.

Se ofrece una consola donde podemos ir viendo el estado actual


y qué trabajos lleva hechos.

43
Servicios del GAE

!  Taskqueue
Este servicio pone a la disposición del usuario una cola de tareas,
en la que se pueden realizar trabajos en segundo plano.

!  Backends
Se pueden reservar instancias que se estén ejecutando
continuamente sin apagarse ni escalar.

Estas instancias se denominan backends.

44
Servicios del GAE

!  Servidor de desarrollo
Google pone a disposición del usuario un servidor de desarrollo.

Es una réplica del servidor real de producción, pero mucho más


pequeño y menos potente.

Permite a los usuarios probar y desarrollar sus aplicaciones en un


entorno local, sin la necesidad de estar subiendo de forma
permanente el código de la aplicación al servidor real.

Se usa para pruebas de desarrollo, pero no aporta protección ni


escalabilidad.

45
Referencias y materiales adicionales
http://www.kumo.com.co/portal/index.php/pages/blog/175-ventajas-y-desventajas-del-cloud-computing
http://cloud-computing.findthebest.com/compare/5-15-17/Amazon-Inc-vs-Google-App-Engine-vs-Microsoft

http://en.wikipedia.org/wiki/Infrastructure_as_a_Service
http://en.wikipedia.org/wiki/Google_Compute_Engine
http://en.wikipedia.org/wiki/Google_App_Engine

Lenguaje YAML: http://www.yaml.org


Lenguaje de programació́n Go (web oficial): http://golang.org
Lenguaje de programación PHP (web oficial): http://www.php.net
Lenguaje de programación Java (web oficial): http://www.java.com

https://cloud.google.com/products/compute-engine/
https://cloud.google.com/customers/?hl=es-NI

https://developers.google.com/appengine/
https://developers.google.com/appengine/features/
https://developers.google.com/appengine/docs/whatisgoogleappengine

https://developers.google.com/compute/docs/overview
https://developers.google.com/compute/docs/faq?hl=es
https://developers.google.com/compute/docs/?hl=es-ES
https://developers.google.com/compute/docs/overview?hl=es-ES

https://gae-php-tips.appspot.com 46
Índice
Parte teórica
La plataforma Google Cloud Platform
Introducción a la plataforma Google Compute Engine
Introducción a Google App Engine
Ventajas de Google App Engine
Restricciones de Google App Engine
Servicios más importantes de los que dispone

Parte práctica
Instalación del SDK de Google App Engine
Crear la primera aplicación
Crear formularios
Aplicación con contenido estático
Usar servicios de Google
Entorno de ejecución PHP
47

S-ar putea să vă placă și