Bank

Projeto para simular empréstimos financeiros em um banco para clientes

Tecnologias Utilizadas

  1. Golang
  2. MongoDB
  3. RabbitMQ
  4. Github Actions
  5. Docker Hub
  6. Docker
  7. Kubernetes
  8. Minikube
  9. Digital Ocean

Funcionalidades

  1. Registrar cliente
  2. Buscar cliente por documento
  3. Solicitar empréstimo
  4. Aprovar/Reprovar empréstimos
  5. Listar empréstimos de um cliente

Desenho da Solução

Executar em ambiente local (Docker Compose)

  1. Na raiz do projeto executar o seguinte comando:

    docker-compose up -d 
    

Executar em ambiente local (Minikube)

  1. Instalando minikube (Windows)

    choco install minikube
    
  2. Instalando kubernetes-cli (Windows)

    choco install kubernetes-cli
    
  3. Para iniciar o ambiente minikube (local)

    minikube start
    
  4. Para aplicar os manifestos do k8s

    kubectl apply -f .\.k8s\metrics\ -R
    kubectl apply -f .\.k8s\namespaces\ -R
    kubectl apply -f .\.k8s\deployments\ -R -n bank
    kubectl apply -f .\.k8s\services\ -R -n bank
    kubectl apply -f .\.k8s\hpas\ -R -n bank
    
  5. Habilitar dashboard kubernetes

    minikube dashboard
    
  6. Habilitar portas dos serviços para utilizar localmente

    minikube service mongodb-service -n bank
    minikube service rabbitmq-service -n bank
    minikube service customer-api-service -n bank
    minikube service loan-api-service -n bank
    
  7. Alternando entre contextos

    kubectl config get-contexts
    kubectl config use-context (nome do contexto)
    
  8. Listando pods

    kubectl get pods -n bank
    
  9. Listando services

    kubectl get svc -n bank
    
  10. Listando hpa (HorizontalPodAutoscaler)

    kubectl get hpa -n bank
    

Executar teste de carga (Artillery.io)

  1. Executando o teste de carga

    artillery run -o artillery-report.json artillery.yaml
    

GitHub

https://github.com/JailtonJunior94/bank