Page 1
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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
Page 2
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Agenda
♦Introdução
♦Preparando seu site para Windows AzureFerramentasTipos de projetosConfigurações
♦Considerações sobre “estados”StatelessnessAJAXGerenciamento de seções no Windows Azure
♦Tópicos avançadosDNSUpload de arquivos
Page 3
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Introdução
Windows Azure
Page 4
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Visão geral do Windows Azure
x x
Page 5
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Começando...
Preparando sua aplicação para o Windows Azure
Page 6
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Preparando o Visual Studio
♦
Page 7
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Preparando o Visual Studio
♦
Page 8
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando...
Criando aplicações para cadaambiente
Page 9
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
A primeira coisa a ter em mente…
Existem 3 grandes ambientes para deployment de aplicações no Windows Azure. Ao criarum projeto, isto deve estar claro para o desenvolvedor/arquiteto.
Roles (Web & Worker)(PaaS flexível)
Windows Azure Websites(PaaS)
Virtual Machines(IaaS)
Estes ambientes podem facilmente integrar-se
Page 10
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Web Roles
Web RoleUm container para executar aplicações web no modeloPaaS 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.
Page 11
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Web Sites (WAWS)
Windows Azure Web SitesUm container para executar aplicações web no modeloPaaS que não suporta personalizações de ambiente. Funciona como um host tradicional. Suas principaiscaracterí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%.
Page 12
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Virtual Machines
Windows Azure Virtual MachinesUm servidor virtual (com Windows ou Linux) que podeser 100% configurado de acordo com as demandasexigidas pela aplicação. Características:
♦ Atualização, licenciamento e manutenção do ambiente ficapor 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.
Page 13
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando novos projetos (web roles)
Page 14
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando novos projetos (web roles)
Novas referênciasNovo projeto
Adição do trace no web.config
Page 15
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando novos projetos (web sites)
♦ Um projeto para ser executado no Windows Azure Web Sites não possui requisitosprévios, como para as web roles.
♦ Basta criar seu projeto ASP.NET e realizar a publicação.
♦ Note as diferenças entre as abordagens:
Page 16
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando novos projetos (web sites)
♦Se quiséssemos, por exemplo, visualizar as diferentes configurações, bastaria fazer:
Page 17
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Criando novos projetos (VM’s)
Neste caso, para que as aplicaçõesfuncionem corretamente, elas devem seguiras especificações do servidor virtual.
Page 18
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Demo
Uma aplicação ASP.NET MVC rodando no Windows AzureWeb Sites, Web Roles e Servidores Virtuais (VM’s)
Page 19
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Evoluindo...
Considerações sobre “estados”
Page 20
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “estados”
Page 21
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “estados”
Se ambiente de host para a aplicaçãofor uma “web role”, atente para as dicas:
Não existe armazenamento de estado em instânciasindividuais.
Pedidos em sequência não cairão na mesma instância.
Não se esqueça que tudo é gerado dinamicamentepela view, inclusive imagens.
Page 22
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre AJAX
As requisições do cliente podem não serdirecionadas para a mesma instância de onde partiu a chamada inicial.
Portanto, não gere um conteúdo e deixe no servidorpara recuperar com AJAX mais tarde.
Utilize os “MachineKey” junto com ViewStates, já quetodas as instâncias possuem a mesma chave de máquina.
Page 23
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “sessões”
Page 24
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “sessões”
Page 25
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “sessões”
Utilize Windows Azure Caching
Utilize SQL Azure
Utilize cookies
Page 26
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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.
Page 27
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Considerações sobre “sessões”
Page 28
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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ãovoláteis (Azure Blobs, por exemplo).
Page 29
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Demo
Um esquema de login baseado emcookie para uma app ASP.NET MVCAplicação “Cadê meu medico?”
Page 30
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Aprofundando...
Tópicos avançados
Page 31
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
DNS de alta performance
www.suaapp.com
Page 32
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Multi-tenancy
Page 33
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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, eledeixará de existir a qualquer momento).
♦ Opte sempre que possível, pela geo-replicação.
♦ Procure utilizar HTTPS sempre.
Page 34
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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 maiseficiente.
Page 35
SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Perguntas & Respostas