Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiadependenciasmaven [2020/05/05 15:01] carlos.torres creado |
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiadependenciasmaven [2020/05/05 20:40] (actual) carlos.torres |
||
---|---|---|---|
Línea 9: | Línea 9: | ||
===== Escenario estandar de dependencias ===== | ===== Escenario estandar de dependencias ===== | ||
- | La siguiente imagen define el escenario estandar de dependencias que pueden ser utilizados en un microservicio. Posteriormente se describirá cada una deacuerdo al grupo al que pertenece: | + | La siguiente imagen define el escenario estandar de dependencias que pueden ser utilizados en un microservicio. Posteriormente se describirá cada una deacuerdo al grupo al que pertenece. |
{{:ada:howto:sicoferp:factory:migracionsicoferp:process:backend:dependencias00.png?400|}} | {{:ada:howto:sicoferp:factory:migracionsicoferp:process:backend:dependencias00.png?400|}} | ||
+ | ==== Clasificación de dependencias ==== | ||
+ | Se definen las siguientes clasificaciones de dependencias: | ||
+ | |||
+ | * Dependencias básicas | ||
+ | * Dependencias de traza | ||
+ | * Dependencias de clientes | ||
+ | * Dependencias de datos | ||
===== Dependencias básicas ===== | ===== Dependencias básicas ===== | ||
Son aquellas dependencias que deben estár presentes en todos los microservicios ya que su uso aplica la arquitectura desea en la fabrica de desarrollo. A continuación se define esas dependencias: | Son aquellas dependencias que deben estár presentes en todos los microservicios ya que su uso aplica la arquitectura desea en la fabrica de desarrollo. A continuación se define esas dependencias: | ||
+ | ==== Spring Boot DevTools ==== | ||
+ | Spring Boot DevTools((https://www.arquitecturajava.com/spring-boot-devtools-y-recarga-de-aplicaciones/)) es la herramienta de Spring Boot que nos permite reiniciar de forma automática nuestras aplicaciones cada vez que se produce un cambio en nuestro código. Utíl para la fase de desarrollo y pruebas. | ||
+ | ==== Spring Boot Actuator ==== | ||
+ | Spring Boot Actuator((https://openwebinars.net/blog/como-anadir-spring-boot-actuator-tu-proyecto/)) es una librería que nos proporciona herramientas de monitorización y administración de nuestra API REST de una manera bastante sencilla. | ||
- | ==== Servicio de configuración central - ConfigServerADA ==== | + | ==== Spring Cloud Config Client ==== |
- | Se encarga de centralizar y proveer remotamente la configuración a cada microservicio. Esta configuración se mantiene convencionalmente en un repositorio, lo cual permite gestionar su propio ciclo de vida y versionamiento. | + | Spring Cloud Config((https://www.baeldung.com/spring-cloud-configuration)) es el enfoque cliente / servidor de Spring para almacenar y servir configuraciones distribuidas en múltiples aplicaciones y entornos. |
- | === Ubicación === | + | Este almacén de configuración se versiona idealmente bajo el control de versión de Git y se puede modificar en el tiempo de ejecución de la aplicación. |
- | El código fuente está uicado en la siguiente url: [[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/ConfigServerADA|Ir al repositorio]] | + | |
- | === Modo de uso === | + | ==== Spring Cloud Netflix Eureka Discovery Client ==== |
- | Debe estar definido como una propiedad del archivo de configuración bootstrap.yml ó bootstrap.properties como se indica a continuación: | + | Eureka((https://blog.bi-geek.com/arquitecturas-spring-cloud-netflix-eureka/)) es un servicio REST, utilizándose principalmente en la nube de AWS, a la cuál está estrechamente ligado. Eureka se comporta como servidor, cuyo objetivo es registrar y localizar microservicios existentes, informar de su localización, su estado y datos relevantes de cada uno de ellos. Además, nos facilita el balanceo de carga y tolerancia a fallos. |
- | <code> | + | La dependencia cliente permite que los microservicios se registren automaticamente al arrancar su instancia. |
- | spring: | + | |
- | cloud: | + | |
- | config: | + | |
- | discovery: | + | |
- | enabled: true | + | |
- | service-id: co.ada.core.server.config | + | |
- | </code> | + | |
- | ==== Servicio de registro / descubrimiento - EurekaServerADA ==== | + | ==== Spring Web ==== |
- | Se encarga de proveer los endpoints de los servicios para su consumo. Todo microservicio se registrará automáticamente en él en tiempo de bootstrap. | + | Contiene los recursos necesarios (conjunto de dependencias) para el desarrollo web((https://www.adictosaltrabajo.com/2016/12/22/aplicaciones-web-con-spring-boot-capa-a-capa/)). |
- | === Ubicación === | + | ===== Dependencias de traza ===== |
- | El código fuente está uicado en la siguiente url: [[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/EurekaServerADA|Ir al repositorio]] | + | Son aquellas dependencias que permiten obtener infomración asociada al microservicio como: |
- | === Modo de uso === | + | * Estado |
- | Debe estar definido como una propiedad del archivo de configuración bootstrap.yml ó bootstrap.properties como se indica a continuación: | + | * Memoria |
+ | * Trazas de rendimiento | ||
+ | * Log de errores | ||
- | <code> | + | Se define las siguientes dependencias de traza: |
- | eureka: | + | |
- | client: | + | |
- | serviceUrl: | + | |
- | defaultZone: http://localhost:8761/eureka/ | + | |
- | </code> | + | |
- | ==== Servidor perimetral / exposición de servicios (Edge server) - ZuulServerADA ==== | + | ==== Zipkin Client ==== |
- | Servidor gateway en el que se expondrán los servicios a consumir. Todos los microservicios deben ser expuesto por este servidor por lo tanto deben registrar los path de rutas y deben ser únicos en todo el contexto de exposición de servicios de cada ambiente. | + | Zipkin((https://www.baeldung.com/tracing-services-with-zipkin)) es un proyecto de código abierto que proporciona mecanismos para enviar, recibir, almacenar y visualizar trazas. Esto nos permite correlacionar la actividad entre servidores y obtener una imagen mucho más clara de lo que está sucediendo exactamente en nuestros servicios. |
- | === Ubicación === | + | La dependencia cliente permite integrar el registro en el servidor Zipkin. |
- | El código fuente está uicado en la siguiente url: [[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/ZuulServerADA|Ir al repositorio]] | + | |
- | === Modo de uso === | + | ==== Spring for RabbitMQ ==== |
- | Cada Microservicio debe estar registrado en las rutas de reconocimiento del servidor como una sección similar a la indicada a continuación: | + | RabbitMQ es un servidor AMQP. Es decir acepta y reenvia mensajes. |
- | <code> | + | ===== Dependencias de clientes ===== |
- | zuul: | + | Son aquellas dependencias que proveen clientes para el consumo de servicios como Feign o RestController |
- | routes: | + | |
- | usuario: | + | |
- | service-id: co.ada.core.service.userold | + | |
- | path: /api/usuario/** | + | |
- | </code> | + | |
- | La inclusión de la ruta debe ser solicitada al administrador de rutas de configuración. | + | ==== OpenFeign ==== |
+ | Feign((https://github.com/OpenFeign/feign)) es un cliente java http ligero. Que se al stack Spring Boot para simplificar el consumo de los servicios. | ||
- | ==== Servidor de Trazabilidad - ZipkinServerADA ==== | + | ===== Dependencias de datos ===== |
- | Centraliza el proceso de trazas y log en los microservicios de forma centralizada. | + | Son aquellas relacionadas a la persistencia de la información o a la gestión y exposición de los datos. Entre ellas están definidas: |
- | === Ubicación === | + | * Spring Data JPA |
- | El código fuente está uicado en la siguiente url: [[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/ZipkinServerADA|Ir al repositorio]] | + | * RestRepository |
+ | * PostgresSQL Driver | ||
+ | * MySQL Driver | ||
+ | * Oracle Driver | ||
- | === Modo de uso === | + | El uso de estas dependencias dependerá del origen de datos. |
- | Cada Microservicio debe incluir la siguiente dependencia: | + | |
- | <code> | ||
- | <dependency> | ||
- | <groupId>org.springframework.cloud</groupId> | ||
- | <artifactId>spring-cloud-starter-zipkin</artifactId> | ||
- | </dependency> | ||
- | </code> | ||
- | Por defecto el servidor Zipkin se publica en el puerto 9411 | ||
[[ada:howto:sicoferp:factory:migracionsicoferp:process:backend|←Volver atrás]] | [[ada:howto:sicoferp:factory:migracionsicoferp:process:backend|←Volver atrás]] |