deploy de aplicações asp.net para a nuvem: além dos livros e blogs [mvp showcast 2013 - dev -...

35
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

Upload: mvp-showcast

Post on 15-Jun-2015

1.359 views

Category:

Technology


0 download

DESCRIPTION

Palestra: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs Palestrante: Fabrício Lopes Sanchez (MVP ASP.NET/IIS) Realização: 13/11/2013 12h Trilha: Desenvolvimento Web Sessão: Desenvolvimento Evento: MVP ShowCast 2013 Site: http://mvpshowcast.azurewebsites.net

TRANSCRIPT

Page 1: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Multi-tenancy

Page 33: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

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: Deploy de aplicações ASP.NET para a nuvem: além dos livros e blogs [MVP ShowCast 2013 - DEV - Desenvolvimento Web]

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Perguntas & Respostas