- 1

Transición de programador empírico a arquitecto de software
02:46 - 2

Análisis de licitaciones con inteligencia artificial
08:48 - 3

Monorepositorios como herramienta de gestión de código fuente
13:00 - 4

Reglas de control de versiones en monorepositorio con trunk-based
05:58 - 5

Behavior Driven Development para alinear equipos técnicos y de negocio
09:25 - 6

Notación estándar C4 para diagramas de arquitectura
08:00 - 7

Generadores de sitios estáticos para documentación de proyectos
04:58 - 8

Uso de herramientas de IA para mejorar arquitectura de software
05:05 quiz de Creando Entornos de Software Saludables
Bounded Context y Context Maps para dividir microservicios
Clase 17 de 29 • Curso de Arquitectura de Software Aplicada
Contenido del curso
- 9

Estructura del archivo Architecture.md para proyectos de software
12:00 - 10

Domain-driven design para sistemas de comercio exterior
06:50 - 11

Técnicas pre-mortem y cinco why para prevenir fallos en sistemas
03:58 - 12

Técnicas de conversación e intervención directa en arquitectura
02:49 quiz de Siguiendo una Arquitectura Limpia
- 19

Diferencias entre mensajes y eventos en arquitectura de servicios
03:36 - 20

Patrón productor consumidor vs fan-in y fan-out en microservicios
03:11 - 21

Manejo de excepciones en el patrón productor-consumidor
02:48 - 22

Patrón comparing consumers para procesamiento en tiempo real
02:28 - 23

Patrón Process Manager para integrar actividades humanas y sistemas
02:33 quiz de Patrones de integración
- 24

Patrones de persistencia: durable state vs event sourcing
08:15 - 25

Máquinas de estado finito en la capa de presentación de software
04:52 - 26

Técnicas SAST, DAST y pen testing para seguridad en software
01:36 - 27

Funciones fitness para evaluar arquitecturas de software
04:20 - 28

Observabilidad en sistemas con OpenTelemetry e ingeniería del caos
04:45
La arquitectura orientada a microservicios impulsa la especialización y el trabajo armónico entre partes independientes dentro de un sistema complejo. Adoptando prácticas de modelado de dominio y mapas de contexto, los equipos pueden dividir grandes problemas en subdominios, lo que facilita la escalabilidad y adaptación a nuevos requerimientos, sin perder el enfoque en la colaboración y eficiencia.
¿Cómo ayudan los microservicios a organizar sistemas complejos?
Los microservicios son comparables a técnicos especializados que colaboran en áreas distintas como la técnica, la psicología del deporte o la nutrición. Cada uno aborda desafíos diferentes, pero juntos posibilitan el rendimiento óptimo del sistema. Esta segmentación cobra especial importancia en instituciones grandes como el Banco Interamericano de Desarrollo, donde se deben tomar decisiones cruciales sobre las fronteras de cada microservicio.
¿Qué técnicas definen límites en microservicios?
- Bounded context: delimita modelos del dominio, permitiendo que entidades similares se especialicen en contextos diferentes.
- Context maps (mapas de contexto): ayudan a dividir modelos grandes en subdominios específicos, facilitando la gestión de problemas complejos como licencias, patentes o tributos en sectores de exportación e importación.
- El diseño de estos límites debe considerar la forma de interactuar entre contextos y modelos de dominio, promoviendo claridad y evitando que un modelo se torne ilegible o difícil de gestionar.
¿Cuáles son los patrones y relaciones clave entre equipos y contextos?
- Al principio, todos los contextos pueden estar mezclados como una "bola de lodo", pero definir particiones claras permite aplicar diferentes patrones de colaboración.
- Los patrones no solo involucran software, también la organización y dependencia entre equipos.
- Relación mutuamente dependiente: equipos que deben negociar cambios en los contratos constantemente.
- Relación libre: equipos que evolucionan de forma independiente aunque estén relacionados.
- Relación de dependencia principal: un equipo lidera y otro depende en la entrega y despliegue.
- Estas relaciones afectan los contratos, las velocidades de entrega, los despliegues y la evolución de los microservicios.
¿Cómo aplicar principios como "don't repeat yourself" en microservicios?
- El principio don't repeat yourself busca evitar la duplicidad de código, pero en microservicios a veces se repiten modelos o lógicas para favorecer la autonomía y menor acoplamiento.
- La clave está en no convertir cada microservicio en un monolito independiente, sino aprovechar los context maps y patrones para mantener la integración y flexibilidad.
- También es importante considerar latencias de red, transacciones distribuidas y eventos que cruzan sistemas, exigiendo patrones y diseños adecuados.
¿Qué recomendaciones hay para entornos de trabajo y testing en microservicios?
- Cuando múltiples equipos trabajan en paralelo, se recomienda usar entornos controlados con herramientas estandarizadas, como dev y test containers.
- Los entornos pueden ser compartidos en la nube, haciendo posible la integración y pruebas conjuntas sobre funciones completas, no solo unitarias.
- La seguridad y el control de estos ambientes son aspectos vitales que impactan en el ciclo de vida del software y su mantenimiento.
¿Tienes experiencias diseñando microservicios aplicando estos patrones o técnicas? Comparte tu perspectiva y enriquece el debate sobre cómo mejorar la integración y evolución de sistemas complejos.