Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]1. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
MVP ShowCast 2013
Deploy de aplicações ASP.NET para a nuvem:
além dos livros e blogs
Fabrício Lopes Sanchez
ASP.NET/IIS
Chief Executive Officer (CEO) – Conio Soluções em Tecnologia
@SanchezFabricio
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
2. SESSÃO: DESENVOLVIMENTO
Agenda
♦Introdução
♦Preparando seu site para Windows Azure
Ferramentas
Tipos de projetos
Configurações
♦Considerações sobre “estados”
Statelessness
AJAX
Gerenciamento de seções no Windows Azure
♦Tópicos avançados
DNS
Upload de arquivos
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
TRILHA: DESENVOLVIMENTO WEB
9. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
A primeira coisa a ter em mente…
Existem 3 grandes ambientes para deployment de aplicações no Windows Azure. Ao criar
um projeto, isto deve estar claro para o desenvolvedor/arquiteto.
Roles (Web & Worker)
(PaaS flexível)
Windows Azure Websites
(PaaS)
Estes ambientes podem facilmente integrar-se
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Virtual Machines
(IaaS)
10. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Web Roles
Web Role
Um container para executar aplicações web no modelo
PaaS que suporta personalizações de ambiente (startup
tasks). Suas principais características:
♦ SLA de 99,9% (desde que hajam no mínimo 2 servidores)
♦ Balanceamento de carga automático
♦ Reclicagem automática de servidores
♦ Suporta personalizações no ambiente
♦ Escala “infinita”
♦ Cada publish é um publish completo isto é, não é
incremental/diferencial.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
11. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Web Sites (WAWS)
Windows Azure Web Sites
Um container para executar aplicações web no modelo
PaaS que não suporta personalizações de ambiente.
Funciona como um host tradicional. Suas principais
características:
♦ Modelos de host: gratuito, compartilhado e padrão.
♦ Suporta auto escala.
♦ Suporta: ASP, ASP.NET e PHP com SQL Server ou MySQL.
♦ Publish via Web Deploy (incremental/diferencial) ou FTP.
♦ Não há reciclagem de servidores.
♦ SLA de 99,9%.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
12. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Virtual Machines
Windows Azure Virtual Machines
Um servidor virtual (com Windows ou Linux) que pode
ser 100% configurado de acordo com as demandas
exigidas pela aplicação. Características:
♦ Atualização, licenciamento e manutenção do ambiente fica
por conta do cliente.
♦ Ambiente 100% personalizável via RDC.
♦ Templates prontos (Linux e Windows).
♦ Publish via Web Deploy ou FTP (depende da configuração).
♦ SLA neste caso se aplica a VM e aos servidos de rede.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
15. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Criando novos projetos (web sites)
♦ Um projeto para ser executado no Windows Azure Web Sites não possui requisitos
prévios, como para as web roles.
♦ Basta criar seu projeto ASP.NET e realizar a publicação.
♦ Note as diferenças entre as abordagens:
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
16. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Criando novos projetos (web sites)
♦Se quiséssemos, por exemplo, visualizar as diferentes configurações,
bastaria fazer:
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
17. SESSÃO: DESENVOLVIMENTO
Criando novos projetos (VM’s)
Neste caso, para que as aplicações
funcionem corretamente, elas devem seguir
as especificações do servidor virtual.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
TRILHA: DESENVOLVIMENTO WEB
18. SESSÃO: DESENVOLVIMENTO
Demo
Uma aplicação ASP.NET MVC
rodando no Windows Azure
Web Sites, Web Roles e Servidores Virtuais (VM’s)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
TRILHA: DESENVOLVIMENTO WEB
21. SESSÃO: DESENVOLVIMENTO
Considerações sobre “estados”
Se ambiente de host para a aplicação
for uma “web role”, atente para as dicas:
Não existe armazenamento de estado em instâncias
individuais.
Pedidos em sequência não cairão na mesma instância.
Não se esqueça que tudo é gerado dinamicamente
pela view, inclusive imagens.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
TRILHA: DESENVOLVIMENTO WEB
22. SESSÃO: DESENVOLVIMENTO
Considerações sobre AJAX
As requisições do cliente podem não ser
direcionadas para a mesma instância de
onde partiu a chamada inicial.
Portanto, não gere um conteúdo e deixe no servidor
para recuperar com AJAX mais tarde.
Utilize os “MachineKey” junto com ViewStates, já que
todas as instâncias possuem a mesma chave de
máquina.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
TRILHA: DESENVOLVIMENTO WEB
26. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Considerações sobre “sessões”
Opção 1: SQL Azure “depósito” de sessões (SQL Server Session State)
Aplicação viaja até o banco de dados a cada requisição
♦ Efetua leitura quando a requisição é iniciada
♦ Grava a atualização quando a requisição termina
Você pode ainda habilitar a compressão de sessões e escalar ao longo de
múltiplos bancos de dados (storage partition).
A grande vantage aqui é o baixo custo do SQL Azure. A desvantagem é o
baixo desempenho.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
28. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Considerações sobre “sessões”
♦Serialize e criptografe o conteúdo das sessões em Cookies.
♦Atualmente Cookies podem atuar como excelentes provedores de
estado de sessões.
♦Cookies permitem incrementar consideravalmente performance.
♦Os Cookies podem ser consultados a cada nova requisição.
♦Imagens devem ser servidas à aplicação de outras formas não
voláteis (Azure Blobs, por exemplo).
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
29. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Demo
Um esquema de login baseado em
cookie para uma app ASP.NET MVC
Aplicação “Cadê meu medico?”
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
33. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Considerações sobre uploads
♦Ao utilizar web roles, você deverá preocupar-se sempre com upload
de arquivos. Seguem algumas dicas:
♦ Busque sempre a opção de armazenamento não volátil.
♦ Criar blobs com containers de nomes sugestivos.
♦ Faça o upload para estes containers e consuma em sua aplicação.
♦ Nunca realize upload no mesmo servidor de aplicação (lembre-se, ele
deixará de existir a qualquer momento).
♦ Opte sempre que possível, pela geo-replicação.
♦ Procure utilizar HTTPS sempre.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
34. SESSÃO: DESENVOLVIMENTO
TRILHA: DESENVOLVIMENTO WEB
Considerações sobre bancos de dados
♦Existem basicamente duas abordagens em relação a migração de
bancos de dados como serviço (PaaS):
♦ Migração via ferramenta específica (SQL Database Migration, por exemplo)
♦ Migração manual, rodando o script gerado pelo Management Studio do SQL
Server.
♦Para situações mais complexas, a segunda opção mostra-se mais
eficiente.
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.