Actividad integradora
Competencia de la credencial:
Implementa entregas de programas computacionales de una forma rápida, segura y consistente, reduciendo el tiempo que toma llevar una solución de software al mercado final, utilizando la filosofía DevOps.
Instrucciones:
Fortalecerás tus conocimientos en el manejo de DevOps mediante la elaboración de una actividad integradora, la cual incluye el bosquejo del desarrollo de una aplicación basada en microservicios, implementando la filosofía DevOps y haciendo uso de las herramientas de desarrollo como GitHub, Docker, servicios de AWS, etc.
Para este proyecto necesitarás trabajar en el bosquejo y preparación del entorno de desarrollo, en donde se busca crear una aplicación para una organización o empresa y que pueda adaptarse para muchas situaciones en las que se requieren varios servicios (por ejemplo, escuelas, ciudades, museos, parques de diversiones, entre otros).
Se espera que realices un documento en el que indiques las necesidades específicas, el diseño basado en microservicios y la implementación del entorno de desarrollo.
- Escoge un proyecto a desarrollar. Si cuentas con la experiencia previa en un desarrollo con varios servicios con las características antes señaladas, considera trabajar con la adaptación de este proyecto a un modelo basado en DevOps. En caso contrario, si no cuentas con una experiencia previa en el desarrollo de aplicaciones, busca un cliente potencial o persona interesada que pudiera necesitar el desarrollo de una aplicación basada en microservicios.
Considera tener una entrevista con este cliente potencial para conocer sus necesidades.
- Integra la documentación previa a un desarrollo apoyado en los conceptos de análisis de requerimientos:
- En el caso de retomar un desarrollo previo, identifica, mediante un análisis de requerimientos funcionales, los elementos principales de cada requerimiento de tu desarrollo previo y conviértelo en un proyecto basado en microservicios.
Para esta etapa, el documento resultante es el llamado “análisis de requerimientos”. Para el diseño en microservicios, puedes utilizar la metodología de 12 factores.
- La entrevista con el cliente, donde se identifiquen los requerimientos de diseño y funcionalidad que se esperan de la aplicación. Genera el documento “análisis de requerimientos”, en el que identifiques los elementos principales para determinar la complejidad, la prioridad y las dependencias para el desarrollo de la aplicación.
Deberás dimensionar las características de la aplicación, basándote en microservicios. Puedes usar la metodología de los 12 factores.
- Esquematiza tu aplicación con base en el análisis previo para que tenga cadena de flujos (pipelines) y adecua el desarrollo al ciclo de vida en DevOps.
- Crea un repositorio en GitHub para administrar las versiones de tu proyecto, documenta su uso y cómo se desarrolla la aplicación. Analiza la posibilidad de implementar GitHub Actions con la finalidad de automatizar los flujos de trabajo en el control de cambios del desarrollo.
- Diseña y, en la medida de lo posible, implementa los microservicios que darán forma a la aplicación en contenedores de Docker. Recuerda que Docker Compose es una herramienta para ambientes de prueba y más adelante aprenderás cómo se despliegan las aplicaciones en ambientes de producción.
- Analiza e investiga de qué manera se adecuarán los servicios ofrecidos por AWS en tu desarrollo y determina, la viabilidad de usar AWS.
- Presenta el diseño de una solución que incluya los requerimientos del cliente, el análisis de la metodología DevOps con los 12 factores, GitHub y GitHub Actions, así como el uso de Docker. Crea una captura de pantalla con los archivos scripts creados para el diseño de la aplicación.
Criterios de evaluación:
- Realiza el análisis basado en microservicios bajo el modelo de los 12 factores.
- Elabora el reporte de la aplicación basado en el ciclo de vida de DevOps.
- Genera el análisis y el reporte del uso de GitHub y GitHub Actions.
- Realiza y captura evidencias del diseño de microservicios utilizando Docker.
- Realiza el análisis del uso de las herramientas de AWS.