Tutorial curto ministrado na Python Brasil 2023. Deploy e release contínuos em Django.
docker build --tag=tutorial-python-brasil-2023/receitas .
docker-compose build
docker-compose up -d
Acesse o locust em http://localhost:8089/ e inicie um teste trocando:
- Number of users: 10
- Spawn rate: 10
Verifique na aba "Statistics" que todas as requisições são bem sucedidas e então simule um deploy do componente web:
docker-compose restart web
Verifique que parte das requisições falharam. O motivo da falha pode ser visto na aba "Failures"
minikube delete # ensure any previous cluster get deleted
minikube start
eval $(minikube docker-env) # make current session use docker inside minikube, need to run for every terminal session or minikube restart
docker build --tag tutorial_python_brasil_2023 .
kubectl apply -f kubernetes
kubectl get pods
kubectl apply -f kubernetes/locust
minikube service web --url
Copie a URL retornada para usar no parâmetro "Host" do Locust.
minikube service locust-service
Inicie o teste do locust com os seguintes parâmetros:
- Number of users: 10
- Spawn rate: 10
- Host: URL do service web
Verifique na aba "Statistics" que todas as requisições são bem sucedidas e então simule um deploy do componente web:
kubectl rollout restart deployment web
Execute o comando abaixo repetidas vezes para ver os pods sendo criados e terminados sem gerar interrupções.
kubectl get pods
Verifique que não houveram falhas no locust.
Verifique que o estado atual do switch é false
: http://{{HOST_WEB}}:{{PORTA_WEB}}/switches/
Para habilitá-lo, crie um superusuário:
make createsuperuser
Vá até o admin de switches: http://{{HOST_WEB}}:{{PORTA_WEB}}/admin/waffle/switch/ e crie o switch MY_AWESOME_SWITCH
marcando o checkbox Active
.
Verifique que o estado atual do switch mudou para true
: http://{{HOST_WEB}}:{{PORTA_WEB}}/switches/
Podemos usar esse switch tanto pra controle de fluxo no próprio Django, quanto para o frontend.