Skip to content

Infrastructure

Guilherme Peres edited this page Jun 19, 2022 · 4 revisions

Desenvolvimento Local

Para o desenvolvimento em ambiente local, independente do sistema operacional, é necessário a instalação dos pré requisitos:

  1. Docker;
  2. Docker Compose; e
  3. Git LFS

Ambiente Windows

A configuração para ambientes Windows utiliza-se da plataforma WSL para a execução do Docker e Docker Compose. Para tal ativação, é necessário:

  1. Instale o Terminal pela Windows Store;
  2. Ativar ou desativar recursos do Windows - Habilite: Plataforma de Máquina Virtual, Plataforma do Hipervisor do Windows e Subsistema Windows para Linux;
  3. Faça o download e instalação do Linux Kernel WSL2 da Microsoft;
  4. Defina o WSL versão 2 como versão padrão com o comando: wsl.exe –set-default-version 2;
  5. Instale as suas distribuições Linux favoritas usando a Microsoft Store; e
  6. Use o comando wsl.exe –help para aprender mais

Prossiga com a instalação do Docker para Windows. Dentro da distribuição linux escolhida, faça o clone do repositório para o caminho desejado.

Ative o git lfs dentro da pasta do projeto e faça a execução do script bootstrap.sh.

GitHub

Actions

Ferramenta responsável pelas automações nas etapas de validação, verificação ou construção no estágio de deploy do website. Consulte mais detalhes na documentação oficial.

Hoje temos os seguintes fluxos de trabalho configurado no repositório website:

Continuous Integration

Nesta etapa de construção é realizado os testes, atualmente sendo compostos por testes unitários e de formatação.

A etapa é iniciada assim que o repositório recebe uma nova branch e ou novos commits nas branches já existentes.

Hoje a validação automática consiste nos códigos escritos em python (arquivos de extensão .py ou .ipynb).

Para obter mais detalhes sobre o status do fluxo de trabalho, consulte o status do mesmo através da interface do GitHub.

Imagem: Diagrama de fluxo: Action CI

Continuous Deployment

Atualmente utilizamos dois ambientes em nosso website, sendo:

  1. staging: Pré-produção, onde é validado as alterações e ou novas funcionalidades. Após a aprovação da equipe o mesmo esta apto para envio a produção.

    Neste ambiente não é necessário nenhuma aprovação para que a action seja disparada. O ambiente esta conectado com a branch staging, esta que possuí algumas validações e aprovações necessárias sendo:

    1. É necessário um pull-request, ou seja, não é possível realizar um commit diretamente nela.
    2. No pull-request é acionada a action Continuous Integration e a mesma deve ser concluída com sucesso para que o merge nesta branch seja possível.
  2. production: Produção, onde os clientes utilizam para acessar o portal.

    Neste Ambiente é necessário uma aprovação de algum membro da equipe admin ou website. O ambiente esta conectado com a branch master, esta que possuí algumas validações e aprovações necessárias sendo:

    1. É necessário um pull-request, ou seja, não é possível realizar um commit diretamente nela. Este pull-request deve ser aprovado por no mínimo um membro da equipe.
    2. No pull-request é acionada a action Continuous Integration e a mesma deve ser concluída com sucesso para que o merge nesta branch seja possível.
    3. O deploy do ambiente de staging deve ter sido realizado com sucesso para que seja possível o merge do pull-request.
    4. O push nesta branch está restringido apenas para usuários que tenham a permissão de administrador ou colaborador da organização.

A action é acionada quando ocorre um push para uma destas duas branches que estão conectadas aos ambientes.

Imagem: Diagrama de fluxo: Action CD

Clone this wiki locally