Utilização dos templates e modelos do Django para desenvolver aplicações web de elevado desempenho

Detalhes bibliográficos
Autor(a) principal: Fernandes, João Miguel Gonçalves
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