MISW4406
DISEÑO Y CONSTRUCCION DE APLICACIONES NO MONOLITICAS

 

 

Nombre del curso: Diseño y construcción de de aplicaciones no monilíticas
Course Name: Design and construction of non-monolithic applications
Créditos: 2
Profesor: Juan Sebastián Urrego
Versión PDF Click Aquí


Descripción

En la industria TI actual, los retos de escalabilidad, fiabilidad, disponibilidad y desem- peño han h echo que las arquitecturas clásicas monolíticas no sean suficientes. Sin embargo, la introducción de nuevos patrones y tecnologías han hecho que podamos manejar volúmenes inimaginables de transacciones y datos como parte de nuestro día a día. Este curso tiene como objetivo introducir al estudiante en los principios básicos de diseño y desarrollo de soluciones no monolíticas y reactivas. Al final de este curso el alumno sera capaz de diseñar e implementar arquitecturas no monolíticas y reactivas, usando una filosofía de Diseño Guiado por el Dominio (DDD).

Tecnologías principales:
  • Event Brokers & event stores: Apache Pulsar
  • Bases de datos: MySQL 8
  • Mecanismo de CDC: Debezium
  • Lenguaje de programación: Python 3.10.x
  • Frameworks: Flask, FastAPI y ReactiveX
  • Protocolos de comunicación: REST, gRPC, GraphQL y RSocket
  • IDE: Gitpod con VisualStudio Code

En este curso aprenderás a:
  • Diseñar arquitecturas altamente escalables, fiables y disponibles no monolíticas y reactivas usando una filosofía de Diseño guiado por el dominio (DDD)
  • Usar herramientas, técnicas y servicios de software para desarrollar soluciones no monolíticas y reactivas.
  • Entender cómo la implementación de estas técnicas también impacta el equipo de desarrollo, cultura organizacional y qué patrones/técnicas pueden aplicarse para tener un sistema no monolítico mantenible.
  • Entender los patrones y anti-patrones comunes en el diseño e implementación de sistemas no monolíticos.

Metodología del curso
La evaluación se centrará en dos aspectos principales: El manejo conceptual y el aspec- to práctico. La evaluación de conceptos y aplicación de dichos conceptos fundamenta- les en situaciones o contextos reales, se realizará mediante 2 exámenes parciales indivi- duales y quices. La práctica de los conceptos aprendidos en la parte teórica, se realizará mediante el diseño y experimentación asociado a un proyecto desarrollado en grupo. Cada una o dos semanas hay un entregable del proyecto relacionado con lo aprendido en la semana/- módulo anterior. De esa manera se espera el desarrollo de un producto de forma incre- mental, desde el diseño y arquitectura hasta el despliegue del mismo.