AyerAyerViernesViernes
Google App EngineGoogle App EngineFabian Ramirez ( aka @dokshor)Fabian Ramirez ( aka @dokshor)
http://www.dokshor.comhttp://www.dokshor.comhttp://www.ayerviernes.comhttp://www.ayerviernes.com
AyerAyerViernesViernes
żQue es Google App żQue es Google App Engine?Engine?
• Servicio de alojamiento de paginas webs.Servicio de alojamiento de paginas webs.
Servicio en la nube.Servicio en la nube.• Servicio prestado por Google de forma gratuita y Servicio prestado por Google de forma gratuita y
privada.privada.
Tenemos cuotas, nada es gratis 100% :)Tenemos cuotas, nada es gratis 100% :)
AyerAyerViernesViernes
żQue es Google App żQue es Google App Engine?Engine?
• Estas aplicaciones son fáciles de crear, mantener y Estas aplicaciones son fáciles de crear, mantener y utilizar al aumentar el trafico de nuestra aplicación.utilizar al aumentar el trafico de nuestra aplicación.
Podemos proporcionar a nuestra aplicación un Podemos proporcionar a nuestra aplicación un dominio propio o el subdominio appspot.comdominio propio o el subdominio appspot.com
• Podemos dejar nuestra aplicación de manera publica Podemos dejar nuestra aplicación de manera publica o privada para nuestra organización (Google Apps)o privada para nuestra organización (Google Apps)
AyerAyerViernesViernes
żQue es Google App żQue es Google App Engine?Engine?
• Nos permite utilizar diferentes lenguajes de Nos permite utilizar diferentes lenguajes de programación:programación:
JavaJava• PythonPython
Ruby + Java = jRubyRuby + Java = jRuby
AyerAyerViernesViernes
żQue es Google App żQue es Google App Engine?Engine?
• Para las aplicaciones pagadas, solo pagamos los Para las aplicaciones pagadas, solo pagamos los recursos adicionales que necesitamos consumir.recursos adicionales que necesitamos consumir.
No necesitamos configurar ningún servidor.No necesitamos configurar ningún servidor.• Las tarifas de Google son muy competitivas con el Las tarifas de Google son muy competitivas con el
resto del mercado.resto del mercado.
Controlamos el presupuesto diario de nuestra Controlamos el presupuesto diario de nuestra aplicación.aplicación.
AyerAyerViernesViernes
żQue es Google App żQue es Google App Engine?Engine?
• La base gratuita son 500MB de almacenamiento La base gratuita son 500MB de almacenamiento por mes.por mes.
El ancho de banda es el mismo que utiliza la red El ancho de banda es el mismo que utiliza la red Google de manera mundial.Google de manera mundial.
• Un promedio de 5.000.000 de visitas de tu Un promedio de 5.000.000 de visitas de tu aplicación por mes.aplicación por mes.
Pagamos solo los recursos que son extras.Pagamos solo los recursos que son extras.
AyerAyerViernesViernes
żQue brinda Google App żQue brinda Google App Engine?Engine?
• Almacenamiento permanente con funciones de Almacenamiento permanente con funciones de consulta, orden y transacciones,consulta, orden y transacciones,
Escalado automático y balanceo de cargaEscalado automático y balanceo de carga• API para autenticar usuarios y enviar correo API para autenticar usuarios y enviar correo
electrónico a través de las cuentas de Googleelectrónico a través de las cuentas de Google• Entorno de desarrollo local que simula Google App Entorno de desarrollo local que simula Google App
Engine en tu computador.Engine en tu computador.• Tareas programadas para activar eventos en Tareas programadas para activar eventos en
momentos determinados y en intervalos regulares.momentos determinados y en intervalos regulares.
AyerAyerViernesViernes
Servicios que nos brindaServicios que nos brinda
• Almacén de datosAlmacén de datos
Memcache (Cache de Datos)Memcache (Cache de Datos)• Extracción de URLS (Fetch urls)Extracción de URLS (Fetch urls)• Servicios de correo.Servicios de correo.
Manipulación de imágenes.Manipulación de imágenes.• Conexión con cuentas GoogleConexión con cuentas Google
AyerAyerViernesViernes
Almacén de datosAlmacén de datos
• Se almacena de forma distribuida.Se almacena de forma distribuida.
El motor de búsqueda y de transacciones ya viene El motor de búsqueda y de transacciones ya viene incluido por defecto.incluido por defecto.
• No nos tenemos que preocupar por el crecimiento No nos tenemos que preocupar por el crecimiento de nuestra aplicación.de nuestra aplicación.
• Soporta múltiples tipos de datos.Soporta múltiples tipos de datos.• No nos preocupamos de escalar, se lo dejamos a No nos preocupamos de escalar, se lo dejamos a
los expertos.los expertos.
AyerAyerViernesViernes
AyerAyerViernesViernes
AyerAyerViernesViernes
MemcacheMemcache
• Necesario si tenemos una aplicación escalable de Necesario si tenemos una aplicación escalable de alto rendimiento.alto rendimiento.
Sistemas complejos.Sistemas complejos.• Acelerar consultas al consultar el almacen de Acelerar consultas al consultar el almacen de
datos.datos.• Mayormente pagina principal o datos muy Mayormente pagina principal o datos muy
complejos de consultar.complejos de consultar.• Maximo de 1GB de almacenamiento.Maximo de 1GB de almacenamiento.
AyerAyerViernesViernes
MemcacheMemcache
AyerAyerViernesViernes
Extracción de URLsExtracción de URLs
• Comunicar con otras aplicaciones o APIs remotas.Comunicar con otras aplicaciones o APIs remotas.
Extraer contenido de paginas externas para luego Extraer contenido de paginas externas para luego ser procesadas.ser procesadas.
• Podemos utilizar los metodos PUT, HEAD, Podemos utilizar los metodos PUT, HEAD, DELETE.DELETE.
• Contacto con los hosts remotos que tu empresa Contacto con los hosts remotos que tu empresa bloquea por el cortafuegos.bloquea por el cortafuegos.
• Permite HTTP y HTTPS en nuestras solicitudes.Permite HTTP y HTTPS en nuestras solicitudes.
AyerAyerViernesViernes
Extracción de URLsExtracción de URLs
AyerAyerViernesViernes
Servicios de correoServicios de correo
• Enviar mensajes electrónicos a través de la Enviar mensajes electrónicos a través de la plataforma Gmail.plataforma Gmail.
Podemos adjuntar archivos.Podemos adjuntar archivos.• El correo electrónico sale con la cuenta registrada El correo electrónico sale con la cuenta registrada
en el App Engine.en el App Engine.• Estos correos no son considerados SPAM. (99% Estos correos no son considerados SPAM. (99%
recepción)recepción)• La velocidad de salida de estos, es de manera La velocidad de salida de estos, es de manera
instanstanea.instanstanea.
AyerAyerViernesViernes
Servicios de correoServicios de correo
• Costos muy bajos cuando sobrepasamos la Costos muy bajos cuando sobrepasamos la cuota.cuota.
Permite enviar copias ocultas.Permite enviar copias ocultas.• Nos permite enviar contenido en texto plano o Nos permite enviar contenido en texto plano o
HTML.HTML.• Automaticamente nos procesa las colas de los Automaticamente nos procesa las colas de los
correos. (UFFFFF).correos. (UFFFFF).• Control de excepciones en caso de errores.Control de excepciones en caso de errores.
AyerAyerViernesViernes
Servicios de correoServicios de correo
AyerAyerViernesViernes
Manipulación de imágenesManipulación de imágenes• Servidores de procesamiento de imagenes Servidores de procesamiento de imagenes
dedicados.dedicados.
Permite mejorar las imagenes mediente un Permite mejorar las imagenes mediente un algoritmo propio de Google.algoritmo propio de Google.
• Nos permite realizar tareas como:Nos permite realizar tareas como:• RotarRotar
VoltearVoltear• RecortarRecortar
Ajustar tamańo.Ajustar tamańo.
AyerAyerViernesViernes
Manipulación de imágenesManipulación de imágenes
AyerAyerViernesViernes
Manipulación de imágenesManipulación de imágenes
AyerAyerViernesViernes
Conexión con cuentas Conexión con cuentas GmailGmail
• Podemos autenticar usuarios en nuestro sistema Podemos autenticar usuarios en nuestro sistema de una manera muy facil con cuentas existentes de una manera muy facil con cuentas existentes en GMail.en GMail.
No es necesario crear una nueva cuenta en tu No es necesario crear una nueva cuenta en tu sistema.sistema.
• Ahorras el sistema de autenticación en tu Ahorras el sistema de autenticación en tu aplicación.aplicación.
Puedes asignar administradores al sistema a Puedes asignar administradores al sistema a través del API de uso.través del API de uso.
AyerAyerViernesViernes
Conexión con cuentas Conexión con cuentas GmailGmail
• Formularios de Login y Logout listos.Formularios de Login y Logout listos.• Una vez logeado tenemos acceso a la información Una vez logeado tenemos acceso a la información
básica del usuario.básica del usuario.• Millones de usuarios activos.Millones de usuarios activos.• Complejos sistemas de encriptacion propios.Complejos sistemas de encriptacion propios.• Muy fácil de utilizarMuy fácil de utilizar
AyerAyerViernesViernes
Conexión con cuentas Conexión con cuentas GmailGmail
AyerAyerViernesViernes
Limites gratuitosLimites gratuitos
• Podemos registrar hasta 10 aplicaciones por Podemos registrar hasta 10 aplicaciones por cuenta Gmail.cuenta Gmail.
• Una consulta puede devolver como máximo cada Una consulta puede devolver como máximo cada vez 1.000 resultados.vez 1.000 resultados.
• El tiempo máximo de ejecución de un proceso es El tiempo máximo de ejecución de un proceso es de 30 segundos.de 30 segundos.
• Estos limites son reseteados cada 24 horas.Estos limites son reseteados cada 24 horas.
AyerAyerViernesViernes
Gratuito VS EmpresarialGratuito VS Empresarial
AyerAyerViernesViernes
Gratuito VS EmpresarialGratuito VS Empresarial
AyerAyerViernesViernes
Gratuito VS EmpresarialGratuito VS Empresarial
AyerAyerViernesViernes
Gratuito VS EmpresarialGratuito VS Empresarial
AyerAyerViernesViernes
Gratuito VS EmpresarialGratuito VS Empresarial
AyerAyerViernesViernes
Pasos para crear una APPPasos para crear una APP
Tener una cuenta en Google.Tener una cuenta en Google.
Confirmación vía SMS.Confirmación vía SMS.
Registrar la aplicación.Registrar la aplicación.
Configurar el archivo app.ymlConfigurar el archivo app.yml
Realizar deployment.Realizar deployment.
AyerAyerViernesViernes
try pythontry python
AyerAyerViernesViernes
EjemploEjemplo
żQue framework usar?żQue framework usar?• Python --> gaeutilitiesPython --> gaeutilities
• http://gaeutilities.appspot.comhttp://gaeutilities.appspot.com//• Creación de la aplicación.Creación de la aplicación.• Programación de algo pequeńo.Programación de algo pequeńo.• Deployment de la aplicaciónDeployment de la aplicación
AyerAyerViernesViernes
Au Revoir!Au Revoir!
• GraciasGracias
Fabian Ramirez aka @dokshorFabian Ramirez aka @dokshorhttp://www.dokshor.comhttp://www.dokshor.com
Univ. Galileo 2010, Ciudad de Guatemala - GuatemalaUniv. Galileo 2010, Ciudad de Guatemala - Guatemala