SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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.
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
SESSÃO: DESENVOLVIMENTO

Introdução

Windows Azure

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

TRILHA: DESENVOLVIMENTO WEB

Visão geral do Windows Azure

x

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

x
SESSÃO: DESENVOLVIMENTO

TRILHA: DESENVOLVIMENTO WEB

Começando...

Preparando sua aplicação para o
Windows Azure

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

Preparando o Visual Studio
♦

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

Preparando o Visual Studio
♦

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

Criando...

Criando aplicações para cada
ambiente

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
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)
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.
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.
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.
SESSÃO: DESENVOLVIMENTO

Criando novos projetos (web roles)

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

TRILHA: DESENVOLVIMENTO WEB

Criando novos projetos (web roles)
Novo projeto

Novas referências

Adição do trace no web.config

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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.
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.
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
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
SESSÃO: DESENVOLVIMENTO

Evoluindo...

Considerações sobre “estados”

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

Considerações sobre “estados”

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
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
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
SESSÃO: DESENVOLVIMENTO

Considerações sobre “sessões”

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

Considerações sobre “sessões”

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

TRILHA: DESENVOLVIMENTO WEB

Considerações sobre “sessões”

Utilize Windows Azure Caching
Utilize SQL Azure

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

Utilize cookies
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.
SESSÃO: DESENVOLVIMENTO

Considerações sobre “sessões”

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
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.
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.
SESSÃO: DESENVOLVIMENTO

Aprofundando...

Tópicos avançados

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
SESSÃO: DESENVOLVIMENTO

TRILHA: DESENVOLVIMENTO WEB

DNS de alta performance
www.suaapp.com

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

Multi-tenancy

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB
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.
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.
SESSÃO: DESENVOLVIMENTO

Perguntas & Respostas

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: DESENVOLVIMENTO WEB

Mais conteúdo relacionado

Mais de MVP ShowCast

C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...MVP ShowCast
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...MVP ShowCast
 
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...MVP ShowCast
 
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...MVP ShowCast
 
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...MVP ShowCast
 
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...MVP ShowCast
 
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...MVP ShowCast
 
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...MVP ShowCast
 
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]MVP ShowCast
 

Mais de MVP ShowCast (9)

C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
 
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
 
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
 
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
 
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
 
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
 
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
 
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
 

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
  • 3. SESSÃO: DESENVOLVIMENTO Introdução Windows Azure © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 4. SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB Visão geral do Windows Azure x © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. x
  • 5. SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB Começando... Preparando sua aplicação para o Windows Azure © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 6. SESSÃO: DESENVOLVIMENTO Preparando o Visual Studio ♦ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 7. SESSÃO: DESENVOLVIMENTO Preparando o Visual Studio ♦ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 8. SESSÃO: DESENVOLVIMENTO Criando... Criando aplicações para cada ambiente © 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.
  • 13. SESSÃO: DESENVOLVIMENTO Criando novos projetos (web roles) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 14. SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB Criando novos projetos (web roles) Novo projeto Novas referências Adição do trace no web.config © 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
  • 19. SESSÃO: DESENVOLVIMENTO Evoluindo... Considerações sobre “estados” © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 20. SESSÃO: DESENVOLVIMENTO Considerações sobre “estados” © 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
  • 23. SESSÃO: DESENVOLVIMENTO Considerações sobre “sessões” © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 24. SESSÃO: DESENVOLVIMENTO Considerações sobre “sessões” © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 25. SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB Considerações sobre “sessões” Utilize Windows Azure Caching Utilize SQL Azure © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. Utilize cookies
  • 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.
  • 27. SESSÃO: DESENVOLVIMENTO Considerações sobre “sessões” © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 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.
  • 30. SESSÃO: DESENVOLVIMENTO Aprofundando... Tópicos avançados © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 31. SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB DNS de alta performance www.suaapp.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 32. SESSÃO: DESENVOLVIMENTO Multi-tenancy © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB
  • 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.
  • 35. SESSÃO: DESENVOLVIMENTO Perguntas & Respostas © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: DESENVOLVIMENTO WEB