Inicio

Semestre 2021-10

Nombre del curso: Arquitecturas de Nueva Generación
Créditos: 4
Profesores: Dario Correal – Profesor Asociado – Universidad de los Andes
Ph.D.

 

Descripción

Este curso busca presentar a los estudiantes nuevos retos a los que se ve enfrentado un arquitecto de software en proyectos de tecnología que van más allá de los sistemas de información tradicionales. Dentro del tipo de proyectos a diseñar se encuentran las arquitecturas orientadas a servicios/microservicios basadas en mensajes, diseño y gestión de portafolios de APIs dentro de la organización, así como automatización de procesos – RPA y soluciones basadas en Blockchain.

El curso está estructurado en tres grandes módulos que introducen gradualmente los temas de interés. En el primer módulo, se estudia el diseño de portafolios de APIs, la coreografía y la orquestación de arquitecturas orientadas a servicios. El segundo módulo presenta la integración con herramientas para la automatización de procesos – RPA. En el tercer módulo se estudian arquitecturas de soluciones basadas en Blockchain.

Profesor: Darío Correal. Ph.D. en Ingeniería, Magíster en Ingeniería de Sistemas y Computación e Ingeniero de Sistemas y Computación, de la Universidad de los Andes. Profesor Asociado, investigador del grupo TICSw y subdirector académico del Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes.

Objetivos

Al finalizar este curso, se espera que los estudiantes estén en capacidad de:

  • Participar como arquitectos de software en proyectos que requieran diseños no convencionales
  • Establecer los requerimientos de calidad de aplicaciones que requieren manejo de eventos generados en tiempo cercano al real
  • Utilizar estilos de arquitectura orientados a servicios y microservicios, favoreciendo el bajo acoplamiento y la auto-adaptabilidad
  • Utilizar tecnologías informáticas apropiadas para experimentar y validar sus decisiones de diseño

Metodología

El curso gira alrededor de un proyecto de tamaño mediano, el cual es utilizado para introducir gradualmente los diferentes conceptos asociados a la elaboración de una arquitectura de solución, que contempla los elementos modernos de arquitectura vistos en el curso.

El curso está estructurado en tres grandes módulos que introducen gradualmente los temas de interés. En el primer módulo, se estudian los temas de arquitecturas orientadas a eventos y bajamente acopladas mediante la utilización de microservicios. El segundo módulo presenta las arquitecturas desplegadas en la nube sin servidor (serverless).  En el tercer módulo se estudian arquitecturas para tiempo real, arquitecturas para IoT y análisis de grandes volúmenes de información.

Cada módulo introduce y ejemplifica los estilos de arquitectura asociados a dichos conceptos.   Posteriormente, los estudiantes estudian tecnologías específicas para implementar dichas arquitecturas y realizan presentaciones en clase.  Finalmente se realizan diseños incrementales de la arquitectura de software del proyecto del curso. En cada uno de los módulos se debe implementar una parte del diseño del proyecto como prueba de concepto y validación de la arquitectura.  El estudiante debe asistir y participar de manera activa en las clases teóricas y desarrollar los laboratorios relacionados con el tema.

Evaluación

La evaluación está distribuida de la siguiente forma:

  • Parcial 1, 20%
  • Parcial 2, 20%
  • Dos entregas de validación de arquitectura, cada una de 25% para un total de 50% ( Diseño 15%, Implementación 10%)
  • Talleres 10%

 

NOTA: Para aprobar el curso es necesario obtener una nota de 3.0. No hay aproximaciones de notas inferiores a 3.0, es decir que 2.99 corresponde a 2.5.

Las notas definitivas del curso varían entre 1.50 a 5.00, en intervalos de 0.5 (por ejemplo 4.0, 4.5, 5.0)
Las aproximaciones se realizan de acuerdo a las siguientes reglas:
3:00 a 3.24 = 3.0
3.24 a 3.74 = 3.5
3.75 a 4.24 = 4.0
4.25 a 4.74 = 4.5
4.74 a 5.00 = 5.0

Para pasar el curso es indispensable lograr en el puntaje ponderado 3.00/5.00. No existe aproximación automática en la nota definitiva por debajo de 3.0. En particular, no hay aproximación a 3.00 de puntajes menores a esta nota (e.g., 2.99 no es 3.00, es 2.5). El curso se pierde con una inasistencia del 20%.

Nota: El único medio oficial de entrega de las tareas es sicuaplus. No se aceptan trabajos entregados fuera de horario al correo electrónico del profesor o del monitor.

Calendario

Semana Fecha Temas Actividades
1 Enero 22 Introducción
Arquitecturas Orientadas a Eventos
Arquitecturas Cloud
ProyectoParte I
Conformación Grupos
2 Enero 29 Arquitecturas Orientadas a Microservicios
Arquitecturas Orientadas a Servicios
Taller 1: Microservicios
Building microservices. Sam Newman.Capítulos:1-3-4y5
Microservices Patterns.Chris Richardson.Capítulos: 1-2y3
3 Febrero 5 Arquitecturas Orientadas a Microservicios Building microservices. Sam Newman. Capítulos: 6-7-8y9
Microservices Patterns. Chris Richardson. Capítulos: 4-5-6y7
4 Febrero 12 Arquitecturas Orientadas a Microservicios Building microservices. Sam Newman. Capítulos: 6-7-8y9
Microservices Patterns. Chris Richardson. Capítulos: 4-5-6y7.
5 Febrero 19 Arquitecturas Serverless Revisión avance de proyecto 1
Taller 2: Serverless
AWS Lambda in Action. Event-driven serverless applications. Danilo Poccia. Capítulos: 1-2-3-4y5
Serverless Architectures on AWS. Peter Sbarski. Capítulos: 1-2-3-5-6 y 7
6 Febrero 26 Arquitecturas Serverless Serverless Architectures on AWS. Peter Sbarski. Capítulos: 8-9y10
7 Marzo 5 Parcial 1
8 Marzo 12 Presentación Proyecto 1 Inicia Proyecto 2
9 Marzo 19 Festivo Arquitecturas Autoadaptables
10 Marzo 26 Semana de trabajo individual
11 Abril 2 Arquitecturas cercanas al tiempo real
Arquitecturas IoT
Taller 3: IoT
Streaming Data. Andrew Saltis. Capítulos 1 al 4.
12 Abril 9 Arquitecturas IoT
13 Abril 16 Arquitecturas Data Analytics Revisión avance proyecto 2
14 Abril 23 Blockchain
15 Abril 30 Parcial 2
16 Mayo 7 Presentación Proyecto 2

Bibliografía

 

  • Building Microservices 1st Edition, by Sam Newman (Author)
  • Real-Time Systems Design and Analysis: Tools for the Practitioner 4th Edition
  • Data Architecture: A Primer for the Data Scientist: Big Data, Data Warehouse and Data Vault 1st Edition
  • Microservices: Patterns and Applications: Designing fine-grained services by applying patterns, Lucas Krause
  • Event-Driven Architecture: How SOA Enables the Real-Time Enterprise 1st Edition
  • DevOps: A Software Architect’s Perspective (SEI Series in Software Engineering) 1st Edition