A distribuição de aplicações web em .NET na sua maioria é feita através do IIS, porém as aplicações podem ser compostas de tecnologias mistas, dependendo das necessidades das aplicações. Neste cenário surge mais uma tecnologia disruptiva, o NodeJS, onde sua utilização tem impacto direto, tanto positivo quanto negativo, na arquitetura da aplicação. Nesta palestra serão apresentados todos os aspectos que compõem a arquitetura do IIS, conceitos mais intimos de seu funcionamento interno, como também a arquitetura do NodeJS, seus benefícios e como a composição IIS e NodeJS, pode ser extremamente útil se bem empregada.
Palestra apresentada inicialmente no DNAD12
2. 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.
21. 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
23. A thread fica parada
apenas aguardando a
resposta do Banco de
Dados
24. 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
25. var result =
command.ExecuteNonQuery(
“UPDATE Tabela SET Ativo=1“
);
// 240.000.000 + tempo de
processamento do banco depois
print(result.TotalCount);
26. .NET Provider
Milhões de instruções perdidas
6 Threads ocupando memória
Program Counter
}
Para de Processar
Program Counter
Volta a Processar
34. 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