Arquitectura de Microservicios. Spring boot y Kubernetes

Arquitectura de Microservicios. Spring boot y Kubernetes

Description:

Curso teórico basado en la experiencia profesional en la migración de arquitecturas monolíticas a arquitecturas operacionales basadas en microservicios. Es una secuencia de cursos donde en la introducción se abordarán que es realmente una arquitectura de micro-servicios en la practica, patrones, principios de desarrollo, herramientas y como y cuando implantarlo.

En efoque del curos será orientar la definición y desarrollo con el fin de simplificar una arquitectura que de por si es compleja siguiendo siempre una evaluación y ofreciendo alternativas justificadas para dar soporte a carácterísticas esenciales en la arquitectura de microservicios y siendo crítico con otras prácticas que añaden complejidad y no ofrecen valor funcional.

Se verá cómo Simplificar una Arquitectura de Microservicios

  1. Identificar Dominios Claros (Uso de DDD):

    • Usar Bounded Contexts para definir responsabilidades bien delimitadas, evitando servicios demasiado grandes o fragmentados.

  2. Adoptar Principios "You Aren't Gonna Need It" (YAGNI):

    • Evitar añadir funcionalidades o arquitecturas innecesarias desde el principio.

    • Diseñar los microservicios según las necesidades actuales, permitiendo iteraciones posteriores.

  3. Automatización de Procesos:

    • Automatizar despliegues, pruebas y monitoreo con herramientas como CI/CD, Kubernetes y observabilidad centralizada.

  4. Uso de Herramientas Estándar:

    • Emplear frameworks y soluciones probadas para reducir la carga de configuración, como Spring Boot, Spring Cloud, y soluciones nativas de Kubernetes (ConfigMaps, Secrets).

  5. Evitar el Sobre-Fraccionamiento:

    • Dividir los servicios solo cuando sea necesario, evitando microservicios demasiado pequeños que generan más problemas que soluciones.

  6. Estandarización:

    • Usar contratos API claros (ej., OpenAPI), convenciones de nomenclatura, y herramientas compartidas para reducir inconsistencias entre equipos.

Impacto de la Simplicidad

  1. Mayor Velocidad de Desarrollo:

    • La simplicidad permite a los equipos implementar cambios y nuevas funcionalidades más rápido.

  2. Estabilidad Operativa:

    • Diseños simples son más predecibles, más fáciles de monitorear y menos propensos a errores.

  3. Mejor Experiencia del Equipo:

    • Los equipos no se ven abrumados por una arquitectura compleja, lo que mejora la productividad y la moral.

  4. Éxito en el Largo Plazo:

    • Una arquitectura simplificada es más adaptable a futuros cambios y evita la acumulación de deuda técnica.


La simplicidad no implica sacrificar funcionalidad, sino diseñar con enfoque y claridad. Una implementación simplificada de microservicios:

  • Reduce la complejidad técnica.

  • Facilita la colaboración entre equipos.

  • Aumenta la velocidad y calidad de entrega.



Course Fee

$84.99

Discounted Fee

$13.00

Hours

4

Views

53