SlideShare uma empresa Scribd logo
1 de 34
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaWEB309 Alexandre Tarifa Cleber Dantas
Introdução Cenário de aplicações Web para 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)
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)
Regra 1: Minimize HTTP Requests Regra 2: Use CDN´s (Content Delivery Network) Regra 3: Use “Expires Header“ Regra 4: Utilize Gzip Regra 5: Mova CSS para o topo Regra 6: Mova scripts para baixo Regra 7: Evite expressões em CSS Regra 8: ‘Inlined’ JavaScript e CSS Regra 9: Minimize Domínios Regra 10: Minimize JavaScript Regra 11: Evite Redirecionamentos Regra 12: Remova Scritps Duplicados Regra 13: Desabilite ETags Regra 14: Cache AJAX Front-End Regra 1: Minimize HTTP Requests Regra 2: Use CDN´s (Content Delivery Network) Regra 3: Use “Expires Header“ Regra 4: Utilize Gzip Regra 5: Mova CSS para o topo Regra 6: Mova scripts para baixo Regra 7: Evite expressões em CSS Regra 8: ‘Inlined’ JavaScript e CSS Regra 9: Minimize Domínios Regra 10: Minimize JavaScript Regra 11: Evite Redirecionamentos Regra 12: Remova Scritps Duplicados Regra 13: Desabilite ETags Regra 14: Cache AJAX
demo Front-end (sprite, paralelismo de downloads e minify js)
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)
demo AJAX (jQuery, JSON e jQuery Templates)
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)
demo Cache (outputcache, cache profile, cache partial, memCached, IIS e helper de atualização de arquivosestáticos)
memCached www.memcached.org Sistema distribuído de altíssima performance para armazenamento de informações em cache de objetos em MEMÓRIA RAM. Reduz drasticamente a carga de processamento de servidores de aplicação, banco de dados, etc. Criado pela Danga (livejournal.com) Utilizado por facebook (805 servidores), twitter, linkedin, wikipedia, minha vida, etc Fácil de gerenciar, adicionar novas máquinas e instâncias
Infra - CDN Content Delivery Network Rede de distribuição de conteúdo Infraestrutura para ENTREGA do conteúdo Própria Terceirizada (Akamai, Ananke, Azion, 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
CDN - Exemplo Seu site http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js
demo CDN – proxy entrega de conteúdo (proxy reverso – nginx e Windows)
App real time: Timeline Twitter
App real time: Tempo Real Globo
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)
LongPolling Forma simples de maximizar o uso de uma requisição HTTP Suporte de todos os browsers (XHR) Conexão longa e “persistente”
demo Aplicações real time – chat
Fora da caixa ASP.NET é compatível com diversos projetos open source Microsoft mantém o site www.codeplex.com com diversos projetos e disponibiliza o site como repositório público para projetos open source.
Fora da caixa – exemplos Banco de dados NoSql http://cassandraemon.codeplex.com/ http://mongodbstudio.codeplex.com/ NodeJS http://nodejs.org/#download Lucene .Net
Fora da caixa – NuGet www.nuget.org Distribuição de projetos com fácil implementação no seu projeto (Visual Studio) Biblioteca da própria Microsoft ou pode ser adicionada outras bibliotecas
demo NodeJS – Windows
IIS 7 e 7.5 Diversos recursos podem ser implementados diretamente pelo IIS facilitando a implementação e o gerenciamento Os desenvolvedores precisam conhecer
demo IIS – (gzipe apagandoincêndio)
Dicas rápidas Modo de pipeline IIS Clássico Integrado
Dicas rápidas Debug = true em produção!!! NUNCA! A compilação de páginas ASP.NET leva mais tempo (otimizações desativadas neste modo) Código pode executar de forma mais lenta (caminhos de depuração habilitados) Muito mais memória é usada dentro do aplicativo em tempo de execução Scripts e imagens baixadas pelo manipulador WebResources.axd não são armazenados em cache
Dicas rápidas WebForms Só deixe viewstatehabilitato em locais que realmente você precisa! Por default o valor é “true”. Desde a versão 4.0 é muito mais fácil gerenciar esse controle. Compactação de Session, caso necessário a partir da versão 4.0 é possível compactar os objetos em sessão e caso não utilize desligue.
Dicas rápidas Bibliotecas prontas Cuidado com controles e plugins prontos Jquery, Ajax control toolkit e afins! Normalmente são pesados e consomem mais recursos do que o necessário! Ferramentas Conheça bem as ferramentas de análise como Firebug, Yslow, Fiddler, etc.
Conteúdo Relacionado Slide Obrigatorio Palestrantes, Por favor listarconteudosexistentesdentro das paginas dos produtos (www.microsoft.combrasil) e paginas do TechNet e MSDN (technet.microsoft.com/brasil– msdn.microsoft./com/brasil) Codeplex www.codeplex.com ASP.NET MVC www.asp.net/mvc ASP.NET Brasil http://msdn.microsoft.com/pt-br/ff380144 MSDN www.msdn.com.br Cleber Dantas www.cleberdantas.com Alexandre Tarifa www.alexandretarifa.com.br
Recursos Recursos para IT Pros http://technet.microsoft.com/pt-br Recursos para Desenvolvedores http://msdn.microsoft.com/pt-br
Obrigatorio Nãoesqueça de preenchersuaavaliação online www.teched.com.br/avaliacao
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Mais procurados

Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...Zabbix BR
 
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXMonitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXLuiz Andrade
 
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Werneck Costa
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorFellyph Cintra
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IAécio Pires
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglas Esteves
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Handerson Frota
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix BR
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performanceCleber Dantas
 
Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Rafael Pazini
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?tdc-globalcode
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 

Mais procurados (20)

Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXMonitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIX
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbix
 
Dwrsecomp
DwrsecompDwrsecomp
Dwrsecomp
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performance
 
Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 

Semelhante a Técnicas e recursos para desenvolvimento Web em cenários de grande escala

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsJorge Walendowsky
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 

Semelhante a Técnicas e recursos para desenvolvimento Web em cenários de grande escala (20)

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Cake Php
Cake PhpCake Php
Cake Php
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.js
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 

Mais de Alexandre Tarifa

Qual será o SEU software no futuro?
Qual será o SEU software no futuro?Qual será o SEU software no futuro?
Qual será o SEU software no futuro?Alexandre Tarifa
 
Cultura Ágil: Como startups de tecnologia criam produtos
Cultura Ágil: Como startups de tecnologia criam produtosCultura Ágil: Como startups de tecnologia criam produtos
Cultura Ágil: Como startups de tecnologia criam produtosAlexandre Tarifa
 
Ecossistema Microsoft por trás dos maiores apps de saúde do Brasil
Ecossistema Microsoft por trás dos maiores apps de saúde do BrasilEcossistema Microsoft por trás dos maiores apps de saúde do Brasil
Ecossistema Microsoft por trás dos maiores apps de saúde do BrasilAlexandre Tarifa
 
UX: Creating Killer Experiences - FIAP
UX: Creating Killer Experiences - FIAPUX: Creating Killer Experiences - FIAP
UX: Creating Killer Experiences - FIAPAlexandre Tarifa
 
Como escalar 20 milhões de usuários por mês utilizando ASP.NET
Como escalar 20 milhões de usuários por mês utilizando ASP.NETComo escalar 20 milhões de usuários por mês utilizando ASP.NET
Como escalar 20 milhões de usuários por mês utilizando ASP.NETAlexandre Tarifa
 
Minha Vida: +20 milhões de usuários mensais na Web e Mobile
Minha Vida: +20 milhões de usuários mensais na Web e MobileMinha Vida: +20 milhões de usuários mensais na Web e Mobile
Minha Vida: +20 milhões de usuários mensais na Web e MobileAlexandre Tarifa
 
Performance e escalabilidade de aplicações ASP.NET - Visual Studio Summit
Performance e escalabilidade de aplicações ASP.NET - Visual Studio SummitPerformance e escalabilidade de aplicações ASP.NET - Visual Studio Summit
Performance e escalabilidade de aplicações ASP.NET - Visual Studio SummitAlexandre Tarifa
 
Performance na Web - GDG DevFest SP 2014
Performance na Web - GDG DevFest SP 2014Performance na Web - GDG DevFest SP 2014
Performance na Web - GDG DevFest SP 2014Alexandre Tarifa
 
Melhorando a performance do seu banco de dados, não acessando ele!
Melhorando a performance do seu banco de dados, não acessando ele!Melhorando a performance do seu banco de dados, não acessando ele!
Melhorando a performance do seu banco de dados, não acessando ele!Alexandre Tarifa
 
Performance ao extremo para aplicações Web Mobile
Performance ao extremo para aplicações Web MobilePerformance ao extremo para aplicações Web Mobile
Performance ao extremo para aplicações Web MobileAlexandre Tarifa
 
Aplicações Windows Store Conectadas
Aplicações Windows Store ConectadasAplicações Windows Store Conectadas
Aplicações Windows Store ConectadasAlexandre Tarifa
 

Mais de Alexandre Tarifa (16)

Qual será o SEU software no futuro?
Qual será o SEU software no futuro?Qual será o SEU software no futuro?
Qual será o SEU software no futuro?
 
Cultura Ágil: Como startups de tecnologia criam produtos
Cultura Ágil: Como startups de tecnologia criam produtosCultura Ágil: Como startups de tecnologia criam produtos
Cultura Ágil: Como startups de tecnologia criam produtos
 
Mobile e a Vida Real
Mobile e a Vida RealMobile e a Vida Real
Mobile e a Vida Real
 
Ecossistema Microsoft por trás dos maiores apps de saúde do Brasil
Ecossistema Microsoft por trás dos maiores apps de saúde do BrasilEcossistema Microsoft por trás dos maiores apps de saúde do Brasil
Ecossistema Microsoft por trás dos maiores apps de saúde do Brasil
 
ARQ: Performance na Web
ARQ: Performance na WebARQ: Performance na Web
ARQ: Performance na Web
 
Mobile e a vida real
Mobile e a vida realMobile e a vida real
Mobile e a vida real
 
UX: Creating Killer Experiences - FIAP
UX: Creating Killer Experiences - FIAPUX: Creating Killer Experiences - FIAP
UX: Creating Killer Experiences - FIAP
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Como escalar 20 milhões de usuários por mês utilizando ASP.NET
Como escalar 20 milhões de usuários por mês utilizando ASP.NETComo escalar 20 milhões de usuários por mês utilizando ASP.NET
Como escalar 20 milhões de usuários por mês utilizando ASP.NET
 
Minha Vida: +20 milhões de usuários mensais na Web e Mobile
Minha Vida: +20 milhões de usuários mensais na Web e MobileMinha Vida: +20 milhões de usuários mensais na Web e Mobile
Minha Vida: +20 milhões de usuários mensais na Web e Mobile
 
Performance e escalabilidade de aplicações ASP.NET - Visual Studio Summit
Performance e escalabilidade de aplicações ASP.NET - Visual Studio SummitPerformance e escalabilidade de aplicações ASP.NET - Visual Studio Summit
Performance e escalabilidade de aplicações ASP.NET - Visual Studio Summit
 
Performance no ASP.NET 5
Performance no ASP.NET 5Performance no ASP.NET 5
Performance no ASP.NET 5
 
Performance na Web - GDG DevFest SP 2014
Performance na Web - GDG DevFest SP 2014Performance na Web - GDG DevFest SP 2014
Performance na Web - GDG DevFest SP 2014
 
Melhorando a performance do seu banco de dados, não acessando ele!
Melhorando a performance do seu banco de dados, não acessando ele!Melhorando a performance do seu banco de dados, não acessando ele!
Melhorando a performance do seu banco de dados, não acessando ele!
 
Performance ao extremo para aplicações Web Mobile
Performance ao extremo para aplicações Web MobilePerformance ao extremo para aplicações Web Mobile
Performance ao extremo para aplicações Web Mobile
 
Aplicações Windows Store Conectadas
Aplicações Windows Store ConectadasAplicações Windows Store Conectadas
Aplicações Windows Store Conectadas
 

Técnicas e recursos para desenvolvimento Web em cenários de grande escala

  • 1.
  • 2. Técnicas e recursos para desenvolvimento Web em cenários de grande escalaWEB309 Alexandre Tarifa Cleber Dantas
  • 3. Introdução Cenário de aplicações Web para 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)
  • 4. 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)
  • 5. Regra 1: Minimize HTTP Requests Regra 2: Use CDN´s (Content Delivery Network) Regra 3: Use “Expires Header“ Regra 4: Utilize Gzip Regra 5: Mova CSS para o topo Regra 6: Mova scripts para baixo Regra 7: Evite expressões em CSS Regra 8: ‘Inlined’ JavaScript e CSS Regra 9: Minimize Domínios Regra 10: Minimize JavaScript Regra 11: Evite Redirecionamentos Regra 12: Remova Scritps Duplicados Regra 13: Desabilite ETags Regra 14: Cache AJAX Front-End Regra 1: Minimize HTTP Requests Regra 2: Use CDN´s (Content Delivery Network) Regra 3: Use “Expires Header“ Regra 4: Utilize Gzip Regra 5: Mova CSS para o topo Regra 6: Mova scripts para baixo Regra 7: Evite expressões em CSS Regra 8: ‘Inlined’ JavaScript e CSS Regra 9: Minimize Domínios Regra 10: Minimize JavaScript Regra 11: Evite Redirecionamentos Regra 12: Remova Scritps Duplicados Regra 13: Desabilite ETags Regra 14: Cache AJAX
  • 6. demo Front-end (sprite, paralelismo de downloads e minify js)
  • 7. 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)
  • 8. demo AJAX (jQuery, JSON e jQuery Templates)
  • 9. 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)
  • 10. demo Cache (outputcache, cache profile, cache partial, memCached, IIS e helper de atualização de arquivosestáticos)
  • 11. memCached www.memcached.org Sistema distribuído de altíssima performance para armazenamento de informações em cache de objetos em MEMÓRIA RAM. Reduz drasticamente a carga de processamento de servidores de aplicação, banco de dados, etc. Criado pela Danga (livejournal.com) Utilizado por facebook (805 servidores), twitter, linkedin, wikipedia, minha vida, etc Fácil de gerenciar, adicionar novas máquinas e instâncias
  • 12.
  • 13. Infra - CDN Content Delivery Network Rede de distribuição de conteúdo Infraestrutura para ENTREGA do conteúdo Própria Terceirizada (Akamai, Ananke, Azion, 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
  • 14. CDN - Exemplo Seu site http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js
  • 15. demo CDN – proxy entrega de conteúdo (proxy reverso – nginx e Windows)
  • 16. App real time: Timeline Twitter
  • 17. App real time: Tempo Real Globo
  • 18. 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)
  • 19. LongPolling Forma simples de maximizar o uso de uma requisição HTTP Suporte de todos os browsers (XHR) Conexão longa e “persistente”
  • 20. demo Aplicações real time – chat
  • 21. Fora da caixa ASP.NET é compatível com diversos projetos open source Microsoft mantém o site www.codeplex.com com diversos projetos e disponibiliza o site como repositório público para projetos open source.
  • 22. Fora da caixa – exemplos Banco de dados NoSql http://cassandraemon.codeplex.com/ http://mongodbstudio.codeplex.com/ NodeJS http://nodejs.org/#download Lucene .Net
  • 23. Fora da caixa – NuGet www.nuget.org Distribuição de projetos com fácil implementação no seu projeto (Visual Studio) Biblioteca da própria Microsoft ou pode ser adicionada outras bibliotecas
  • 24. demo NodeJS – Windows
  • 25. IIS 7 e 7.5 Diversos recursos podem ser implementados diretamente pelo IIS facilitando a implementação e o gerenciamento Os desenvolvedores precisam conhecer
  • 26. demo IIS – (gzipe apagandoincêndio)
  • 27. Dicas rápidas Modo de pipeline IIS Clássico Integrado
  • 28. Dicas rápidas Debug = true em produção!!! NUNCA! A compilação de páginas ASP.NET leva mais tempo (otimizações desativadas neste modo) Código pode executar de forma mais lenta (caminhos de depuração habilitados) Muito mais memória é usada dentro do aplicativo em tempo de execução Scripts e imagens baixadas pelo manipulador WebResources.axd não são armazenados em cache
  • 29. Dicas rápidas WebForms Só deixe viewstatehabilitato em locais que realmente você precisa! Por default o valor é “true”. Desde a versão 4.0 é muito mais fácil gerenciar esse controle. Compactação de Session, caso necessário a partir da versão 4.0 é possível compactar os objetos em sessão e caso não utilize desligue.
  • 30. Dicas rápidas Bibliotecas prontas Cuidado com controles e plugins prontos Jquery, Ajax control toolkit e afins! Normalmente são pesados e consomem mais recursos do que o necessário! Ferramentas Conheça bem as ferramentas de análise como Firebug, Yslow, Fiddler, etc.
  • 31. Conteúdo Relacionado Slide Obrigatorio Palestrantes, Por favor listarconteudosexistentesdentro das paginas dos produtos (www.microsoft.combrasil) e paginas do TechNet e MSDN (technet.microsoft.com/brasil– msdn.microsoft./com/brasil) Codeplex www.codeplex.com ASP.NET MVC www.asp.net/mvc ASP.NET Brasil http://msdn.microsoft.com/pt-br/ff380144 MSDN www.msdn.com.br Cleber Dantas www.cleberdantas.com Alexandre Tarifa www.alexandretarifa.com.br
  • 32. Recursos Recursos para IT Pros http://technet.microsoft.com/pt-br Recursos para Desenvolvedores http://msdn.microsoft.com/pt-br
  • 33. Obrigatorio Nãoesqueça de preenchersuaavaliação online www.teched.com.br/avaliacao
  • 34. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas do Editor

  1. TEMPO PREVISTO: 10 MIN
  2. CSS SpriteFFSprite meInstalaçãohttp://www.dietaesaude.com.br/alimentosGerar sprite e mostrar css modificadaParalelismoLimite de download paraleloIE7 e anteriores e algumas versões do FF suportam apenas 2 downloads paralelos por subdomínio – Keep aliveIE8 suporta 6 downloads em paralelo – Keep aliveAlgumas versões do FF suportam 8 downloads, IE7 e anteriores suportam 4 – Sem keep alivenetwork.http.max- - Mostrar no FFMostrar site do Minha Vida e explicar os cookies2 MINUTOSMinifyExplicar YUI CompressorMostrar DLLsArquivo de buildConfiguração no post build (propriedades)Compilar e mostrar ganhos gerais
  3. AjaxMostrar site do linha de códigopelo FFMostrar site do techedpelo FFMostrar site do DS, busca de alimentoExemplo 1, ajax, json e jquery templatesDemo.js esta o código do jquery templateSnippet do template Jqueryna toolbox@using (Ajax.BeginForm("Comentar", new AjaxOptions { OnSuccess = "AtualizaDados", HttpMethod = "Post" })){}Mostrarresultado no FFExemplo 2Math.js scriptArrastarcódigoMostrarcarregamento no FFExemplo 3Mostrarcarregamento normal do Iframe – FFMostrar com modificação
  4. Client MemCached - http://code.google.com/p/memcached/wiki/ClientsClient CacheExplicar a diferença entre os headers Expires e Cache-Control - Mostar no FF – Yahoo.comConfigurar na pasta Scripts no IIS o tempo de cache de 10 min, depois mostrar o resultado para o público.Mostrar o Helper de atualização de conteúdo estático + url rewrite. (explicar devagar)Criar o HelperColocar o namespace dentro do web.config da pasta de viewsExplicar que só funciona quando o modo debug não esta ativo.Trocar as chamadas (puxar da toolbox)Executar mostrar que o caminho não existe, logo ta certo.Habilitar a regra de rewrite e mostrar o resultado.