O documento discute técnicas e recursos para desenvolvimento web em grandes escalas, incluindo: (1) otimizações no front-end para melhorar o desempenho; (2) entrega de conteúdo usando CDNs e NGINX para distribuição; e (3) implementação de aplicações em tempo real usando web sockets e long pooling.
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
1. Técnicas e recursos para
desenvolvimento Web em cenários
de grande escala
Globalcode – Open4education
2. Cleber Dantas
Atua há 8 anos no mercado de TI
Especialista em desenvolvimento Web
MCAD e MCTS
Entusiasta Agile
Instrutor– Treinando.Net (http://www.treinando.net)
@cleberdantas
http://www.cleberdantas.com
Globalcode – Open4education
11. Introdução
Cenário de aplicações Web (Internet) comparados
com sistemas internos exigem técnicas ou práticas
que normalmente são ignorados ou
desnecessárias
O ambiente de distribuição é praticamente infinito
(navegadores, tipos de conexão, dispositivos,
localização, etc)
Globalcode – Open4education
13. Front-End
Steve Sounders – “80% dos problemas de
performance de aplicações Web estão no
Front-end”
YSlow – Extensão do Firefox para análise de
performance nas páginas – baseado nas 14 regras
do livro High Performance Web Sites (existem
outros templates)
Globalcode – Open4education
15. Ajax
Otimização do trafego de dados entre servidor e
cliente (navegador)
Trafegar a menor quantidade possível de dados
nas requisições
jQuery e JSON (JavaScript Object Notation) torna
isso muito fácil
jQuery Templates (templates de HTML pré
carregados nas páginas)
Globalcode – Open4education
17. Cache
A melhor solução de performance é fazer com que
o seu código não seja executado o tempo todo!
Tipos de Cache
Cliente – Headers de expiração (Expires e Cache-
Control)
Servidor – OutputCache (ASP.NET) e Cache de Objetos
(ASP.NET ou memCached)
Globalcode – Open4education
18. Cache – Demo
IIS, helper de atualização de
arquivos estáticos
Globalcode – Open4education
19. Delivery - CDN
Content Delivery Network
Rede de distribuição de conteúdo
Infraestrutura para ENTREGA do conteúdo
Própria
Terceirizada (Akamai, Ananke, UOL, etc)
Pública (Microsoft, Google, etc)
Distribuição de bibliotecas públicas (exemplo jQuery)
http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js
Globalcode – Open4education
21. Delivery - NGINX
Proxy Reverso
Utilizamos para entrega de imagens (muito
performático)
http://nginx.org/
Globalcode – Open4education
22. Real Time - Web Sockets
Recurso do HTML 5 para aplicações Web Real
Time
Conexão direta e bidirecional com o servidor web
Atualização instantânea no cliente (navegadores)
Globalcode – Open4education