Briefer na GCP: Um Guia Completo

Guilherme Caruso
Pilea Labs
Published in
6 min readSep 27, 2024
Briefer na GCP by Pilea Labs

Olá, bem vindo a publicação de número #1 do blog técnico da Pilea Labs!

Nos dias atuais, muito se fala sobre a necessidade em consumir, manipular e entregar dados de maneira rápida e eficiente. Diversas ferramentas nos são apresentadas porém poucas, conseguem sanar de maneira elegante e eficiente tais problemas. No entanto, quando buscamos uma ferramenta que atenda às necessidades dos mais variados perfis, o Briefer se destaca. Criado para usuários técnicos e não técnicos, ele oferece uma interface amigável e simplificada, sem perder a flexibilidade e o potencial de suas customizações. Como os próprios criadores dizem, trata-se de “um Notion para dashboards e códigos notebook.”.

Recentemente o Briefer tornou-se uma solução Open Source, o que significa que qualquer equipe, em qualquer lugar, pode gerenciar de forma autônoma sua própria versão desta excelente ferramenta. Agora é possível configurá-lo de diversas maneiras, adaptando-o aos mais variados tipos de arquiteturas existentes.

Com isso, chegamos ao foco desta publicação.

Aqui na Pilea Labs, decidimos substituir a ferramenta que utilizávamos em nosso dia a dia para acessar nossos dashboards e notebooks, iniciando o processo de migração para o Briefer. Embora toda a documentação necessária para o deployment da solução esteja disponível no site da plataforma , acreditamos que um passo a passo baseado no cenário real que enfrentamos pode ser útil para você, que, assim como nós, está tentando implementar sua própria versão do Briefer.

Mas vamos lá, chega de conversa e vamos para a implementação dessa ferramenta que tem nos ajudado tanto.

Criando sua instância no Compute Engine

Antes de nos preocuparmos com a ferramenta de fato, precisamos iniciar nossas configurações de arquitetura e, a principal delas é o servidor onde nossa instância do Briefer irá rodar.

É importante destacar que, neste guia, não focaremos em configurar a solução para grandes cargas de trabalho. O objetivo aqui é demonstrar a configuração em uma instância única, para fins de tutorial. Se você estiver buscando um deployment para ambientes com grandes volumes de tráfego, acesse AQUI a documentação do Briefer sobre deployment em Kubernetes.

Acesse o console da Google Cloud Platform e vá até Compute Engine onde após clicar em “Criar Instância” você poderá configurar a máquina de acordo com suas necessidades.

Para este guia vamos utilizar as seguintes configurações:

  • 2 vCPU + 8 GB memory
  • Disco de 10 GB balanceado
  • 3060 IOPS provisionados
  • 155 de capacidade de processamento provisionada

Os requisitos apresentado são ideais para a maioria dos casos. Contudo, estes valores podem ser ajustados para mais ou para menos, dependendo das necessidades e demandas de seu projeto.

Dê um nome para sua instância, clique em “Criar” e aguarde que a inicialização seja concluída.

Uma vez que sua máquina virtual tenha sido criada, podemos seguir para a próxima etapa!

Configurando sua instância recém-criada

Acesse sua máquina virtual utilizando o método que preferir.

Antes de executarmos o Briefer na nossa máquina virtual, precisamos atender ao principal requisito para execução do Briefer. Sendo ele:

  • Docker

Vamos seguir adiante com a instalação desse componente para garantir que o Briefer funcione corretamente em sua instância.

Os comandos apresentados são parte da documentação básica de instalação do Docker. Caso algum problema ocorra durante o processo de instalação e configuração, é recomendável que acesse a documentação do serviço em questão.
Documentação Docker

Instalando Docker

  • Atualize os pacotes existentes.
sudo apt update && sudo apt upgrade -y
  • Permita o uso de repositórios via HTTPS.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  • Adicione o repositório Docker ao Apt e atualize o mesmo.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
  • Instale o Docker e dê as permissões necessárias.
sudo apt install docker-ce
sudo usermod -aG docker ${USER}

Verificando se a instalação do Docker foi bem-sucedida

Após configurar o Docker, você pode verificar se tudo está funcionando corretamente executando o seguinte comando:

docker ps

Esse comando deve exibir uma lista de contêineres em execução (mesmo que esteja vazia), o que indica que o Docker foi instalado e está ativo. A saída esperada será algo como:

CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMESInstalando o Briefer

Instalando o Briefer

Agora que o Docker está instalado na sua máquina virtual, vamos seguir diretamente para a instalação e execução do Briefer. Esse passo permitirá que você veja o Briefer em execução rapidamente.

Para instalar o Briefer, execute o seguinte comando Docker na sua máquina virtual:

docker run -d \
-p 3000:3000 \
-v briefer_psql_data:/var/lib/postgresql/data \
-v briefer_jupyter_data:/home/jupyteruser \
-v briefer_briefer_data:/home/briefer \
briefercloud/brieferba

Este comando deixará o Briefer rodando na porta 3000 da sua instância. Você já pode testar se ele está em execução, fazendo uma requisição direta à porta 3000 do IP público da sua máquina virtual. Para isso, basta rodar um cURL:

curl http://<seu_ip_publico>:3000

Se tudo estiver funcionando corretamente, você verá a resposta da aplicação, indicando que o Briefer já está ativo.

Caso queira garantir totalmente o funcionando, acesse a mesma URL em seu navegador. Agora, você verá a interface inicial do Briefer, pronta para ser utilizada:

(Opcional) Configurando o Nginx para acesso público

Agora que o Briefer está rodando, o próximo passo é configurar o acesso à aplicação. Uma das opções mais comuns para isso é utilizar o Nginx como proxy reverso, mas você pode adaptar esse passo conforme sua necessidade, utilizando outras ferramentas ou configurando de forma diferente o acesso à aplicação.

Se decidir seguir com o Nginx, aqui está o processo:

Os comandos apresentados são parte da documentação básica de instalação do Nginx. Caso algum problema ocorra durante o processo de instalação e configuração, é recomendável que acesse a documentação do serviço em questão.
Documentação Nginx

Instalando Nginx

  • Atualize os pacotes existentes.
sudo apt update && sudo apt upgrade -y
  • Instale o Nginx e o inicie.
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

Verificando se a instalação do Nginx foi bem-sucedidas

Após configurar e iniciar o Nginx, você pode verificar se ele está funcionando corretamente acessando o IP público da sua máquina virtual no navegador. Para isso, basta inserir o endereço IP no navegador.

Se a configuração estiver correta, você verá a seguinte página:

Lembre-se de que, como a configuração padrão é feita via HTTP, é necessário acessar o IP utilizando HTTP, e não HTTPS. Caso queira configurar um certificado SSL para sua aplicação, consulte a documentação AQUI sobre como configurar SSL no Nginx.

Servindo o Briefer através do Nginx

Para que você possa acessar o Briefer através do Nginx, é necessário configurar esse acesso seguindo as etapas abaixo:

  • Acesse o diretório onde estão as configurações do Nginx.
cd /etc/nginx/sites-available/
  • Crie um novo arquivo de configuração para o Briefer.
sudo nano /etc/nginx/sites-available/briefer

Nesse momento, o editor nano será aberto para que voce possa codificar as configurações de acesso

  • Adicione a seguinte configuração:
server {
listen 80;

server_name _;

client_max_body_size 0;

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_request_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
  • Adicione um link simbólico para que o Nginx reconheça a nova configuração.
sudo ln -s /etc/nginx/sites-available/briefer /etc/nginx/sites-enabled/
  • Remova a configuração padrão do Nginx
sudo rm /etc/nginx/sites-enabled/default
  • Verifique se não existem erros na configuração criada.
sudo nginx -t

O comando acima não deve retornar erros.

  • Reinicie o Nginx.
sudo systemctl restart nginx

Verificando se a configuração do Nginx foi bem-sucedida

Agora, o Briefer estará acessível via Nginx, e você poderá utilizar a interface através do IP público da sua máquina virtual sem a necessidade de acessar a porta 3000.

Ao acessar novamente o IP público da sua máquina virtual, agora sem a porta 3000, onde antes era exibida a página padrão do Nginx, você verá a interface do Briefer

Conclusão

Neste guia, vimos como configurar o Briefer em um ambiente GCP, passando pela criação e configuração de uma instância virtual, instalação dos componentes necessários, como Docker e Nginx, até a configuração final do Briefer. Embora o objetivo aqui tenha sido fornecer um tutorial prático e acessível para um cenário básico, o Briefer oferece flexibilidade suficiente para ser adaptado a ambientes mais robustos, como o Kubernetes.

Esperamos que este passo a passo tenha ajudado você a implementar sua própria instância do Briefer de forma eficaz. Para ambientes mais complexos ou ajustes adicionais, recomendamos a consulta à documentação oficial.

Agora, você está pronto para explorar o potencial do Briefer e customizar seus dashboards e notebooks da forma que melhor atender às suas necessidades.

--

--

Guilherme Caruso
Pilea Labs

Software Engineer | Gopher | Writer’s Padawan | INTP-T