MasterCloudApps-Projects / realfood-shipping

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Realfood-Shipping

Servicio de envíos del TFM del Master CloudApps de la URJC

Autores

Este servicio contiene toda la funcionalidad asociada a los clientes 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 en el servicio:

Operaciones disponibles al iniciar sesion

    - GET       /api/shipments/{shipmentId}         Seguimiento de un pedido

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

    - [Publish] Shipment update                     Actualización del estado de un pedido

    - [Consume] Send order request                  Petición de envío de un nuevo pedido

Diagrama de clases del dominio de la aplicación:

classDiagram
class Shipment
class Order
class Client
class Status {
    <<enumeration>>
    DELIVERED
    IN_ROUTE
    PENDING
}

class Shipment

Shipment o--> Status
Shipment o--> Client
Shipment o--> Order

Ejemplo de diagrama de clases para el caso de uso Track Shipment: use-case-diagram

Despliegue

Docker

  • Despliegue de recursos (Solo BD y broker de RabbitMq)
$ docker-compose -f deploy/docker-compose.yml up --build
  • Despliegue completo (Recursos y servicio de shipping)
$ docker-compose -f deploy/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 /deploy 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 clientes
$ kubectl apply -f postgres-pv.yaml

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

$ kubectl apply -f postgres-deployment.yaml

$ kubectl apply -f postgres-service.yaml
  • Arrancar Servicio de envíos
$ kubectl apply -f app-deployment.yaml

$ kubectl apply -f app-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

About

License:Apache License 2.0


Languages

Language:Kotlin 100.0%