Este Application Gateway visa prover um ecossistema de aplicações e serviços, fornecendo criação de regras proxy, upstreams, controle de tráfego e gerenciamento de requisições centralizados.
- Nginx servindo como gateway de requisições HTTP/HTTPS (certicação SSL a ser implementada)
- Reverse Proxy atuando no redirecionamento de incoming traffic para portas de serviço correspondentes
- Load Balancer para gerenciamento e equalização do volume de tráfego (a ser implementado)
- Automation scripts para realizar migração/criação de aplicações que deverão ser gerenciadas pelo Application Gateway
- nginx : Diretório de armazenamento dos arquivos necessários ao funcionamento do Application Gateway
- nginx/config: Diretório que contém os arquicos de configuração do servidor
- nginx/conf.d: Diretório para as configurações de rotas de requisições
- nginx/upstreams: Diretório para conter as regras de upstreams de aplicações
- nginx/ssl : Diretório para armazenamento dos certificados SSL
- scripts : Diretório dos scripts para automatização do processo de migração/criação de aplicações
- Este Application Gateway deve estar localizado na raiz de diretórios do usuário (~/), caso não esteja, isso deve ser corrigido antes de prosseguir
- Renomear os arquivos .env.example para .env, docker-compose.yml.example para docker-compose.yml e fornecer os dados que eles solicitam
- O Application Gateway espera que as aplicações/serviços a serem expostos externamente estejam na pasta 'public_html', na raiz do usuário. Caso não exista, crie:
$ cd ~/ && mkdir public_html - Preparação dos containers de aplicação
- Para que o processo seja totalmente automatizado, é necessário que o arquivo 'docker-compose.yml' esteja na raiz do diretório da aplicação
- Ao criar uma aplicação (utilizando os scripts de automação ou não), seu nome deve ser definido com letras minúsculas. Em caso de nome composto, deve ser adotada a convenção Snake Case.
- Para que a comunicação e as regras de Proxy Reverso possam funcionar, cada container deve ser colocado na mesma rede do container do Application Gateway ao qual pertence
- Configuração do DNS
- Para que as aplicações respondam às requisições, é necessário criar uma entrada do tipo AAA no gerenciador de Zona DNS do domínio vinculado, apontando para o IP público do Application Gateway
- Para iniciar a migração ou criação de uma aplicação, acesse o host do Application Gateway
- Acesse o diretório do Application Gateway:
$ cd ~/application_gateway - Execute o script de automação com o comando
$ ./scripts/app.sh - Selecione uma entre as duas opções fornecidas pelo wizard:
- App baseado em repositório Git
- Será necessário informar a URL do repositório da aplicação a ser migrada ou criada
- App baseado em docker-compose.yml pré-existente
- Primeiramente, os arquivos da aplicação devem ser colocados em pasta que possua o mesmo nome do container (definido no docker-compose.yml), dentro do diretório 'public_html'
- Quando solicitado, informe ao wizard a localização do arquivo 'docker-compose.yml' (local do passo anterior)
- App pré-existente
- Esta opção possibilita a criação das regras de proxy para uma aplicação existente
- App baseado em repositório Git
(*) Em todos os casos, o script considera que a aplicação esteja em um subdiretório de 'public_html' (**) Após execução do script, o Application Gateway será reiniciado automaticamente e as regras devem funcionar imediatamente. (***) Caso algum erro do tipo 500 ocorra, talvez seja necessário aguardar pela propagação da nova regra DNS.