As Aplicações abaixo foram desenvolvidas apenas para labs que eu faço em arquiteturas de cloud de forma a testar a comunicação entre zonas de disponibilidades, AutoScaling, deploy com Terraform, etc. Ela será utilizada em uma série de postagens onde vou fazer o deploy dessa aplicação tanto na AWS como no Azure de várias maneiras diferentes, com Ec2, Fargate, EKS e na Azure com os equivalentes.
As aplicações de teste
Bom, as aplicações são simples, elas foram escritas em Python e PHP das quais a que eu realmente entendo é a de Python, mas se você não sabe nada sobre nenhuma dessas linguagens, não tem problema, elas foram feitas com base nos exemplos que tem no próprio site.
Basicamente o APP PHP faz um GET na APP Python que por sua vez conecta no container com o banco Redis e incrementa com +1 a variável API_COUNTER. Para ficar mais visual fiz a imagem abaixo:
O Git para download do código está aqui
APP Python
A única coisa que usei de diferente aqui foi a biblioteca do redis para fazer a conexão com ele e o Flask como framework pra rodar a aplicação. Apenas para fins de curiosidade essa aplicação foi feita com base nesse link.
- Porta em que a aplicação roda = 9090
- Variáveis de ambiente:
- FLASK_APP = app.py
- REDIS_URL = redis://redis:6379/0
APP PHP
Aqui temos uma aplicação bem simples também usando o Guzzlehttp para subir o servidor web e fazer as requisições para o endpoint da APP Python, a aplicação foi baseada no Quickstart do Guzzle.
- Porta em que a aplicação roda = 8080
- Variáveis de Ambiente:
- PY_APP_URL = http://python:9090
Subindo o Ambiente para testes
Caso você queira experimentar essa aplicação em sua máquina é totalmente possível, desde que você tenha o Docker devidamente instalado no seu ambiente como também o Docker Composer.
Para subir o ambiente basta clonar este repositório do meu Github, acessar a pasta raiz dele e rodar os comandos abaixo.
Para buildar as imagens, instalar dependencias e fazer toda a parafernalha do Docker:
make build
E para subir o ambiente:
make up
Para acessar as aplicações basta testar acessando pelo seu navegador e deve ver algo como nas imagens abaixo:
Aplicação Python:
Em breve teremos o Deploy na AWS!
Top comments (0)