Tercer hito: Despliegue de una aplicación en un PaaS

Descripción

Hacer un despliegue en la nube, usando una Plataforma como Servicio, del proyecto que se esté desarrollando.

Prerrequisitos

Haber alcanzado el 60% de los objetivos del tema correspondiente tras haber realizado los ejercicios propuestos. Haber superado el hito anterior de la práctica.

Explicación

El principal objetivo de esta práctica es familiarizarse con este tipo de infraestructura virtual que se puede usar de forma válida para un lanzamiento inicial de un producto web (o una aplicación que tenga un backoffice en la web) y, subsidiariamente, familiarizarse con las técnicas usadas para desplegar aplicaciones desde un repositorio web.

El despliegue real, y la definición del mismo, van un paso más allá del usado en integración continua en el uso de infraestructura virtual. No sólo hay que pasar los tests (y con ello haber definido las dependencias) sino que hay que levantar los servicios, el stack que se vaya a usar y también expresar las dependencias que hay entre ellos, la secuencia de despliegue. Un PaaS simplifica todo esto levantando los servicios, siempre que estén dentro de una pila o conjunto determinado, por sí solos.

También se plantea como objetivo el saber seleccionar el PaaS gratuito, o de pago pero gratuito durante un tiempo o para un nivel determinado, más adecuado para las necesidades de la aplicación que se va a hacer. El PaaS tiene que cumplir dos requisitos:

El objetivo secundario es poner en práctica las principales técnicas usadas hoy en día para despliegue de aplicaciones web u otro tipo de aplicaciones, basadas principalmente en interfaces REST con clientes basados en JS y, sobre todo, en marcos de aplicaciones tales como Dancer2, Ruby on Rails, Express o Django, dejando de lado servidores web específicos y de propósito general como Apache o nginx (que se pueden usar, en todo caso, en el primer caso para aplicaciones que incluyan múltiples lenguajes o marcos y en segundo, sobre todo, para contenido estático). Un tercer objetivo secundario es aprender a usar en producción GitHub y otras herramientas de desarrollo colaborativo y liberar el resultado del proyecto.

En muchos casos, un negocio emergente se podrá basar en un PaaS; en otros, se tendrá que usar un IaaS (o centros de procesos de datos tradicionales) para crear estos PaaS y, sobre ellos, un modelo de negocios. Sin embargo, a los efectos de esta asignatura y nuestro proyecto un PaaS se puede usar como una herramienta de prototipado rápido y de alojamiento económico de nuestro proyecto.

El énfasis de esta práctica es en el despliegue y eso es lo que se va a evaluar, pero no hay que perder de vista que es el tercer hito de un proyecto y a estas alturas ya debería de tener alguna funcionalidad mínima. Esto se tendrá en cuenta en la aplicación. También el resto de los hitos siguen presentes: se tendrá que seguir usando un sistema basado en issues e hitos, evitar ficheros que no tengan que estar en el repo, y todas las buenas prácticas que han sido objetivo desde el principio. Especialmente se tendrá en cuenta que la cobertura de las funciones usadas en el proyecto sea lo suficientemente alta.

Entrega de la práctica

Subir los fuentes a GitHub y hacer un pull request al documento que describa las prácticas y que se anunciará en la web de la asignatura.

En el propio repositorio de la aplicación, la explicación del proyecto deberá incluir los criterios usados para elegir el PaaS y sus diferentes opciones y una explicación de cómo funciona la aplicación y de los pasos llevados a cabo para crearla.

Se recuerda que la documentación entregada no es “la del tercer hito”, sino la documentación del proyecto en este punto de su desarrollo.

Valoración

Si la aplicación no funciona o no están los fuentes publicados, la práctica estará suspensa.