💲 Golang, Go Fiber, RabbitMQ, MongoDB, Docker, Kubernetes, GitHub Actions

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
    
Owner
Jailton Junior
Analista Programador | Arquitetura de Soluções | C# | Golang
Jailton Junior
Similar Resources

Open source Firebase + Heroku to develop, scale and secure serverless apps on Kubernetes

Develop, Deploy and Secure Serverless Apps on Kubernetes. Website • Docs • Support Space Cloud is a Kubernetes based serverless platform that provides

Dec 29, 2022

Firebird RDBMS sql driver for Go (golang)

firebirdsql (Go firebird sql driver) Firebird RDBMS http://firebirdsql.org SQL driver for Go Requirements Firebird 2.5 or higher Golang 1.13 or higher

Dec 20, 2022

Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package

Go-MySQL-Driver A MySQL-Driver for Go's database/sql package Features Requirements Installation Usage DSN (Data Source Name) Password Protocol Address

Jan 4, 2023

Lightweight Golang driver for ArangoDB

Arangolite Arangolite is a lightweight ArangoDB driver for Go. It focuses on pure AQL querying. See AranGO for a more ORM-like experience. IMPORTANT:

Sep 26, 2022

Golang client for redislabs' ReJSON module with support for multilple redis clients (redigo, go-redis)

Go-ReJSON - a golang client for ReJSON (a JSON data type for Redis) Go-ReJSON is a Go client for ReJSON Redis Module. ReJSON is a Redis module that im

Dec 25, 2022

redis client implement by golang, inspired by jedis.

godis redis client implement by golang, refers to jedis. this library implements most of redis command, include normal redis command, cluster command,

Dec 6, 2022

Go Memcached client library #golang

About This is a memcache client library for the Go programming language (http://golang.org/). Installing Using go get $ go get github.com/bradfitz/gom

Jan 8, 2023

Neo4j REST Client in golang

DEPRECATED! Consider these instead: https://github.com/johnnadratowski/golang-neo4j-bolt-driver https://github.com/go-cq/cq Install: If you don't ha

Nov 9, 2022

Neo4j client for Golang

neoism - Neo4j client for Go Package neoism is a Go client library providing access to the Neo4j graph database via its REST API. Status System Status

Dec 30, 2022
Go-mongodb - Practice Go with MongoDB because why not

Practice Mongo DB with Go Because why not. Dependencies gin-gonic go mongodb dri

Jan 5, 2022
Go-odm, a Golang Object Document Mapping for MongoDB.
Go-odm, a Golang Object Document Mapping for MongoDB.

A project of SENROK Open Source Go ODM Go-odm, a Golang Object Document Mapping for MongoDB. Table of contents Features Installation Get started Docum

Nov 4, 2022
Golang MongoDB Integration Examples

Get Program Get a copy of the program: git clone https://github.com/hmdhszd/Go

Feb 1, 2022
Mongo Go Models (mgm) is a fast and simple MongoDB ODM for Go (based on official Mongo Go Driver)
Mongo Go Models (mgm) is a fast and simple MongoDB ODM for Go (based on official Mongo Go Driver)

Mongo Go Models Important Note: We changed package name from github.com/Kamva/mgm/v3(uppercase Kamva) to github.com/kamva/mgm/v3(lowercase kamva) in v

Jan 2, 2023
The MongoDB driver for Go

The MongoDB driver for Go This fork has had a few improvements by ourselves as well as several PR's merged from the original mgo repo that are current

Jan 8, 2023
The Go driver for MongoDB
The Go driver for MongoDB

MongoDB Go Driver The MongoDB supported driver for Go. Requirements Installation Usage Bugs / Feature Reporting Testing / Development Continuous Integ

Dec 31, 2022
Qmgo - The Go driver for MongoDB. It‘s based on official mongo-go-driver but easier to use like Mgo.

Qmgo English | 简体中文 Qmgo is a Go driver for MongoDB . It is based on MongoDB official driver, but easier to use like mgo (such as the chain call). Qmg

Dec 28, 2022
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)

gokv Simple key-value store abstraction and implementations for Go Contents Features Simple interface Implementations Value types Marshal formats Road

Dec 24, 2022
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.

upper/db is a productive data access layer (DAL) for Go that provides agnostic tools to work with different data sources

Jan 3, 2023
A MongoDB compatible embeddable database and toolkit for Go.
A MongoDB compatible embeddable database and toolkit for Go.

lungo A MongoDB compatible embeddable database and toolkit for Go. Installation Example Motivation Architecture Features License Installation To get s

Jan 3, 2023