Skip to content

MasterCloudApps-Projects/realfood-payments

Repository files navigation

Realfood-Payments

Servicio de pagos del TFM del Master CloudApps de la URJC

Autores

Este servicio contiene toda la funcionalidad asociada a los pagos de la aplicación RealFood, esta aplicación consta de los siguientes componentes:

Estos servicios se ha desarrollado siguiendo el estilo de Arquitectura Hexagonal

Operaciones disponibles con token de inicio de sesión

    - GET       /api/balance                Consultar saldo
    - POST      /api/balance                Recargar saldo

Operación de Publicación/Suscripción que ejecuta el servicio:

    - [Publish] Payment response            Resolucion en el pago de un pedido

    - [Consume] Payment request             Intento de pago de un pedido
    - [Consume] Register request            Registro de un nuevo cliente
    - [Consume] Delete client request       Borrado de un cliente

Diagrama de clases del dominio de la aplicación:

classDiagram
class Client
class ClientId
class Balance

Client *-- ClientId : -id
Client *-- Balance : -balance

class Payment
class PaymentId
class Quantity

Payment *-- PaymentId : -id
Payment *-- Quantity : -quantity
Payment o-- Client : -client
Loading

Ejemplo de diagrama de clases para el caso de uso UpdateBalance:

alt text

Despliegue

Docker

  • Despliegue de recursos (Solo BD y broker de RabbitMq)
$ docker-compose -f realfood-deply/docker-compose.yml up --build
  • Despliegue completo (Recursos y servicio de pagos)
$ docker-compose -f realfood-deply/docker-compose-prod.yml up --build
  • Para observar que se han creado los contenedores:
$ docker ps

Software recomendado: Docker desktop / Rancher desktop

Kubernetes

En la carpeta de realfood-deployment están los manifiestos para desplegar los recursos y el servicio

  • Arrancar el servicio de minikube
$ minikube start
  • Arrancar broker de RabbitMQ
$ kubectl apply -f rabbitmq-pv.yaml

$ kubectl apply -f rabbitmq-pv-claim.yaml

$ kubectl apply -f rabbitmq-deployment.yaml

$ kubectl apply -f rabbitmq-service.yaml
  • Arrancar BD de pagos
$ kubectl apply -f sqldbpayments-pv.yaml

$ kubectl apply -f sqldbpayments-pv-claim.yaml

$ kubectl apply -f sqldbpayments-deployment.yaml

$ kubectl apply -f sqldbpayments-service.yaml
  • Arrancar Servicio de clientes
$ kubectl apply -f payments-deployment.yaml

$ kubectl apply -f payments-service.yaml
  • Para observar que se han desplegado los servicios:
$ kubectl get deployments

$ kubectl get services
  • Si se quiere levantar todo directamente:
$ kubectl apply -f .

Software recomendado: k8sLens