Giter Site home page Giter Site logo

alganews-infra's Introduction

alganews-infra

Preparando o ambiente

Para realizar a instalação do Docker e Docker Compose, siga as instruções de acordo com o sistema operacional:

sudo apt install docker.io docker-compose

Referências:

https://docs.docker.com/docker-for-windows/install/

https://docs.docker.com/compose/install/

Iniciando os serviços

Na pasta raiz deste onde o docker-compose.yml e docker-compose.front.yml são localizados, execute os comandos a seguir.

Para inicializar somente o backend (e suas dependências, como o banco de dados):

docker-compose up

Para inicializar somente o frontend:

docker-compose -f docker-compose.front.yml up 

Para inicializar ambos:

docker-compose -f docker-compose.yml -f docker-compose.front.yml up

Acessando os serviços

Cada serviço estará conectado a uma porta (ex: 3000), na rede privada dos containers e outro na rede do computador hospedeiro, ou seja, o seu computador.

O endereço na rede privada dos containers é somente utilizado para comunicação interna de contêiner para contêiner, por exemplo, da API REST para o banco de dados.

Já o endereço em rede local, serve para comunicação entre a sua máquina e o contêiner.

Para acessar os serviços da sua maquina, utilize o endereço de rede local respectivo:

Endereço dos serviços

Serviço Endereço privado Endereço local
Swagger UI alganews-swagger-ui:8080 http://localhost:8082
AlgaNews Blog alganews-blog:3000 http://localhost:3000
AlgaNews CMS alganews-cms:80 http://localhost:3001
AlgaNews Admin alganews-admin:80 http://localhost:3002
AlgaNews API alganews-api:8080 http://localhost:8080
AlgaNews Auth Server alganews-api:8081 http://localhost:8081
Banco de dados MySQL mysql://alganews-mysql-database:3306 mysql://localhost:3316

Observação: O único serviço não exibo na lista é o alganews-setup-local, ele tem o objetivo de configurar armazenamento de arquivo local, e não possui portas de acesso.

Senhas de acesso

Alguns serviços requerem autenticação, todos os acessos são gerenciados pelo Auth Server (com exceção do banco de dados), utilizando OAuth2 junto ao JWT

Existem três tipos de usuários na AlgaNews, os editores, gerentes e os assistentes, cada um com um nível de acesso.

Acessos de editores

Os acessos abaixo podem ser utilizados nos serviços AlgaNews CMS, Swagger UI, API e Auth Server.

E-mail Senha
[email protected] alganews
[email protected] alganews
[email protected] alganews

Acessos de administrador

Os acessos abaixo podem ser utilizados nos serviços AlgaNews Admin, Swagger UI, API e Auth Server.

E-mail Senha
[email protected] alganews
[email protected] alganews

Acessos de assistentes

Os acessos abaixo podem ser utilizados nos serviços AlgaNews Admin, Swagger UI, API e Auth Server.

E-mail Senha
[email protected] alganews
[email protected] alganews

Acesso do banco de dados

Diferente dos acessos de usuários do sistema AlgaNews, este acesso é somente utilizado para o banco de dados.

Usuário Senha
root

Alterando configurações dos containers

Existem algumas configurações que podem ser alteradas para, afim de por exemplo desabilitar a segurança na API ou desabilitar o reset do banco de dados.

Tabela de configurações do Alganews API

A tabela abaixo mostra as variáveis do container e seus exemplos de configuração:

Variável Descrição da variável Valor Descrição da valor
SPRING_FLYWAY_LOCATIONS Scripts de banco de dados classpath:db/migration,classpath:db/testdata Configuração do schema do banco com reset
classpath:db/migration Configuração do schema do banco sem o reset
SPRING_PROFILES_ACTIVE Perfil de configuração da aplicação docker Perfil padrão
chaos-request Perfil para utilização do Chaos nos requests

Simulando erros nas requisições

A API do AlgaNews possui o sistema de Chaos, para ativá-lo, altere o perfil da aplicação (variável SPRING_PROFILES_ACTIVE do docker-compose.yml) para chaos-request.

Em seguida utilize um dos valores a da tabela a seguir, como um query param na URL, chamado de chaos durante uma requisição.

Tipos de erros do Chaos

Valor Descrição Código HTTP da resposta
model Envia um JSON vazio na resposta 200
timeout Simula um tempo de resposta longo de dois minutos 200
service Simula erro de violação de regra de negócio 400
not-found Simula recurso não encontrado 404
internal Simula erro interno 500

alganews-infra's People

Contributors

alexaugustobr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.