Las arquitecturas en la nube autoadministradas permiten al profesional centrar sus esfuerzos en desarrollar su aplicación, que es lo que realmente hará crecer su negocio, automatizando y simplificando a la mínima expresión las necesidades de administración del sistema. Para aprender sobre estas arquitecturas utilizaremos como ejemplo el servicio Google App Engine.
Google App Engine es un servicio de alojamiento de aplicaciones utilizado tanto por curiosos como profesionales, pequeños estudios de desarrollo o grandes empresas para alojar aplicaciones web, backends de aplicaciones móvil o multiplataforma, backends web de sistemas de internet de las cosas, servicios web de software como servicio, APIs web, etc. Además, puede ser utilizado fácilmente en conjunción con el resto de servicios de la nube Google Cloud Platform.
Este tipo de servicios permiten centrarse en el desarrollo de la aplicación sin necesidad de administrar los servidores, ofreciéndonos una alta disponibilidad y escalabilidad desde 0 instancias pagando únicamente por el uso real de la plataforma. Además, en el caso de GAE nos ofrece unas generosas cuotas de uso gratuitas, lo que lo hace ideal para el aprendizaje y realización de pruebas por profesionales, estudiantes e interesados en general.
El curso va dirigido a:
Se valorará tener conocimientos de:
El objetivo de este curso es formar al alumno sobre el paradigma de las arquitecturas en la nube autoadministradas, el desarrollo y alojamiento de aplicaciones web utilizando Google App Engine con Python 2.7 y las múltiples posibilidades de aplicación de dicha arquitectura y servicio en diferentes aplicaciones.
La metodología será principalmente práctica, estructurada alrededor de un proyecto principal para poder aplicar inmediatamente los conocimientos a un ejemplo real: el desarrollo de un blog propio.
Al finalizar la parte presencial del curso, el alumno podrá realizar un ejercicio práctico sobre otro ejemplo real, sencillo y de corta duración, que podrá corregir mediante una aplicación web de autoevaluación: el desarrollo de un portal de "wiki" (similar a Wikipedia).
Tras ello tendrá lugar una tutoría online donde los alumnos podrán poner en común dudas, problemas e impresiones y se discutirán las mejores formas de aplicar dicha arquitectura y servicios similares a sus intereses y necesidades reales.
● Introducción:
○ Introducción al curso y su proyecto central: desarrollo de un blog propio.
○ Introducción a la computación en la nube.
○ Introducción a las arquitecturas autoadministradas.
○ Introducción al servicio Google App Engine.
● "Hola mundo!": desarrollando mi primera aplicación.
● Estructura de una aplicación:
○ Archivos de configuración.
○ Frameworks y scripts de código de la app.
○ Contenido estático.
● Alojamiento y gestión de la aplicación:
○ Cómo se alojan y sirven las aplicaciones.
○ Métodos de despliegue de las aplicaciones.
○ Gestión de mis aplicaciones.
○ GAE: la consola de Google Cloud Platform.
● Servicios de almacenamiento en la nube:
○ Tipos de servicios de almacenamiento.
○ BBDD no-SQL: Google Cloud Datastore como ejemplo.
○ Memoria caché: Memcache como ejemplo.
○ BBDD para grandes archivos: Google Cloud Blobstore como ejemplo.
● Depuración y buenas prácticas de testeo:
○ Tests en local.
○ Depuración y revisión de logs.
○ Tests unitarios.
○ Tests de integración.
○ Buenas prácticas de testeo.
● Autenticación de usuarios:
○ Desarrollo de una solución de autenticación propia sencilla.
○ Ejemplo de autenticación de usuarios utilizando su cuenta de Google (GMail) en GAE.
● Gestión de imágenes:
○ Almacenar y servir imágenes.
○ Edición de imágenes.
● Programación de tareas:
○ Tareas programadas (tipo "cron").
○ Colas de tareas de tipo "push".
○ Colas de tareas de tipo "pull".
● Servicio de "logging" o registro de eventos.
● Buenas prácticas de uso y conocimientos avanzados:
○ Uso efectivo de los sistemas de almacenamiento de BBDD y memoria caché en conjunto.
○ Recibir y enviar emails desde una app.
○ Métodos de versionado efectivo.
○ Desarrollando arquitecturas de microservicios en la nube.
○ Inclusión de librerías externas.
○ Uso de otros frameworks web para Python como Django y Flask.
○ Cómo disponer de máquinas virtuales configurables autoadministradas: GAE Entorno Flexible como ejemplo.
● Otros servicios disponibles en la nube.
● Desarrollo de otras aplicaciones con ejemplos prácticos:
○ Servicios web basados en APIs web.
○ Backend para aplicaciones móviles o multiplataforma.
○ Aplicaciones web de soporte para sistemas de internet de las cosas ("IoT"), utilizando una Raspberry Pi como ejemplo.
○ Servicios web de visión artificial y reconocimiento de voz.
○ Bots conversacionales, utilizando bots para Facebook Messenger como ejemplo.
● Ejercicio práctico individual del alumno: desarrollo de un portal de "wiki" .
● Tutoría online grupal:
○ Puesta en común de los resultados de la autoevaluación del ejercicio práctico.
○ Resolución de dudas y problemas.
○ Consejos sobre el uso efectivo de las arquitecturas autoadministradas y servicios asociados según los intereses y necesidades concretos que propongan los alumnos.
El curso tiene una parte presencial tras la cual el alumno realizará de forma autónoma un ejercicio de evaluación propuesto. Posteriormente tendrá lugar la tutoría online grupal a través de videoconferencia.
Parte presencial:
Fechas: del 3 al 10 de abril de 2017
Horario: De lunes a viernes de 16:30 a 21:30 y sábado de 09.00 a 14.00 h y 16.00 a 19.00 h.
Horas: 38
Parte online:
Fecha: 19 de abril
Horario: de 17:00 a 19:00 (a acordar con los alumnos)
Marcos Manuel Ortega
Centro Tecnológico de La Rioja
Avda Zaragoza 21
Logroño
El curso es gratuito, financiado por el Gobierno de La Rioja. La inscripción no garantiza la obtención de plaza en el curso, en caso de tener más inscripciones que plazas se hará una selección de los alumnos. Los alumnos deberán confirmar su asistencia una vez seleccionados.