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

Overview

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
Go-mongodb - Practice Go with MongoDB because why not

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

Rizky Syawal 0 Jan 5, 2022
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

SENROK 3 Jan 22, 2022
Golang MongoDB Integration Examples

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

Hamid Hosseinzadeh 1 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 Important Note: We changed package name from github.com/Kamva/mgm/v3(uppercase Kamva) to github.com/kamva/mgm/v3(lowercase kamva) in v

kamva 538 Aug 12, 2022
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

GlobalSign 1.9k Aug 6, 2022
The Go driver for MongoDB

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

mongodb 6.9k Aug 15, 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

Qiniu Cloud 938 Aug 3, 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

Philipp Gillé 453 Aug 11, 2022
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

upper.io 3.1k Aug 12, 2022
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

Joël Gähwiler 393 Aug 5, 2022
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

Space Up Technologies 3.6k Aug 9, 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

Hajime Nakagami 173 Aug 1, 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

Go SQL Drivers 12.5k Aug 12, 2022
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:

Fabien Herfray 72 Jun 17, 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

Nitish Malhotra 274 Aug 5, 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,

piaohao 105 Jul 20, 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

Brad Fitzpatrick 1.5k Aug 5, 2022
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

null 76 Mar 14, 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

Jason McVetta 388 Aug 2, 2022