SlideShare uma empresa Scribd logo
OU?
         COM?

Uma questão de arquitetura
EU
      Sidney F, drogado e prostituido.
    Há 6 anos ainda luta para se livrar do
WebForms. Ativista contra a entrada de novas
 drogas na vida do desenvolvedor moderno
             como Coffeescript.
Internet
Primeiro Passo
Admita que você tem um problema
“Um homem que
   não conhece sua
história está fadado a
       repeti-la”
IIS 1.0
• 1995
• ONE-WAY
• Apenas arquivos estáticos
• Arquitetura Monolitica
(MTX.EXE)
• Add-on do Windows NT 3.51
IIS 2.0
• 1996
• TWO-WAY, sofrivel
• Surge o CGI
• Ainda é Monolitico
• Embutido no Windows NT 4
IIS 3.0 e 4.0
• 1998
• TWO-WAY, ainda sofrivel
• Ainda é Monolitico
• Windows NT 4 (Service Pack 3)
• IIS 4 era Option Pack
IIS 5.0
• 2000
• TWO-WAY, fácil
• Core Monolitico, com pontos
de extensão
• DLLHOST.EXE
• Windows 2000
• ASP é criado (uhuuuuu)
IIS 6.0
• 2003
• TWO-WAY, bem fácil
• Core com multiplos niveis de
isolamento
• W3WP  .EXE
• Windows 2003 e XP
• .NET entra em cena
IIS 7.0 e 7.5
• 2008
• MULTI-WAY, bem fácil
• Completamente reescrito
• Windows 2008 e Vista
• Arquitetura baseada em plugins
Overview of IIS 6.0
        Architecture
http://www.microsoft.com/technet/prodtechnol/
WindowsServer2003/Library/IIS/843df643-1dbb-
    4fb6-910d-ec1965fa9e43.mspx?mfr=true
Internamente
   é assim
http://sitequalquer.com/RotaLouca/13

HTTP.SYS      http://sitequalquer.com/DrogaPesada.aspx
              http://sitequalquer.com/IMAGEM.PNG
              http://sitequalquer.com/TESTE.HTM



                 Como está
               configurado o
SVCHOST.EXE   mapeamento de
                requisições?

               Static Provider                .NET Provider


W3WP.EXE
var result =
command.ExecuteNonQuery(
    “UPDATE Tabela SET Ativo=1“
);
A thread fica parada
apenas aguardando a
resposta do Banco de
        Dados
Tempo do I/O
L1:      3 instruções
L2:      14 instruções
RAM:     250 instruções
DISK:    41,000,000 instruções
NETWORK: 240,000,000 instruções
var result =
command.ExecuteNonQuery(
    “UPDATE Tabela SET Ativo=1“
);

// 240.000.000 + tempo de
processamento do banco depois

print(result.TotalCount);
.NET Provider




                                    Milhões de instruções perdidas
                                    6 Threads ocupando memória
Program Counter




                                    }
Para de Processar




Program Counter
Volta a Processar
Como evitar este
  desperdicio?
NodeJS
http://s3.amazonaws.com/four.livejournal/20091
                117/jsconf.pdf
Porque NodeJS?

Eu gosto e gosto não
     se discute.
Como funciona a
 arquitetura no
    NodeJS?
http://sitequalquer.com/RotaLouca/13

LIBEV          http://sitequalquer.com/DrogaPesada.aspx
               http://sitequalquer.com/IMAGEM.PNG
               http://sitequalquer.com/TESTE.HTM



                Static Provider                Sua Aplicação


JS Libraries
var result =
command.ExecuteNonQuery(
    “UPDATE Tabela SET Ativo=1“,
    function(result){
         // faz algo com o retorno
    }
);
Node JS
1a Requisição
PC processa         LIBEV


Código chama IO
PC volta p/ LIBEV             function (result) { … }




                           O tempo que para o IO retornar e
                        acionar o callback pode levar muito mais
                         de 240.000.000 instruções se lembram?
                         Vamos liberar a Thread para processar
                                       outra coisa
É possivel usar o
NodeJS junto com
       IIS?
Internamente
 ficaria assim
É possivel desenvolver
  considerando o IO
 Bloqueante no .NET?
Mas meus sistemas
  legados é possivel
mudar essa arquitetura?
Dúvidas?
Só por hoje
  Obrigado

Mais conteúdo relacionado

Mais procurados

InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
Arley Rodrigues
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
dtml2k
 
Frontend (RailsMG)
Frontend (RailsMG)Frontend (RailsMG)
Frontend (RailsMG)
Daniel Lopes
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
Joao Andre Picao
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
Miguel Sousa Filipe
 
Projetos de rede sistemas de servidores
Projetos de rede sistemas de servidoresProjetos de rede sistemas de servidores
Projetos de rede sistemas de servidores
Ariel Fernando
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
Saveincloud
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
Saveincloud
 
Sistemas operacional 9
Sistemas operacional 9Sistemas operacional 9
Sistemas operacional 9
Nauber Gois
 
Virtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia LinuxVirtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia Linux
Fernando Costa
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWS
Rafael Nunes
 
Componentes Web J2EE
Componentes Web J2EEComponentes Web J2EE
Componentes Web J2EE
Denis L Presciliano
 
Virtualização com Xen
Virtualização com XenVirtualização com Xen
Virtualização com Xen
Thiago Cavalcante
 
Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)
Joao Kanino
 
Compilando o kernel linux (2)
Compilando o kernel linux (2)Compilando o kernel linux (2)
Compilando o kernel linux (2)
Thiago Inacio de Matos
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Felipe Blini
 
Adm sop-unidade2
Adm sop-unidade2Adm sop-unidade2
Adm sop-unidade2
Leandro Almeida
 
Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos Servidores
Alexandre Maia
 
ICA-AtoM - Configuração PC
ICA-AtoM - Configuração PCICA-AtoM - Configuração PC
ICA-AtoM - Configuração PC
Sara Santos
 
Django no AWS
Django no AWSDjango no AWS
Django no AWS
Rafael Nunes
 

Mais procurados (20)

InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
InfoBrasil 2014 - O sucesso da virtualização em uma instituição federal gasta...
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
 
Frontend (RailsMG)
Frontend (RailsMG)Frontend (RailsMG)
Frontend (RailsMG)
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
Projetos de rede sistemas de servidores
Projetos de rede sistemas de servidoresProjetos de rede sistemas de servidores
Projetos de rede sistemas de servidores
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
 
Sistemas operacional 9
Sistemas operacional 9Sistemas operacional 9
Sistemas operacional 9
 
Virtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia LinuxVirtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia Linux
 
Arquitetura Web no AWS
Arquitetura Web no AWSArquitetura Web no AWS
Arquitetura Web no AWS
 
Componentes Web J2EE
Componentes Web J2EEComponentes Web J2EE
Componentes Web J2EE
 
Virtualização com Xen
Virtualização com XenVirtualização com Xen
Virtualização com Xen
 
Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)
 
Compilando o kernel linux (2)
Compilando o kernel linux (2)Compilando o kernel linux (2)
Compilando o kernel linux (2)
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Adm sop-unidade2
Adm sop-unidade2Adm sop-unidade2
Adm sop-unidade2
 
Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos Servidores
 
ICA-AtoM - Configuração PC
ICA-AtoM - Configuração PCICA-AtoM - Configuração PC
ICA-AtoM - Configuração PC
 
Django no AWS
Django no AWSDjango no AWS
Django no AWS
 

Destaque

Kzan IIS
Kzan IISKzan IIS
Kzan IIS
guestbdb54c
 
Manual de instalação de https no iis7 1
Manual de instalação de https no iis7   1Manual de instalação de https no iis7   1
Manual de instalação de https no iis7 1
Washington Souza
 
New Flying Dog Brewery Packaging
New Flying Dog Brewery Packaging New Flying Dog Brewery Packaging
New Flying Dog Brewery Packaging
FlyingDogBrewery
 
Iis 6.0
Iis 6.0Iis 6.0
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business IntelligenceTechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
Diego Nogare
 
IIS 7: The Administrator’s Guide
IIS 7: The Administrator’s GuideIIS 7: The Administrator’s Guide
IIS 7: The Administrator’s Guide
Information Technology
 

Destaque (6)

Kzan IIS
Kzan IISKzan IIS
Kzan IIS
 
Manual de instalação de https no iis7 1
Manual de instalação de https no iis7   1Manual de instalação de https no iis7   1
Manual de instalação de https no iis7 1
 
New Flying Dog Brewery Packaging
New Flying Dog Brewery Packaging New Flying Dog Brewery Packaging
New Flying Dog Brewery Packaging
 
Iis 6.0
Iis 6.0Iis 6.0
Iis 6.0
 
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business IntelligenceTechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
TechEd Brasil 2015 - Novidades do SQL Server 2016 para Business Intelligence
 
IIS 7: The Administrator’s Guide
IIS 7: The Administrator’s GuideIIS 7: The Administrator’s Guide
IIS 7: The Administrator’s Guide
 

Semelhante a Dnad 2012 iis - uma questão de arquitetura

Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
Alex Hübner
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
Eduardo Pires
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
Miguel Vilaca
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
Fabrício Lopes Sanchez
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
Gleicon Moraes
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!
Vinicius Mussak
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Fabrício Lopes Sanchez
 
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
Giovanni Bassi
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0
tdc-globalcode
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
Caliel Costa
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
Andre Baltieri
 
1409243945064
14092439450641409243945064
1409243945064
Fábio Junior
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
Alexsandro Pereira
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
tdc-globalcode
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
Mozart Diniz
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
Iuri Andreazza
 
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Renato Groff
 
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
Alexandre Tarifa
 
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Rodrigo Immaginario
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
Luciano Moreira
 

Semelhante a Dnad 2012 iis - uma questão de arquitetura (20)

Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
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
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
1409243945064
14092439450641409243945064
1409243945064
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
 
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
 
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
Dicas e Truques de Performance: Como obter o maximo do Windows Server 2008 R2...
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
 

Dnad 2012 iis - uma questão de arquitetura