Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/orlandopalmeira/trabalho-ascn-2023-2024
Repositório do trabalho prático no âmbito da UC de Aplicações e Serviços de Computação em Nuvem (ASCN) - Mestrado em Engenharia Informática (MEI/MIEI) - Universidade do Minho (UMinho)
https://github.com/orlandopalmeira/trabalho-ascn-2023-2024
ansible ascn cloud engenharia-informatica gcp google-cloud google-cloud-platform laravel laravelio mei mysql uminho uminho-mei uminho-miei
Last synced: 1 day ago
JSON representation
Repositório do trabalho prático no âmbito da UC de Aplicações e Serviços de Computação em Nuvem (ASCN) - Mestrado em Engenharia Informática (MEI/MIEI) - Universidade do Minho (UMinho)
- Host: GitHub
- URL: https://github.com/orlandopalmeira/trabalho-ascn-2023-2024
- Owner: orlandopalmeira
- License: mit
- Created: 2024-01-13T14:58:14.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-13T16:07:32.000Z (about 1 year ago)
- Last Synced: 2024-11-25T23:30:47.690Z (2 months ago)
- Topics: ansible, ascn, cloud, engenharia-informatica, gcp, google-cloud, google-cloud-platform, laravel, laravelio, mei, mysql, uminho, uminho-mei, uminho-miei
- Language: Python
- Homepage:
- Size: 602 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Mestrado em Engenharia Informática
Trabalho prático de Aplicações e Serviços de Computação em Nuvem
2023/2024---
Colaboradores 🤝
| Nome | Número |
|--------------------------------|---------|
| Ana Rita Santos Poças | PG53645 |
| João Pedro Vilas Boas Braga | PG53951 |
| Orlando José da Cunha Palmeira | PG54123 |
| Miguel Silva Pinto | PG54105 |
| Pedro Miguel Castilho Martins | PG54146 |### Nota: 18.6 / 20
Keywords
ASCN, Aplicações e Serviços de Computação em Nuvem, aplicacoes e servicos de computacao em nuvem, universidade do minho, uminho, miei, mei, engenharia informatica
# Comandos do trabalho
### Ligar os clusters e set-up do cluster kubernetes
```ansible-playbook gke-cluster-create.yml```### Deploy da aplicação completa
```ansible-playbook laravelio-deploy.yml```### Deploy da aplicação completa com um numero especifico de replicas do servidor aplicacional
```ansible-playbook laravelio-deploy.yml -e "l_reps=3"```### Deploy da aplicação completa com um numero especifico de replicas do servidor aplicacional e sem HorizontalPodAutoscaler(HPA) - Tem De Ser Nesta Ordem!
```ansible-playbook laravelio-deploy.yml -e "l_reps=1" --skip-tags hpa```### Deploy da aplicação mas sem ser feito o seeding da base de dados
```ansible-playbook laravelio-deploy.yml -e "seed_database=false"```### Deploy da aplicação mas sem ser feito o seeding da base de dados e com um numero especifico de replicas do servidor aplicacional
```ansible-playbook laravelio-deploy.yml -e "seed_database=false l_reps=3"```### Deploy da aplicação sem HorizontalPodAutoscaler(HPA)
```ansible-playbook laravelio-deploy.yml --skip-tags hpa```### Comando de teste para verificar se o playbook está a funcionar
```ansible-playbook test-all.yml```### Comando de teste para verificar se o playbook está a funcionar, após ter criado o cluster (não faz deploy nem undeploy da aplicação)
```ansible-playbook tests-only.yml```### Undeploy completo da aplicação
```ansible-playbook laravelio-undeploy.yml```### Undeploy da aplicação mas sem ser removido o PersistentVolumeClaim(PVC) para manter persistência dos dados
```ansible-playbook laravelio-undeploy.yml --skip-tags pvc```### Desligar os clusters
```ansible-playbook gke-cluster-destroy.yml```# Descrição dos playbooks
## gke-cluster-create.yml
Criação dos clusters GKE## gke-cluster-destroy.yml
Eliminação dos clusters GKE## laravelio-deploy.yml
Deploy da aplicação completa## laravelio-undeploy.yml
Undeploy da aplicação completa## reload-laravel.yml
Reload da aplicação Laravel, como mecanismo de manutenção da aplicação, sem apagar os seus dados## test-all.yml
Testa o deployment de toda a aplicação, funcionalidades da aplicação, e por fim verifica o correto terminamento da aplicação## tests-only.yml
Testa apenas as funcionalidades da aplicação, já com a aplicação a correr, sem executar o deploy nem o undeploy da aplicação## gcp-create-vms.yml
Criação das VMS de carga## test-load.yml
Testa a aplicação com um load testing, com um número de threads e de iterações por defeito, ou com um número de threads e de iterações especificado pelo utilizador, pressupondo a criação das VMS de carga## gcp-import-dashboard.yml
Importa o dashboard JSON para o projeto definido# Casos de uso do sistema
## Mostrar persistência dos dados
1. Deploy da aplicação:
```ansible-playbook laravelio-deploy.yml```2. Fazer login na aplicação:
Aceder ao endereço http:///login
Com as credenciais:
- username: testing
- password: password3. Criar uma nova thread no fórum:
Aceder ao endereço http:///forum/create-thread4. Undeploy da aplicação sem eliminar o pvc:
```ansible-playbook laravelio-undeploy.yml --skip-tags pvc```5. Redeploy da aplicação sem fazer seeding da base de dados para não gerar conflitos:
```ansible-playbook laravelio-deploy.yml -e "seed_database=false"```6. Verificar a thread criada anteriormente:
Aceder ao endereço http:///forum## Load testing
1. Criação das VMS e provisionamente (Java, Jmeter) para o load testing:
```ansible-playbook gcp-create-vms.yml```2. Execução do load testing:
```ansible-playbook test-load.yml```
Os resultados do load testing são guardados na diretoria "./results"2.1. Execução do load testing com um número de threads e de iterações diferente do default:
```ansible-playbook test-load.yml -e "threads=10 iters=100 load_file=tests/load_forum.jmx"```3. Remoção das VMS:
Na execução do create-vms, clicar Ctrl+C + C para indicar a continuação da execução do playbook que elimina as VMS: