DevOps na AWS: Construindo Sistemas para Entregas Rápidas
O Futuro do ASP.NET
1.
2.
3.
4. ASP.NET – Um pouco de sua história
• Primeira versão em 2002 junto do .NET Framework 1.0
• Otimizado para programadores ASP e Visual Basic
• Desenvolvido para rodar no IIS
• Framework monobloco com N conceitos em um único pacote (System.Web)
HTTP Intrinsics
Modules
Handlers
Session
Cache
WebForms
Controls
6. System.Web
Um projeto MVC vazio já vem
com uma bagagem bem pesada.
Modelo de programação
“everything and the kitchen sink”.
Você tem que pagar por algo que
não quer ou não precisa.
7. Logo isso criou alguns desafios (problemas)...
• O ASP.NET (System.Web) é entregue como parte do .NET Framework.
• Causando um ciclo lento de atualizações. Durante anos o ASP.NET ficou sem receber atualizações.
• Para uma nova feature ser introduzida era quase sempre necessário atualizar o .NET Framework.
• A liberação e adoção de uma nova versão do .NET Framework é muito lenta.
• As features do ASP.NET cresceram com isso cresceu também o tamanho e complexidade do System.Web.
• Isso ocasiona um aumento no consumo de recursos para o ASP.NET rodar.
• Uma única opção de host – O IIS.
8. Solução 1 – Separar
• 2007 – 2008 – É introduzido o framework MVC ao ASP.NET sendo que é
distribuído separadamente, aumentando a velocidade de entrega.
Versões foram distribuídas como complementos.
Solução 2 – Quebrar as dependências
• 2012 – 2013 – É entregue o ASP.NET Web API e ASP.NET SignalR
• Escrito sem nenhuma dependência com o System.Web
• Possui capacidade de Self-Hosting (Independente de IIS).
9.
10. Katana Project
É uma implementação Microsoft da especificação OWIN no ASP.NET.
OWIN – Open Web Interface for .NET
• É um “standart” uma especificação.
• Não existe exatamente como código ou componente.
• É a descrição de como idealmente o comportamento de sua implementação deve funcionar.
• Foi criado pela comunidade .NET baseado no projeto Rack da comunidade Ruby.
• Define a comunicação entre servidores e aplicações .NET para Web. O objetivo do OWIN é
desacoplar o servidor e a aplicação de forma que estimule o desenvolvimento de componentes
Web .NET de forma acelerada e aberta para a comunidade.
11. Arquitetura Tradicional ASP.NET
WEB HOST
(IIS)
ASP.NET
Components
O funcionamento do ASP.NET está diretamente acoplado ao IIS e ao
extenso pipeline do System.Web.
12. Arquitetura OWIN
WEB HOST
• IIS
• CustomHost
• OwinHost
ASP.NET
Components
Interface
Enviroment Dictionary
IDictionary<string, object>
Application Delegate
Func<IDictionary<string, object>, Task>
• Pequeno número de dependências necessárias para implementar OWIN, aumentando a acessibilidade para
desenvolvedores escreverem seus próprios componentes.
• Design assíncrono permite uma abstração muito eficiente, principalmente em operações onde o uso dos
recursos computacionais é mais intenso.
• Como o Enviroment Dictionary é utilizado como parâmetro para o Delegate vários componentes podem ser
facilmente encaixados e encadeados criando pipelines de processamento bem complexos.
14. Arquitetura Katana
Application
Middleware
Server
Host Orquestra o workflow e gerencia os processos
IIS/ASP.NET – Custom Host – OWIN Host
Abre uma porta TCP e escuta os requests e os
envia através do OWIN pipeline.
SystemWeb, HttpListener, WebListener
O componente que implementa OWIN (Delegate) que opera
dentro do pipeline. SignalR, Web API.
Sua aplicação, seu código que irá implementar algum
middleware (por ex. SignalR).
15. Resumindo a história...
• O OWIN proporciona o desacoplamento da aplicação no servidor (IIS).
• Uma vez que não dependemos mais do IIS que trabalha no pipeline do System.Web podemos
desenvolver aplicações mais leves e sem depender de modificações no .NET Framework
• As possibilidades de criar e distribuir novos componentes para ASP.NET cresceu potencialmente.
• Foram introduzidos mais duas opções de host o OWIN Host e o Custom Host.
• Isso significa que uma aplicações SignalR e WebAPI podem rodar em qualquer plataforma que
implemente OWIN (Linux/OSx/Windows).
• Existem outros componentes (middlewares) implementanto OWIN como NancyFX, FubuMVC, etc...
• Além do Katana que disponibiliza interfaces para Server, Host e Middleware, existe um projeto “não
Microsoft” chamado NOWIN que é um OWIN Server e promete ser mais rápido do que o próprio
NodeJS (mesmo rodando em Windows).
17. Mas e se eu quiser todos esses benefícios + IIS?
• IIS lida com gerenciamento da vida útil aplicação.
• Ele pode suspender (em vez de encerrar) processos que estão ociosos para ajudar a equilibrar os
recursos disponíveis do sistema.
• IIS oferece um cache de modo de usuário embutido e pode comprimir automaticamente o conteúdo
dos responses se for o caso.
• IIS suporta filtragem de requests e transient worker process identities.
• Mais de 10 anos de implementações e melhorias de segurança.
• No cenário do Self Host você é responsável por muitas das responsabilidades que o IIS toma conta,
além disso ele já existe para isso por que não utilizá-lo?
18. Project Helios
• É baseado nos mesmos motivadores do Katana Project.
• Utiliza o IIS Core (extremamente poderoso) como se fosse uma API, não depende da implementação
do pipeline do System.Web.
• Oferece compatibilidade com o OWIN porém fornece todas as vantagens do IIS e com uma
velocidade de na média 96% superior ao do ASP.NET clássico.
• Pode ser utilizado independente do OWIN.
• Requerimentos Mínimos:
• Windows 8 ou Windows Server 2012
• .NET Framework 4.5.1
• Visual Studio 2012 ou 2013
20. vNext – O futuro do ASP.NET
Parte 2
• Assista no TechEd:
• DEV-B385 INTRODUCING: The Future of .NET on the Server
DEV-B411 DEEP DIVE: The Future of .NET on the Server
http://tena2014.eventpoint.com/topic/list