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

Post on 15-Jun-2015

1.359 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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

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

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Introdução

Windows Azure

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

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

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Preparando o Visual Studio

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Preparando o Visual Studio

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

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

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.

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%.

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.

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Criando novos projetos (web roles)

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

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:

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:

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.

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)

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Evoluindo...

Considerações sobre “estados”

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Considerações sobre “estados”

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.

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.

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Considerações sobre “sessões”

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Considerações sobre “sessões”

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

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.

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Considerações sobre “sessões”

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).

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?”

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Aprofundando...

Tópicos avançados

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

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Multi-tenancy

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.

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.

SESSÃO: DESENVOLVIMENTO TRILHA: DESENVOLVIMENTO WEB

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

Perguntas & Respostas

top related