2018-10

Semestre 2018-10

Nombre del curso: Arquitecturas de Nueva Generación
Créditos: 4
Profesores: Dario Correal – Profesor Asociado – Universidad de los Andes
Ph.D.
Horario:
Lunes 6:00 p.m. a 8:50 p.m.

 

Descripción

Este curso busca mostrar a los estudiantes los nuevos retos a los que se enfrenta 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 aquellos con requerimientos de tiempo cercano al real, arquitecturas para apoyar soluciones en IoT (Internet de las cosas), arquitecturas para soluciones en BigData y Data Analytics, y arquitecturas para soluciones que apoyan estrategias de despliegue ágil y continuo en la nube.

Este curso pretende mostrar a los participantes cómo un arquitecto de TI puede participar en equipos multidisciplinarios que apoyan el diseño de arquitecturas apropiadas para estos nuevos retos, basándose en estilos de arquitectura modernos como arquitecturas dirigidas por eventos (también conocidas como SOA 2.0) y microservicios. Adicionalmente, se espera que la arquitectura este mucho más ligada al despliegue de las soluciones mediante una estrategia de DevOps, que debe ser considerada desde el inicio mismo de la arquitectura.

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