Briefer na GCP: Um Guia Completo
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.