Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | https://hdl.handle.net/1822/79752 |
Resumo: | Dissertação de mestrado em Engenharia Informática |
id |
RCAP_e3423faa9861c0dd6be2cfb23675728a |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/79752 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenhoEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado em Engenharia InformáticaThis document describes the development of high performance Web applications using Django framework. Initially, the operation and usage mode of Django are introduced, as well as several Web applications’ latency reduction techniques. The work carried out fo cused on the design, implementation and performance optimization of a Web application, which consists of an article sharing system. The development process followed the Scrum methodology. During development, several technologies were explored, such as Memcached, Celery and Varnish, which enabled the implementation of certain performance optimi zation strategies. The latency of several operations was measured, before and after the application of optimization techniques, in order to ensure that one was moving in the right direction. The optimization of the application’s performance was performed at various le vels, including the transfer of content across the network and the backend services. HTTP caching, data compression and minification tecniques, as well as static content replication using Content Delivery Networks, were used. Partial update of the application’s pages on the front-end and asynchronous processing techniques were applied. The database utili zation was optimized by creating indexes and by taking advantage of a NoSQL solution. Memory caching strategies, with distinct granularities, were implemented to store templa tes and application objects. Furthermore, asynchronous task queues were used to perform some costly operations. All of the aforementioned techniques favorably contributed to the Web application’s latency decrease. Django only supports the application of some of these techniques, because it operates on the back-end. Since performance must be optimized at various levels, it was necessary to use other tools besides Django.Este documento descreve o desenvolvimento de aplicações Web de elevado desempenho com a framework Django. Inicialmente, apresenta-se o funcionamento e o modo de utiliza ção do Django, bem como diversas técnicas de diminuição da latência das aplicações Web. O trabalho realizado focou-se na conceção, implementação e otimização do desempenho de uma aplicação Web, que consiste num sistema de partilha de artigos. O processo de desenvolvimento seguiu a metodologia Scrum. Durante o desenvolvimento foram explo radas diversas tecnologias, tais como Memcached, Celery e Varnish, que possibilitaram a implementação de determinadas estratégias de otimização do desempenho. Realizaram-se medições da latência de diversas operações, antes e após a aplicação das estratégias de oti mização, para garantir que se caminhava no sentido correto. A otimização do desempenho da aplicação ocorreu a vários níveis, incluindo a transferência do conteúdo pela rede e os serviços de back-end. Utilizaram-se técnicas como o caching HTTP, bem como a compressão e minificação de informação e, ainda, a replicação de conteúdo estático utilizando Content Delivery Networks. Aplicaram-se técnicas de processamento assíncrono e atualização parcial das páginas da aplicação no front-end. Otimizou-se a utilização da base de dados, criando índices e tirando partido de uma solução NoSQL. Implementaram-se estratégias de caching em memória com granularidades distintas, para armazenar templates e objetos gerados pela aplicação. Recorreu-se ainda a filas assíncronas de tarefas para a realização de algumas operações custosas. Todas as técnicas mencionadas contribuíram favoravelmente para a di minuição da latência da aplicação Web. O Django apenas suporta a aplicação de algumas destas técnicas, já que opera no back-end. Como o desempenho deve ser otimizado a vários níveis, foi necessário recorrer a outras ferramentas para além do Django.Esteves, AntónioUniversidade do MinhoFernandes, João Miguel Gonçalves2018-12-122018-12-12T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/79752por203009037info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-04T01:17:02Zoai:repositorium.sdum.uminho.pt:1822/79752Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T18:58:49.862292Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
title |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
spellingShingle |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho Fernandes, João Miguel Gonçalves Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
title_full |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
title_fullStr |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
title_full_unstemmed |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
title_sort |
Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho |
author |
Fernandes, João Miguel Gonçalves |
author_facet |
Fernandes, João Miguel Gonçalves |
author_role |
author |
dc.contributor.none.fl_str_mv |
Esteves, António Universidade do Minho |
dc.contributor.author.fl_str_mv |
Fernandes, João Miguel Gonçalves |
dc.subject.por.fl_str_mv |
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Dissertação de mestrado em Engenharia Informática |
publishDate |
2018 |
dc.date.none.fl_str_mv |
2018-12-12 2018-12-12T00:00:00Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/1822/79752 |
url |
https://hdl.handle.net/1822/79752 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
203009037 |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799132379124596736 |