Servicio de pagos del TFM del Master CloudApps de la URJC
- Juan Antonio Ávila Catalán, @juanaviladev
- Cristo Fernando López Cabañas, @cristoflop
Este servicio contiene toda la funcionalidad asociada a los pagos de la aplicación RealFood, esta aplicación consta de los siguientes componentes:
- GitHub - Realfood-Clients
- GitHub - Realfood-Restaurants
- GitHub - Realfood-Payments
- GitHub - Realfood-Shipping
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
Ejemplo de diagrama de clases para el caso de uso UpdateBalance:
- 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
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