CJAVA
Desarrollo de
Microservicioss
Microservicio
con Spring Cloud
#CJavaNoPara #CJavaInternacional
CJAVA
(Java, Spring Boot, Spring Cloud, Docker y kubernetes, Design Patterns, CI/CD)
Desarrollo de Microservicios
Fundamentación: Unidad de Com- Requisitos:
Desarrollar aplica- petencia: Fundamentos de ar-
ciones distribuida Comprender e im- quitectura de aplica-
para nube requiere plementar solucio- ciones web o arqui-
reconocer y desarro- nes de software en tectura hexagonal.
llar una arquitectura nube usando arqui- Conocimientos
de microservicios, tectura de compo- de programación
implementando los nentes distribuida. orientada a obje-
principales patrones tos, funcional, y
que existen, usando Metodología: modular en Java.
Java, Spring Boot, Sesiones prácticas Conocimientos de
Spring Cloud y Doc- bajo marco teórico. base de datos rela-
ker a través de un Ejercicio de de- cionales y NOSQL.
caso práctico que sarrollo prácticos Conocimientos
será desarrollado modelamiento de de servicios REST
de manera progre- arquitectura bajo con Spring Boot.
siva en cada sesión. patrones conocidos.
Objetivos:
Desarrollar los conocimientos para implementar arquitectura de microservicios a nivel
empresarial usando Java y Spring Framework.
Implementar patrones de microservicios para soluciones distribuidas.
Reconocer la resiliencia de Microservicios.
#CJavaNoPara #CJavaInternacional
CJAVA
LO QUE APRENDERÁS:
• Principios y elementos para construir una arqui
tectura de microservicios.
• Patrones para la arquitectura de microservicios.
• Comunicaciones en una arquitectura de microser
vicios.
• Registro y descubrimiento para monitorear servi
cios a través de un Discovery Server.
• Implementar API Gateway para administrar el
tráfico de solicitudes.
• Separar la configuración del código de la aplica
ción con un Config Server.
• Balanceo de carga de las solicitudes.
• Implementar diferentes bases de datos relaciona
les y NoSQL por cada servicio.
• Patrones para Tolerancia a fallos.
• Contenerizar y gestionar aplicaciones.
• Concepto y aplicaciones de trazabilidad.
• Centralización de LOGs
• Comunicación asíncrona de microservicios usan
do Kafka (Patrón Saga).
HERRAMIENTAS QUE VAS A USAR:
• JDK 11 y 17.
• Spring / IDE IntelliJ con licencia / VSCode.
• Maven / Gradle.
• Spring: Spring Boot, Spring Cloud, Eureka Server,
Config Server, Spring Gateway, Spring Data
JPA, Spring Security, Spring Cloud Sleuth, Spring
Boot Admin, RestTemplate, Open Feign.
• Swagger, Resillence4j, Lombok, JWT, Oauth2
• MySql, PostgreSql, H2,Mongo DB Cassandra
• Open Zipkin (trazabilidad distribuida)
• Docker (Dockerfile, Docker compose) – Local y Re
moto
• Despliegue de microservicios en contendores AWS
• Git y Gitlab/Github
• Postman
#CJavaNoPara #CJavaInternacional
CJAVA
Esta es la arquitectura del Taller de Microservicio:
#CJavaNoPara #CJavaInternacional
CJAVA
COMPONENTES DE LA ARQUITECTURA PROPUESTA
DISCOVERY SERVER: Permite registrar, balancear y descubrir los servi-
cios.
EDGE SERVER: Genera una de entrada única para todas las APIs. La puer-
ta de enlace permite implementar seguridad y balanceo.
CONFIG SERVER: Externaliza o centraliza toda la configuración de la apli-
cación, incluidas las credenciales de la base de datos y la ubicación de la
red.
DISTRIBUTED TRACING SERVER: Permite implementar la centralización
de las trazas de las solicitudes a los microservicios para poder hacer segui-
miento.
CENTRAL MONITORING: Recopila estadísticas sobre operaciones indi-
viduales. Métricas agregadas en el servicio de métricas centralizadas, que
proporciona informes y alertas.
BALANCEO DE CARGA: Distribución eficiente del tráfico de red a múlti-
ples instancias del servicio.
RESILENCE4J: Componente que permite implementar el patrón Circuit
Breaker para la tolerancia a Fallos.
DOCKERIZACIÓN: Empaquetar y distribuir un servicio fácil y rápidamente
manteniendo completa independencia.
#CJavaNoPara #CJavaInternacional
CJAVA
“
PATRONES DE
MICROSERVICIO
A IMPLEMENTAR
EN EL TALLER
Patrones de descomposición: Descom-
posición por Capacidad de Nego-
cio, Descomposición por Subdominio.
Patrones de comunicación: Mensajeria, Invocación por Procedimiento Remo-
to, API Gateway, Backend para Frontend, Cliente de Descubrimiento, Servi-
dor de Descubrimiento, Circuit Breaker, Bulkhead, Reintentos.
Patrones de consistencia de datos: Saga, Dominio por Eventos, Agregación,
Recursos por Eventos.
Patrones para consultar datos: Base de Datos por Servicio, API Composition,
CQRS.
Patrones de despliegue: Simple Servicio por Host, Multiple Servicio por Host,
Servicio-por-contenedor, Servicio-por-VM.
Patrones de observabilidad: Agregación de Log, Métricas de Aplicación,
Auditoria de Logs, Trazabilidad distribuida, API Health check.
Patrones de preocupaciones transversales (Cross-Cutting): Chassis, Configura-
ción externalizadas.
Patrones de seguridad: Token de Acceso: JWT.
#CJavaNoPara #CJavaInternacional
CJAVA
INSTRUCTOR
Arquitecto de Soluciones Cloud sobre AWS.
Java Senior Developer en importantes empresas privadas y públicas.
Consultor de Sistemas en Soluciones de Integración con el estado.
Instructor Senior de Certificación Java Oracle.
Evaluador y Auditor de Proyectos FONDECYT.
Evaluador de Proyectos de Investigación Universidad Autónoma.
Integrante de Concejo Consultivo de Instituciones Educativas Privadas.
Java Evangelist desde el año 2010.
Director de La Comunidad de CJava.
#CJavaNoPara #CJavaInternacional
CJAVA
[Link] @[Link] @[Link].1
#CJavaNoPara #CJavaInternacional