SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Técnicas e recursos para
desenvolvimento Web em cenários
        de grande escala



                        Globalcode – Open4education
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
Minha Vida




             Globalcode – Open4education
Dieta e Saúde




                Globalcode – Open4education
Agenda da Saúde




                  Globalcode – Open4education
90 funcionários – 120 Até
o fim do ano




                            Globalcode – Open4education
25 da área de tecnologia




                           Globalcode – Open4education
8 milhões de usuários/mês




                            Globalcode – Open4education
50 milhões pageviews/mês




                           Globalcode – Open4education
15 TB distribuídos/mês
(js, css, html, images, vídeos)




                                  Globalcode – Open4education
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
Agenda
 Front-end
 Delivery
 Real time




             Globalcode – Open4education
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
Front-end - Demo



sprite, paralelismo de downloads
e minify js



                        Globalcode – Open4education
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
Ajax - Demo



   jQuery, JSON e jQuery
   Templates



                      Globalcode – Open4education
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
Cache – Demo



IIS, helper de atualização de
arquivos estáticos



                       Globalcode – Open4education
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
Delivery - CDN




                 Globalcode – Open4education
Delivery - NGINX
 Proxy Reverso
 Utilizamos para entrega de imagens (muito
 performático)
 http://nginx.org/




                                     Globalcode – Open4education
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
Exemplos: Timeline Twitter




                             Globalcode – Open4education
Exemplos: Tempo Real
Globo.com




                       Globalcode – Open4education
Real Time – Long Pooling
- Demo



Aplicações real time – chat



                           Globalcode – Open4education
Links
 http://tecnologia.minhavida.com.br
 http://br.linkedin.com/company/minha-vida
 http://www.cleberdantas.com
 http://www.treinando.net

 @cleberdantas vi sua palestra no #tdc2012 e
 quero um desconto em cursos da
 @treinandodotnet


                                      Globalcode – Open4education
Obrigado. Perguntas?




                       Globalcode – Open4education

Mais conteúdo relacionado

Mais procurados

Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringEder Magalhães
 
Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre DrupalWebdrop
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiRankest
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps4LinuxCursos
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.4LinuxCursos
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da redeAndré Avorio
 
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...tdc-globalcode
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosMario Guedes
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
jQuery: Write less, do more
jQuery: Write less, do morejQuery: Write less, do more
jQuery: Write less, do morehfsantos
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTaise Dias da Silva
 
Minicurso WordPress
Minicurso WordPressMinicurso WordPress
Minicurso WordPressEdson Silva
 
CODE N' TELL 17/02/2014
CODE N' TELL 17/02/2014CODE N' TELL 17/02/2014
CODE N' TELL 17/02/2014Rodrigo Donini
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...tdc-globalcode
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Sergio Lima
 

Mais procurados (20)

Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre Drupal
 
Mc56 gwt
Mc56 gwtMc56 gwt
Mc56 gwt
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpi
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da rede
 
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
jQuery: Write less, do more
jQuery: Write less, do morejQuery: Write less, do more
jQuery: Write less, do more
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
 
Minicurso WordPress
Minicurso WordPressMinicurso WordPress
Minicurso WordPress
 
CODE N' TELL 17/02/2014
CODE N' TELL 17/02/2014CODE N' TELL 17/02/2014
CODE N' TELL 17/02/2014
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
 

Destaque

[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQLCleber Dantas
 
LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery TemplatesCleber Dantas
 
Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Cleber Dantas
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performanceCleber Dantas
 
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
 
[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4JCleber Dantas
 
[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e SaúdeCleber Dantas
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4Cleber Dantas
 
Performance em aplicações Web
Performance em aplicações WebPerformance em aplicações Web
Performance em aplicações WebCleber Dantas
 

Destaque (9)

[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery Templates
 
Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performance
 
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...
 
[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J
 
[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4
 
Performance em aplicações Web
Performance em aplicações WebPerformance em aplicações Web
Performance em aplicações Web
 

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

TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APIEdlaine Zamora
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Google AppEngine and JEE
Google AppEngine and JEEGoogle AppEngine and JEE
Google AppEngine and JEERafael Nunes
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoThiago Freitas
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Max Claus Nunes
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 

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

Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua API
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Google AppEngine and JEE
Google AppEngine and JEEGoogle AppEngine and JEE
Google AppEngine and JEE
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
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
  • 3. Minha Vida Globalcode – Open4education
  • 4. Dieta e Saúde Globalcode – Open4education
  • 5. Agenda da Saúde Globalcode – Open4education
  • 6. 90 funcionários – 120 Até o fim do ano Globalcode – Open4education
  • 7. 25 da área de tecnologia Globalcode – Open4education
  • 8. 8 milhões de usuários/mês Globalcode – Open4education
  • 9. 50 milhões pageviews/mês Globalcode – Open4education
  • 10. 15 TB distribuídos/mês (js, css, html, images, vídeos) 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
  • 12. Agenda Front-end Delivery Real time 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
  • 14. Front-end - Demo sprite, paralelismo de downloads e minify js 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
  • 16. Ajax - Demo jQuery, JSON e jQuery Templates 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
  • 20. Delivery - CDN 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
  • 23. Exemplos: Timeline Twitter Globalcode – Open4education
  • 24. Exemplos: Tempo Real Globo.com Globalcode – Open4education
  • 25. Real Time – Long Pooling - Demo Aplicações real time – chat Globalcode – Open4education
  • 26. Links http://tecnologia.minhavida.com.br http://br.linkedin.com/company/minha-vida http://www.cleberdantas.com http://www.treinando.net @cleberdantas vi sua palestra no #tdc2012 e quero um desconto em cursos da @treinandodotnet Globalcode – Open4education
  • 27. Obrigado. Perguntas? Globalcode – Open4education