Giter VIP home page Giter VIP logo

prueba-tecnica-deiberv-devsu's Introduction

Prueba técnica desarrollo Devsu

El proyecto esta confortmado por 2 microservicios alojados en los repositorios que se indican a continuacion

Cada repositorio cuenta con su respectiva documentación interna, scripts de base de datos de cada uno.

Base de datos

Se adjunta scrips de base de datos para cada microservicio, se utilizó MySql como manejador de base de datos para ambos MS. Los scrips los podemos conseguir en el directorio base-datos.

Postman

Se adjuntan collecciones de postman utilizada para cada microservicio

Ejecutar en docker

Antes de ejecutar el proyecto en contenedores docker, es necesario primero generar los jar a ser desplegados. Para ello en en cada proyecto de debe de ejecutar el comando maven en cada proyecto

mvn package 

Este comando generará los jar necesarios en el directorio devsu-docker/ms-cliente-persona y devsu-docker/ms-cuenta-movimiento respectivamente.

Se cuenta con una orquetacion de contenedores utilizando docker compose que esta ubicado en el directorio devsu-docker de este repositorio.

Servicios con lo que se dispone en el docker-compose.yml

Variables de entorno definidas en el docker-compose.yml

  • mysql
    • MYSQL_USER: dbuser
    • MYSQL_PASSWORD: dbpass
    • MYSQL_ROOT_PASSWORD: dbpass
  • phpmyadmin
    • PMA_HOST: mysql
    • MYSQL_ROOT_PASSWORD: dbpass
  • ms-api-gateway
  • ms-cliente-persona
    • MYSQL_SERVER_IP: mysql
    • MYSQL_SERVER_PORT: 3306
    • MYSQL_USER: root
    • MYSQL_PASSWORD: dbpass
    • RABBITMQ_HOST: rabbitmq
    • RABBITMQ_PORT: 5672
    • RABBITMQ_USER: guest
    • RABBITMQ_PASSWORD: guest
    • EUREKA_SERVER: http://localhost:8761/eureka
  • ms-cuenta-movimiento
    • MYSQL_SERVER_IP: mysql
    • MYSQL_SERVER_PORT: 3306
    • MYSQL_USER: root
    • RABBITMQ_HOST: rabbitmq
    • RABBITMQ_PORT: 5672
    • RABBITMQ_USER: guest
    • RABBITMQ_PASSWORD: guest
    • REST_CLIENTE_URL: http://localhost:8081/clientes (Comunicación sincrona con el ms-cliente-persona)
    • EUREKA_SERVER: http://localhost:8761/eureka

Para levantar las ejecucion de los contenedores mediante docker compose, se debe ubicar en el directorio devsu-docker de este repositorio y ejecutar el comando

docker compose up -d

Consideraciones

Al ejecutar en docker se crea solo la base de datos SQL para el ms-cliente-persona que tiene por nombre api_clientes, se debe ejecutar el scripts de base de datos de para crear las tablas para este microservicio BaseDatosCliente.sql y adicionalmente crear la base de datos para el ms de cuentas movimientos ejecutando el scripts de base de datos BaseDatosMovimiento.sql.

La ejecucion o start del ms ms-cuenta-movimiento puede fallar esto debido a la en rabbitMQ puede ser posible que no exista la cola, esto se solventaría haciendo alguna petición al ms-cliente-persona de creacion de un cliente, luego a ello se podría levantar el microservicio ms-cuenta-movimiento para consumir el evento y este se despleigue correctamente

Pruebas

Se cuentan con un set de pruebas Unitarias de cada componente de los micro servicios. La prueba de integracion se reallizan mediante Spring y es ejecuta con el resto de las pruebas. Alguno de los motivos por lo que podría falla la generacion del jar o ejecucion de las pruebas se indicana acontinuacion

  • No existe la base de datos para el microservicio Ejecutar los respectivos scripts sql proporsionados en este proyecto
  • No se logra realizar conexion con la base de datos Revisar las credenciales de acceso, por defecto los contenedores y proyecto tienen las credenciales para ejecutar mySql en contenedor docker.
  • ms-cliente-persona No se logra hacer conexion con servidor rabbitMQ Revisar las credenciales de acceso, por defecto los contenedores y proyecto tienen las credenciales para ejecutar rabbitmq en contenedor docker.
  • ms-cuenta-movimiento No existencia de la cola devsu.clientes.queue en el servidor rabbitMQ Se puede crear la cola de manera manual ingresando al servidor de rabbitmq rabittmq. El ms-cliente-persona crea la cola al ejecutar la Creación de un cliente

prueba-tecnica-deiberv-devsu's People

Contributors

deiberv avatar

Stargazers

csvergara avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.