Compartilhar via


Laboratório prático: Sites sustentáveis do Azure: Gerenciamento da alteração e escala

por Equipe de Campos da Web

Baixar o Kit de Treinamento de Campos da Web

O Microsoft Azure facilita a criação e a implantação de sites em produção. Mas você não terminou quando seu aplicativo estiver ativo, você está apenas começando! Você precisará lidar com requisitos de alteração, atualizações de banco de dados, escala e muito mais. Felizmente, Serviço de Aplicativo do Azure tem você coberto, com muitos recursos para ajudá-lo a manter seus sites funcionando sem problemas.

O Azure oferece opções de desenvolvimento, implantação e dimensionamento seguras e flexíveis para qualquer aplicativo Web de tamanho. Utilize suas ferramentas existentes para criar e implantar aplicativos sem a dificuldade de gerenciar a infraestrutura.

Provisione um aplicativo Web de produção por conta própria em minutos implantando facilmente o conteúdo criado usando sua ferramenta de desenvolvimento favorita. Você pode implantar um site existente diretamente do controle do código-fonte com suporte para Git, GitHub, Bitbucket, TFS e até mesmo DropBox. Implante diretamente do seu IDE favorito ou de scripts usando o PowerShell em ferramentas do Windows ou da CLI em execução em qualquer sistema operacional. Depois de implantados, mantenha seus sites constantemente atualizados com suporte para implantação contínua.

O Azure fornece soluções escalonáveis, duráveis de armazenamento em nuvem, backup e recuperação para qualquer dado, grande ou pequeno. Ao implantar aplicativos em um ambiente de produção, serviços de armazenamento como Tabelas, Blobs e Bancos de Dados SQL ajudam a dimensionar seu aplicativo na nuvem.

Com os Bancos de Dados SQL, é importante manter seu banco de dados produtivo atualizado ao implantar novas versões do aplicativo. Graças a Migrações do Entity Framework Code First, o desenvolvimento e a implantação do modelo de dados foram simplificados para atualizar seus ambientes em minutos. Este laboratório prático mostrará os diferentes tópicos que você pode encontrar ao implantar seu aplicativo Web em ambientes de produção no Microsoft Azure.

Todos os snippets e código de exemplo estão incluídos no Kit de Treinamento de Campos da Web, disponível em https://aka.ms/webcamps-training-kit.

Para obter uma cobertura mais detalhada deste tópico, consulte o livro eletrônico Criando aplicativos de nuvem Real-World com o Azure.

Visão geral

Objetivos

Neste laboratório prático, você aprenderá a:

  • Habilitar migrações do Entity Framework com um modelo existente
  • Atualizar o modelo de objeto e o banco de dados adequadamente usando migrações do Entity Framework
  • Implantar no Serviço de Aplicativo do Azure usando o Git
  • Reverter para uma implantação anterior usando o portal de Gerenciamento do Azure
  • Usar o Armazenamento do Azure para dimensionar um aplicativo Web
  • Configurar o dimensionamento automático para um aplicativo Web usando o Portal de Gerenciamento do Azure
  • Criar e configurar um projeto de teste de carga no Visual Studio

Pré-requisitos

O seguinte é necessário para concluir este laboratório prático:

Instalação

Para executar os exercícios neste laboratório prático, você precisará configurar seu ambiente primeiro.

  1. Abra o Windows Explorer e navegue até a pasta Origem do laboratório.
  2. Clique com o botão direito do mouse em Setup.cmd e selecione Executar como administrador para iniciar o processo de instalação que configurará seu ambiente e instalará os snippets de código do Visual Studio para este laboratório.
  3. Se a caixa de diálogo Controle de Conta de Usuário for mostrada, confirme a ação para continuar.

Observação

Verifique se você verificou todas as dependências deste laboratório antes de executar a instalação.

Usando os snippets de código

Em todo o documento de laboratório, você será instruído a inserir blocos de código. Para sua conveniência, a maior parte desse código é fornecida como snippets de Visual Studio Code, que você pode acessar de dentro de Visual Studio 2013 para evitar a necessidade de adicioná-lo manualmente.

Observação

Cada exercício é acompanhado por uma solução inicial localizada na pasta Begin do exercício que permite que você siga cada exercício independentemente dos outros. Lembre-se de que os snippets de código adicionados durante um exercício estão ausentes dessas soluções iniciais e podem não funcionar até que você tenha concluído o exercício. Dentro do código-fonte de um exercício, você também encontrará uma pasta End contendo uma solução do Visual Studio com o código que resulta da conclusão das etapas no exercício correspondente. Você pode usar essas soluções como diretrizes se precisar de ajuda adicional enquanto trabalha neste laboratório prático.


Exercícios

Este laboratório prático inclui os seguintes exercícios:

  1. Usando migrações do Entity Framework
  2. Implantando um aplicativo Web no preparo
  3. Executando a reversão de implantação em produção
  4. Dimensionamento usando o Armazenamento do Azure
  5. Usando o Dimensionamento Automático para Aplicativos Web (opcional para Visual Studio 2013 Ultimate Edition)

Tempo estimado para concluir este laboratório: 75 minutos

Observação

Ao iniciar o Visual Studio pela primeira vez, você deve selecionar uma das coleções de configurações predefinidas. Cada coleção predefinida foi projetada para corresponder a um estilo de desenvolvimento específico e determina layouts de janela, comportamento do editor, snippets de código do IntelliSense e opções de caixa de diálogo. Os procedimentos neste laboratório descrevem as ações necessárias para realizar uma determinada tarefa no Visual Studio ao usar a coleção Configurações gerais de desenvolvimento . Se você escolher uma coleção de configurações diferente para seu ambiente de desenvolvimento, poderá haver diferenças nas etapas que você deve levar em conta.

Exercício 1: Usando migrações do Entity Framework

Quando você está desenvolvendo um aplicativo, seu modelo de dados pode mudar ao longo do tempo. Essas alterações podem afetar o modelo existente em seu banco de dados (se você estiver criando uma nova versão) e é importante manter seu banco de dados atualizado para evitar erros.

Para simplificar o acompanhamento dessas alterações em seu modelo, Migrações do Entity Framework Code First detectar automaticamente as alterações comparando o modelo com o esquema de banco de dados e gerar um código específico para atualizar o banco de dados, criando novas versões do banco de dados.

Este exercício mostra como habilitar as Migrações para seu aplicativo e como você pode detectar e gerar alterações com facilidade para atualizar seus bancos de dados.

Tarefa 1 – Habilitar migrações

Nesta tarefa, você percorrerá as etapas de habilitação de Migrações do Entity Framework Code First para o banco de dados Geek Quiz, alterando o modelo e entendendo como essas alterações são refletidas no banco de dados.

  1. Abra o Visual Studio e abra o arquivo de solução GeekQuiz.sln em Source\Ex1-UsingEntityFrameworkMigrations\Begin.

  2. Crie a solução para baixar e instalar as dependências do pacote NuGet . Para fazer isso, clique com o botão direito do mouse na solução e clique em Compilar Solução ou pressione Ctrl + Shift + B.

  3. No menu Ferramentas no Visual Studio, selecione Gerenciador de Pacotes NuGet e clique em Console do Gerenciador de Pacotes.

  4. No Console do Gerenciador de Pacotes, insira o comando a seguir e pressione Enter. Uma migração inicial com base no modelo existente será criada.

    Enable-Migrations -ContextTypeName GeekQuiz.Models.TriviaContext
    

    Habilitando migrações

    Habilitando as migrações

    Observação

    Esse comando adiciona uma pasta Migrações ao projeto Geek Quiz que contém um arquivo chamado Configuration.cs. A classe Configuration permite que você configure como as migrações se comportam para seu contexto.

  5. Com as Migrações habilitadas, você precisa atualizar a classe De configuração para preencher o banco de dados com os dados iniciais exigidos pelo Geek Quiz . Em Migrações, substitua o arquivo Configuration.cs pelo localizado na pasta Source\Assets deste laboratório.

    Observação

    Como as migrações chamarão o método Seed com cada atualização de banco de dados, você precisa ter certeza de que os registros não estão duplicados no banco de dados. O método AddOrUpdate ajudará a evitar dados duplicados.

  6. Para adicionar uma migração inicial, insira o comando a seguir e pressione Enter.

    Observação

    Verifique se não há nenhum banco de dados chamado "GeekQuizProd" em sua instância do LocalDB.

    Add-Migration InitialSchema
    

    Adicionando migração de esquema base

    Adicionando migração de esquema base

    Observação

    Add-Migration fará o scaffold da próxima migração com base nas alterações feitas em seu modelo desde que a última migração foi criada. Nesse caso, como é a primeira migração do projeto, ele adicionará os scripts para criar todas as tabelas definidas na classe TriviaContext .

  7. Execute a migração para atualizar o banco de dados executando o comando a seguir. Para este comando, você especificará o sinalizador Detalhado para exibir as instruções SQL que estão sendo aplicadas ao banco de dados de destino.

    Update-Database -Verbose
    

    Criando banco de dados inicial

    Criando um banco de dados inicial

    Observação

    Update-Database aplicará todas as migrações pendentes para o banco de dados. Nesse caso, ele criará o banco de dados usando o cadeia de conexão definido no arquivo web.config.

  8. Vá para o menu Exibir e abra SQL Server Pesquisador de Objetos.

    Abrir em SQL Server Pesquisador de Objetos

    Abrir no Pesquisador de Objetos do SQL Server

  9. Na janela SQL Server Pesquisador de Objetos, conecte-se à instância do LocalDB clicando com o botão direito do mouse no nó SQL Server e selecionando Adicionar SQL Server... opção.

    Adicionando uma instância de SQL Server

    Adicionando uma instância de SQL Server a SQL Server Pesquisador de Objetos

  10. Defina o nome do servidor como (localdb)\v11.0 e deixe a Autenticação do Windows como seu modo de autenticação. Clique em Conectar para continuar.

    Conectando-se ao LocalDB

    Conectando-se ao LocalDB

  11. Abra o banco de dados GeekQuizProd e expanda o nó Tabelas . Como você pode ver, o comando Update-Database gerou todas as tabelas definidas na classe TriviaContext . Localize o dbo. Tabela TriviaQuestions e abra o nó colunas. Na próxima tarefa, você adicionará uma nova coluna a esta tabela e atualizará o banco de dados usando Migrações.

    Colunas de perguntas triviais Colunas

    Colunas perguntas triviais

Tarefa 2 – Atualização do esquema de banco de dados usando migrações

Nesta tarefa, você usará Migrações do Entity Framework Code First para detectar uma alteração no modelo e gerar o código necessário para atualizar o banco de dados. Você atualizará a entidade TriviaQuestions adicionando uma nova propriedade a ela. Em seguida, você executará comandos para criar uma nova Migração para incluir a nova coluna na tabela.

  1. Em Gerenciador de Soluções, clique duas vezes no arquivo TriviaQuestion.cs localizado dentro da pasta Modelos.

  2. Adicione uma nova propriedade chamada Hint, conforme mostrado no snippet de código a seguir.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         public string Hint { get; set; }
    }
    
  3. No Console do Gerenciador de Pacotes, insira o comando a seguir e pressione Enter. Uma nova migração será criada refletindo a alteração em nosso modelo.

    Add-Migration QuestionHint
    

    Add-Migration

    Adicionar Migração

    Observação

    Um arquivo de migração é composto por dois métodos, Para Cima e Para Baixo.

    • O método Up será usado para especificar quais alterações a versão atual do nosso aplicativo precisa aplicar ao banco de dados.
    • O Down é usado para reverter as alterações que adicionamos ao método Up .

    Quando a Migração de Banco de Dados atualizar o banco de dados, ela executará todas as migrações na ordem de carimbo de data/hora e somente aquelas que não foram usadas desde a última atualização (a tabela _MigrationHistory controla quais migrações foram aplicadas). O método Up de todas as migrações será chamado e fará as alterações especificadas para o banco de dados. Se decidirmos voltar para uma migração anterior, o método Down será chamado para refazer as alterações em uma ordem inversa.

  4. No Console do Gerenciador de Pacotes, insira o comando a seguir e pressione Enter.

    Update-Database -Verbose
    
  5. A saída do comando Update-Database gerou uma instrução Alter Table SQL para adicionar uma nova coluna à tabela TriviaQuestions , conforme mostrado na imagem abaixo.

    Adicionar instrução SQL de coluna gerada

    Adicionar instrução SQL de coluna gerada

  6. Em SQL Server Pesquisador de Objetos, atualize o dbo. Tabela TriviaQuestions e marcar que a nova coluna Hint é exibida.

    Mostrando a nova coluna de dica

    Mostrando a nova coluna de dica

  7. De volta ao editor TriviaQuestion.cs , adicione uma restrição StringLength à propriedade Hint , conforme mostrado no snippet de código a seguir.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         [StringLength(150)]
         public string Hint { get; set; }
    }
    
  8. No Console do Gerenciador de Pacotes, insira o comando a seguir e pressione Enter.

    Add-Migration QuestionHintLength
    
  9. No Console do Gerenciador de Pacotes, insira o comando a seguir e pressione Enter.

    Update-Database -Verbose
    
  10. A saída do comando Update-Database gerou uma instrução Alter Table SQL para atualizar o tipo de coluna de dica da tabela TriviaQuestions , conforme mostrado na imagem abaixo.

    Instrução SQL alter column gerada

    Instrução SQL alter column gerada

  11. Em SQL Server Pesquisador de Objetos, atualize o dbo. Tabela TriviaQuestions e marcar que o tipo de coluna Hint é nvarchar(150).

    Mostrando a nova restrição

    Mostrando a nova restrição

Exercício 2: Implantando um aplicativo Web no preparo

Aplicativos Web no Serviço de Aplicativo do Azure permite que você execute a publicação em etapas. A publicação em etapas cria um slot de site de preparo para cada site de produção padrão e permite que você troque esses slots sem tempo de inatividade. Isso é realmente útil para validar as alterações antes de liberar para o público, integrar incrementalmente o conteúdo do site e reverter se as alterações não estiverem funcionando conforme o esperado.

Neste exercício, você implantará o aplicativo Geek Quiz no ambiente de preparo do aplicativo Web usando o controle do código-fonte do Git. Para fazer isso, você criará o aplicativo Web e provisionará os componentes necessários no portal de gerenciamento, configurará um repositório Git e enviará por push o código-fonte do aplicativo do computador local para o slot de preparo. Você também atualizará seu banco de dados de produção com o Migrações do Code First criado no exercício anterior. Em seguida, você executará o aplicativo nesse ambiente de teste para verificar sua operação. Depois de estar satisfeito que ele esteja funcionando de acordo com suas expectativas, você promoverá o aplicativo para produção.

Observação

Para habilitar a publicação em etapas, o aplicativo Web deve estar no modo Standard. Observe que encargos adicionais serão incorridos se você alterar seu aplicativo Web para o modo Standard. Para obter mais informações sobre preços, consulte preços Serviço de Aplicativo.

Tarefa 1 – Criar um aplicativo Web no Serviço de Aplicativo do Azure

Nesta tarefa, você criará um aplicativo Web no Serviço de Aplicativo do Azure do portal de gerenciamento. Você também configurará um Banco de Dados SQL para persistir os dados do aplicativo e configurar um repositório Git local para controle do código-fonte.

  1. Acesse o portal de gerenciamento do Azure e entre usando a conta Microsoft associada à sua assinatura.

    Entrar no portal de gerenciamento do Azure

    Entrar no portal de gerenciamento do Azure

  2. Clique em Novo na barra de comandos na parte inferior da página.

    Criando um novo aplicativo Web

    Criando um novo aplicativo Web

  3. Clique em Computação, Site e, em seguida, Criar Personalizado.

    Criando um novo aplicativo Web usando a Criação Personalizada

    Criando um novo aplicativo Web usando a Criação Personalizada

  4. Na caixa de diálogo Novo Site – Criar Personalizado , forneça uma URL disponível (por exemplo , geek-quiz), selecione um local na lista suspensa Região e selecione Criar um novo banco de dados SQL na lista suspensa Banco de Dados . Por fim, selecione a caixa Publicar no controle do código-fonte marcar e clique em Avançar.

    Personalizando o novo aplicativo Web

    Personalizando o novo aplicativo Web

  5. Especifique as seguintes informações para as configurações do banco de dados:

    • Na caixa de texto Nome , insira um nome de banco de dados (por exemplo , geekquiz_db)

    • Na lista suspensa Servidor, selecione Novo servidor de banco de dados SQL. Como alternativa, você pode selecionar um servidor existente.

    • Nas caixas Nome de usuário do banco de dados e senha do banco de dados, insira o nome de usuário e a senha do administrador para o servidor do banco de dados SQL. Se você selecionar um servidor que já criou, será solicitado que você solicite a senha.

      Especificando as configurações do banco de dados

      Especificando as configurações do banco de dados

  6. Clique em Avançar para continuar.

  7. Selecione Repositório Git Local para o controle do código-fonte a ser usado e clique em Avançar.

    Observação

    Você pode ser solicitado a fornecer as credenciais de implantação (um nome de usuário e uma senha).

    Criando o Repositório Git

    Criando o repositório Git

  8. Aguarde até que o novo aplicativo Web seja criado.

    Observação

    Por padrão, o Azure fornece domínios em azurewebsites.net , mas também oferece a possibilidade de definir domínios personalizados usando o portal de gerenciamento do Azure. No entanto, você só poderá gerenciar domínios personalizados se estiver usando determinados modos de Serviço de Aplicativo do Azure.

    Serviço de Aplicativo do Azure está disponível em edições Gratuitas, Compartilhadas, Básicas, Standard e Premium. No modo Gratuito e Compartilhado, todos os aplicativos Web são executados em um ambiente multilocatário e têm cotas para uso de CPU, Memória e Rede. O número máximo de aplicativos gratuitos pode variar de acordo com seu plano. No modo Standard, você escolhe quais aplicativos são executados em máquinas virtuais dedicadas que correspondem aos recursos de computação padrão do Azure. Você pode encontrar a configuração do modo de aplicativo Web no menu Dimensionar do aplicativo Web.

    Modos de Serviço de Aplicativo do Azure

    Se você estiver usando o modo Compartilhado ou Standard , poderá gerenciar domínios personalizados para seu aplicativo Web acessando o menu Configurar do aplicativo e clicando em Gerenciar Domínios em nomes de domínio.

    Gerenciar Domínios

    Gerenciar domínios personalizados

  9. Depois que o aplicativo Web for criado, clique no link na coluna URL para marcar que o novo aplicativo Web esteja em execução.

    Navegando até o novo aplicativo Web

    Navegando até o novo aplicativo Web

    aplicativo Web em execução

    aplicativo Web em execução

Tarefa 2 – Criando o Banco de Dados SQL de produção

Nesta tarefa, você usará o Migrações do Entity Framework Code First para criar o banco de dados direcionado à instância do Banco de Dados SQL do Azure que você criou na tarefa anterior.

  1. No Portal de Gerenciamento, navegue até o aplicativo Web que você criou na tarefa anterior e acesse seu Painel.

  2. Na página Painel , clique no link Exibir cadeias de conexão na seção de visão rápida .

    Exibir cadeias de conexão

    Exibir cadeias de conexão

  3. Copie o valor cadeia de conexão e feche a caixa de diálogo.

    Cadeia de conexão na cadeia de conexão do Portal de Gerenciamento do Azure

    Cadeia de conexão no Portal de Gerenciamento do Azure

  4. Clique em Bancos de Dados SQL para ver a lista de bancos de dados SQL no Azure

    menu Banco de Dados SQL

    menu Banco de Dados SQL

  5. Localize o banco de dados criado na tarefa anterior e clique no Servidor.

    servidor Banco de Dados SQL Banco de Dados SQL servidor

    Servidor de banco de dados SQL

  6. Na página Início Rápido do servidor, clique em Configurar.

    Configurar menu

    Configurar menu

  7. Na seção Endereços IP permitidos, clique em Adicionar ao link de endereços IP permitidos para permitir que seu IP se conecte ao servidor Banco de Dados SQL.

    Endereços IP permitidos Endereços

    Endereços IP permitidos

  8. Clique em Salvar na parte inferior da página para concluir a etapa.

  9. Retorne ao Visual Studio.

  10. No Console do Gerenciador de Pacotes, execute o seguinte comando substituindo o espaço reservado [YOUR-CONNECTION-STRING] pelo cadeia de conexão copiado do Azure

    Update-Database -Verbose -ConnectionString "[YOUR-CONNECTION-STRING]" -ConnectionProviderName "System.Data.SqlClient"
    

    Atualizar o banco de dados direcionado ao banco de dados windows SQL do Azure Database

    Atualizar o banco de dados direcionado ao Banco de Dados SQL do Azure

Tarefa 3 – Implantando o Teste Nerd no preparo usando o Git

Nesta tarefa, você habilitará a publicação em etapas em seu aplicativo Web. Em seguida, você usará o Git para publicar o aplicativo Geek Quiz diretamente do computador local no ambiente de preparo do aplicativo Web.

  1. Voltar ao portal e clique no nome do aplicativo Web na coluna Nome para exibir as páginas de gerenciamento.

    Abrindo as páginas de gerenciamento de aplicativos Web

    Abrindo as páginas de gerenciamento de aplicativos Web

  2. Navegue até a página Dimensionar . Na seção geral , selecione Padrão para a configuração e clique em Salvar na barra de comandos.

    Observação

    Para executar todos os aplicativos Web na região atual e na assinatura no modo Standard, deixe a caixa Selecionar Todos os marcar selecionada na configuração Escolher Sites. Caso contrário, desmarque a caixa Selecionar Todos os marcar.

    Atualizando o aplicativo Web para o modo Standard

    Atualizando o aplicativo Web para o modo Standard

  3. Clique em Sim para confirmar as alterações.

    Confirmando a alteração para o modo Padrão

    Confirmando a alteração para o modo Standard

  4. Vá para a página Painel e clique em Habilitar publicação em etapas na seção de visão rápida .

    Habilitando a publicação em etapas

    Habilitando a publicação em etapas

  5. Clique em Sim para habilitar a publicação em etapas.

    Confirmando a publicação em etapas

    Confirmando a publicação em etapas

  6. Na lista de aplicativos Web, expanda a marca à esquerda do nome do aplicativo Web para exibir o slot do site de preparo. Ele tem o nome do seu aplicativo Web seguido por (preparo). Clique no site de preparo para ir para a página de gerenciamento.

    Navegando até o aplicativo Web de preparo

    Navegando até o aplicativo de preparo

  7. Observe que a página de gerenciamento dele se parece com a página de gerenciamento de qualquer outro aplicativo Web. Navegue até a página Implantações e copie o valor da URL do Git . Você o usará posteriormente neste exercício.

    Copiando o valor da URL do Git

    Copiando o valor da URL do Git

  8. Abra um novo console do Git Bash e execute os comandos a seguir. Atualize o espaço reservado [YOUR-APPLICATION-PATH] com o caminho para a solução GeekQuiz , localizada na pasta Source\Ex1-DeployingWebSiteToStaging\Begin deste laboratório.

    cd "[YOUR-APPLICATION-PATH]"
    git init
    git config --global user.email "{username@example.com}"
    git config --global user.name "{your-user-name}"
    git add .
    git commit -m "Initial commit"
    

    Inicialização do Git e primeiro commit

    Inicialização do Git e primeiro commit

  9. Execute o comando a seguir para enviar seu aplicativo Web por push para o repositório Git remoto. Substitua o espaço reservado pela URL obtida no portal de gerenciamento. Você será solicitado a fornecer sua senha de implantação.

    git remote add azure [GIT-CLONE-URL]
    git push azure master
    

    Enviar por push para o Windows Azure

    Enviar por push para o Azure

    Observação

    Ao implantar conteúdo no host FTP ou no repositório GIT de um aplicativo Web, você deve se autenticar usando as credenciais de implantação criadas a partir das páginas de gerenciamento de Início Rápido ou Painel do aplicativo Web. Se você não souber suas credenciais de implantação, poderá redefini-las facilmente usando o portal de gerenciamento. Abra a página Painel do aplicativo Web e clique no link Redefinir suas credenciais de implantação . Forneça uma nova senha e clique em OK. As credenciais de implantação são válidas para uso com todos os aplicativos Web associados à sua assinatura.

  10. Para verificar se o aplicativo Web foi enviado por push com êxito para o Azure, volte para o portal de gerenciamento e clique em Sites.

  11. Localize seu aplicativo Web e expanda a entrada para exibir o slot do site de preparo. Clique em seu Nome para ir para a página de gerenciamento.

  12. Clique em Implantações para ver o histórico de implantação. Verifique se há uma implantação ativa com seu "Commit Inicial".

    Implantação ativa

    Implantação ativa

  13. Por fim, clique em Procurar na barra de comandos para acessar o aplicativo Web.

    Procurar o aplicativo Web

    Procurar o aplicativo Web

  14. Se o aplicativo for implantado com êxito, você verá a página de logon do Geek Quiz.

    Observação

    A URL de endereço do aplicativo implantado contém o nome do aplicativo Web seguido por -staging.

    Aplicativo em execução no ambiente de preparo

    Aplicativo em execução no ambiente de preparo

  15. Se você quiser explorar o aplicativo, clique em Registrar para registrar um novo usuário. Conclua os detalhes da conta inserindo um nome de usuário, endereço de email e senha. Em seguida, o aplicativo mostra a primeira pergunta do teste. Responda a algumas perguntas para ter certeza de que está funcionando conforme o esperado.

    Aplicativo pronto para ser usado

    Aplicativo pronto para ser usado

Tarefa 4 – Promover o aplicativo Web para produção

Agora que você verificou que o aplicativo Web está funcionando corretamente no ambiente de preparo, você está pronto para promovê-lo à produção. Nesta tarefa, você trocará o slot do site de preparo pelo slot do site de produção.

  1. Voltar ao portal de gerenciamento e selecione o slot do site de preparo. Clique em Trocar na barra de comandos.

    Alternar para produção

    Alternar para produção

  2. Clique em Sim na caixa de diálogo de confirmação para continuar com a operação de troca. O Azure trocará imediatamente o conteúdo do site de produção pelo conteúdo do site de preparo.

    Observação

    Algumas configurações da versão em etapas serão automaticamente copiadas para a versão de produção (por exemplo, substituições de cadeia de conexão, mapeamentos de manipulador etc.), mas outras configurações não serão alteradas (por exemplo, pontos de extremidade DNS, associações SSL etc.).

    Confirmando a operação de troca

    Confirmando a operação de troca

  3. Depois que a troca for concluída, selecione o slot de produção e clique em Procurar na barra de comandos para abrir o site de produção. Observe a URL na barra de endereços.

    Observação

    Talvez seja necessário atualizar o navegador para limpar o cache. Na Internet Explorer, você pode fazer isso pressionando CTRL+R.

    Aplicativo Web em execução no ambiente de produção

  4. No console do GitBash, atualize o URL remota do repositório Git local para direcionar o slot de produção. Para fazer isso, execute o comando a seguir substituindo os espaços reservados pelo nome de usuário de implantação e o nome do aplicativo Web.

    Observação

    Nos exercícios a seguir, você enviará por push as alterações no site de produção em vez de preparo apenas para a simplicidade do laboratório. Em um cenário do mundo real, é recomendável verificar as alterações no ambiente de preparo antes de promover a produção.

    git remote set-url azure https://<your-user>@<your-web-site>.scm.azurewebsites.net:443/<your-web-site>.git
    

Exercício 3: Executando a reversão de implantação em produção

Há cenários em que você não tem um slot de preparo para executar a troca frequente entre preparo e produção, por exemplo, se você estiver trabalhando com o modo Gratuito ou Compartilhado . Nesses cenários, você deve testar seu aplicativo em um ambiente de teste – localmente ou em um site remoto – antes de implantar em produção. No entanto, é possível que um problema não detectado durante a fase de teste possa surgir no site de produção. Nesse caso, é importante ter um mecanismo para alternar facilmente para uma versão anterior e mais estável do aplicativo o mais rápido possível.

Em Serviço de Aplicativo do Azure, a implantação contínua do controle do código-fonte possibilita isso graças à ação de reimplantação disponível no portal de gerenciamento. O Azure controla as implantações associadas aos commits enviados por push para o repositório e fornece uma opção para reimplantar seu aplicativo usando qualquer uma de suas implantações anteriores, a qualquer momento.

Neste exercício, você executará uma alteração no código no aplicativo Geek Quiz que injeta intencionalmente um bug. Você implantará o aplicativo na produção para ver o erro e, em seguida, aproveitará o recurso de reimplantação para voltar ao estado anterior.

Tarefa 1 – Atualizando o aplicativo de teste do Geek

Nesta tarefa, você refatorará uma pequena parte do código da classe TriviaController para extrair parte da lógica que recupera a opção de teste selecionada do banco de dados em um novo método.

  1. Alterne para a instância do Visual Studio com a solução GeekQuiz do exercício anterior.

  2. Em Gerenciador de Soluções, abra o arquivo TriviaController.cs dentro da pasta Controladores.

  3. Localize o método StoreAsync e selecione o código realçado na figura a seguir.

    Selecionando o código

    Selecionando o código

  4. Clique com o botão direito do mouse no código selecionado, expanda o menu Refatorar e selecione Extrair Método....

    Extraindo o código como um novo método

    Selecionando o método Extract

  5. Na caixa de diálogo Extrair Método , nomeie o novo método MatchesOption e clique em OK.

    Especificando o nome do método

    Especificando o nome do método extraído

  6. Em seguida, o código selecionado é extraído no método MatchesOption . O código resultante é mostrado no snippet a seguir.

    private async Task<bool> StoreAsync(TriviaAnswer answer)
    {
        this.db.TriviaAnswers.Add(answer);
    
        await this.db.SaveChangesAsync();
        var selectedOption = await this.db.TriviaOptions.FirstOrDefaultAsync(o => MatchesOption(answer, o));
    
        return selectedOption.IsCorrect;
    }
    
    private static bool MatchesOption(TriviaAnswer answer, TriviaOption o)
    {
        return o.Id == answer.OptionId
                && o.QuestionId == answer.QuestionId;
    }
    
  7. Pressione CTRL + S para salvar as alterações.

Tarefa 2 – Reimplantar o aplicativo De teste do Geek

Agora você enviará por push as alterações feitas na tarefa anterior para o repositório, o que disparará uma nova implantação para o ambiente de produção. Em seguida, você solucionará um problema usando as ferramentas de desenvolvimento F12 fornecidas pela Internet Explorer e, em seguida, executará uma reversão para a implantação anterior do portal de gerenciamento do Azure.

  1. Abra um novo console do Git Bash para implantar o aplicativo atualizado no Serviço de Aplicativo do Azure.

  2. Execute os comandos a seguir para enviar as alterações por push ao Azure. Atualize o espaço reservado [YOUR-APPLICATION-PATH] com o caminho para a solução GeekQuiz . Você será solicitado a fornecer sua senha de implantação.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Refactored answer check"
    git push azure master
    

    Enviar código refatorado por push para o Azure

    Enviar código refatorado por push para o Azure

  3. Abra o Explorer da Internet e navegue até seu aplicativo Web (por exemplo, http://<your-web-site>.azurewebsites.net). Faça logon usando as credenciais criadas anteriormente.

  4. Pressione F12 para iniciar as ferramentas de desenvolvimento, selecione a guia Rede e clique no botão Reproduzir para iniciar a gravação.

    Captura de tela que mostra o aplicativo Web Teste Grego com o ponteiro selecionando Habilitar a captura de tráfego de rede como parte de uma reversão de implantação.

    Iniciando a gravação de rede

  5. Selecione qualquer opção do teste. Você verá que nada acontece.

  6. Na janela F12 , a entrada correspondente à solicitação HTTP POST mostra um resultado HTTP 500 .

    Erro HTTP 500

    Erro HTTP 500

  7. Selecione a guia Console . Um erro é registrado com os detalhes da causa.

    Erro registrado

    Erro registrado

  8. Localize a parte de detalhes do erro. Claramente, esse erro é causado pela refatoração de código confirmada nas etapas anteriores.

    Details: LINQ to Entities does not recognize the method 'Boolean MatchesOption ....

  9. Não feche o navegador.

  10. Em uma nova instância do navegador, navegue até o [portal de gerenciamento do Azure](/azure/azure-portal/azure-portal-overview e entre usando a conta Microsoft associada à sua assinatura.

  11. Selecione Sites e clique no aplicativo Web que você criou no Exercício 2.

  12. Navegue até a página Implantações . Observe que todos os commits executados estão listados no histórico de implantação.

    Lista de implantações existentes

    Lista de implantações existentes

  13. Selecione o commit anterior e clique em Reimplantar na barra de comandos.

    Reimplantando o commit anterior

    Reimplantando o commit anterior

  14. Quando solicitada a confirmação, clique em Sim.

    Confirmando a reimplantação

  15. Quando a implantação for concluída, volte para a instância do navegador com seu aplicativo Web e pressione CTRL + F5.

  16. Clique em qualquer uma das opções. A animação de inversão agora ocorrerá e o resultado (correto/incorreto) será exibido.

  17. (Opcional) Alterne para o console do Git Bash e execute os comandos a seguir para reverter para o commit anterior.

    Observação

    Esses comandos criam um novo commit que desfaz todas as alterações no repositório Git que foram feitas na confirmação incorreta. Em seguida, o Azure reimplantará o aplicativo usando o novo commit.

    git revert HEAD --no-edit
    git push azure master
    

Exercício 4: Dimensionamento usando o Armazenamento do Azure

Os blobs são a maneira mais simples de armazenar grandes quantidades de texto não estruturado ou dados binários, como vídeo, áudio e imagens. Mover o conteúdo estático do aplicativo para o Armazenamento ajuda a dimensionar seu aplicativo fornecendo imagens ou documentos diretamente para o navegador.

Neste exercício, você moverá o conteúdo estático do aplicativo para um contêiner de Blob. Em seguida, você configurará seu aplicativo para adicionar uma regra de regravação de URL ASP.NET no Web.config para redirecionar o conteúdo para o contêiner de Blob.

Tarefa 1 – Criar uma conta de armazenamento do Azure

Nesta tarefa, você aprenderá a criar uma nova conta de armazenamento usando o portal de gerenciamento.

  1. Navegue até o portal de gerenciamento do Azure e entre usando a conta Microsoft associada à sua assinatura.

  2. Selecione Novo | Serviços de Dados | Armazenamento | Criação Rápida para começar a criar uma nova conta de armazenamento. Insira um nome exclusivo para a conta e selecione uma Região na lista. Clique em Criar Conta de Armazenamento para continuar.

    Criando uma nova conta de armazenamento

    Criando uma nova conta de armazenamento

  3. Na seção Armazenamento, aguarde até que o status da nova conta de armazenamento seja alterado para Online para continuar com a etapa a seguir.

    Conta de armazenamento criada

    Conta de armazenamento criada

  4. Clique no nome da conta de armazenamento e clique no link Painel na parte superior da página. A página Painel fornece informações sobre o status da conta e os pontos de extremidade de serviço que podem ser usados em seus aplicativos.

    Exibindo o painel da conta de armazenamento

    Exibindo o painel da conta de armazenamento

  5. Clique no botão Gerenciar Chaves de Acesso na barra de navegação.

    Botão Gerenciar Chaves de Acesso

    Botão Gerenciar Chaves de Acesso

  6. Na caixa de diálogo Gerenciar Chaves de Acesso , copie o Nome da Conta de Armazenamento e a Chave de Acesso Primária , pois você precisará delas no exercício a seguir. Em seguida, feche a caixa de diálogo.

    Caixa de diálogo Gerenciar Chave de Acesso

    Caixa de diálogo Gerenciar Chave de Acesso

Tarefa 2 – Carregar um ativo para Armazenamento de Blobs do Azure

Nesta tarefa, você usará a janela Servidor Explorer do Visual Studio para se conectar à sua conta de armazenamento. Em seguida, você criará um contêiner de blob e carregará um arquivo com o logotipo do Quiz Geek no contêiner.

  1. Alterne para a instância do Visual Studio com a solução GeekQuiz do exercício anterior.

  2. Na barra de menus, selecione Exibir e clique em Servidor Explorer.

  3. No Servidor Explorer, clique com o botão direito do mouse no nó do Azure e selecione Conectar-se ao Azure.... Entre usando a conta Microsoft associada à sua assinatura.

    Conectar ao Windows Azure...

    Conecte-se ao Azure

  4. Expanda o nó do Azure , clique com o botão direito do mouse em Armazenamento e selecione Anexar Armazenamento Externo....

  5. Na caixa de diálogo Adicionar Nova Conta de Armazenamento , insira o Nome da conta e a chave da conta obtidas na tarefa anterior e clique em OK.

    Caixa de diálogo Adicionar Nova Conta de Armazenamento

    Caixa de diálogo Adicionar Nova Conta de Armazenamento

  6. Sua conta de armazenamento deve aparecer no nó Armazenamento . Expanda sua conta de armazenamento, clique com o botão direito do mouse em Blobs e selecione Criar Contêiner de Blobs....

    Criar contêiner de blob

    Criar contêiner de blob

  7. Na caixa de diálogo Criar Contêiner de Blobs , insira um nome para o contêiner de blob e clique em OK.

    Criar Contêiner de BlobCaixa de diálogo

    Caixa de diálogo Criar Contêiner de Blob

  8. O novo contêiner de blob deve ser adicionado ao nó Blobs . Altere as permissões de acesso no contêiner para tornar o contêiner público. Para fazer isso, clique com o botão direito do mouse no contêiner de imagens e selecione Propriedades.

    propriedades do contêiner de imagens

    Propriedades do contêiner de imagens

  9. Na janela Propriedades , defina o Acesso público de leitura como Contêiner.

    Alterando a propriedade de acesso de leitura pública

    Alterando a propriedade de acesso de leitura pública

  10. Quando solicitado se você tiver certeza de que deseja alterar a propriedade de acesso público, clique em Sim.

    Aviso do Microsoft Visual Studio

    Aviso do Microsoft Visual Studio

  11. No servidor Explorer, clique com o botão direito do mouse no contêiner de blob de imagens e selecione Exibir Contêiner de Blobs.

    Exibir

    Exibir Contêiner de Blobs

  12. O contêiner de imagens deve ser aberto em uma nova janela e uma legenda sem entradas deve ser mostrada. Clique no ícone carregar para carregar um arquivo no contêiner de blob.

    Contêiner de imagens sem entradas

    Contêiner de imagens sem entradas

  13. Na caixa de diálogo Carregar Blob , navegue até a pasta Ativos do laboratório. Selecione o arquivo logo-big.png e clique em Abrir.

  14. Aguarde até que o arquivo seja carregado. Quando o upload for concluído, o arquivo deverá ser listado no contêiner de imagens. Clique com o botão direito do mouse na entrada do arquivo e selecione Copiar URL.

    Copiar URL do blob

    Copiar URL do blob

  15. Abra o Explorer da Internet e cole a URL. A imagem a seguir deve ser mostrada no navegador.

     imagemlogo-big.png do Armazenamento de Blobs do Windows

    logo-big.png imagem de Armazenamento de Blobs do Azure

Tarefa 3 – Atualizando a solução para consumir conteúdo estático de Armazenamento de Blobs do Azure

Nesta tarefa, você configurará a solução GeekQuiz para consumir a imagem carregada no Armazenamento de Blobs do Azure (em vez da imagem localizada no aplicativo Web) adicionando uma regra de regravação de URL ASP.NET no arquivo web.config.

  1. No Visual Studio, abra o arquivo Web.config dentro do projeto GeekQuiz e localize o <elemento system.webServer> .

  2. Adicione o código a seguir para adicionar uma regra de regravação de URL, atualizando o espaço reservado com o nome da conta de armazenamento.

    (Snippet de código - WebSitesInProduction - Ex4 - UrlRewriteRule)

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="redirect-images" stopProcessing="true">
                    <match url="img/(.*)"/>
                    <action type="Redirect" url="http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/{R:1}"></action>
                </rule>
            </rules>
        </rewrite>
    

    Observação

    A reescrita de URL é o processo de interceptação de uma solicitação Da Web de entrada e redirecionamento da solicitação para um recurso diferente. As regras de reescrita de URL informa ao mecanismo de reescrita quando uma solicitação precisa ser redirecionada e para onde elas devem ser redirecionadas. Uma regra de reescrita é composta por duas cadeias de caracteres: o padrão a ser buscado na URL solicitada (geralmente, usando expressões regulares) e a cadeia de caracteres pela qual substituir o padrão, se encontrado. Para obter mais informações, consulte Reescrita de URL no ASP.NET.

  3. Pressione CTRL + S para salvar as alterações.

  4. Abra um novo console do Git Bash para implantar o aplicativo atualizado no Serviço de Aplicativo do Azure.

  5. Execute os comandos a seguir para enviar as alterações por push ao Azure. Atualize o espaço reservado [YOUR-APPLICATION-PATH] com o caminho para a solução GeekQuiz . Você será solicitado a fornecer sua senha de implantação.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Added URL rewrite rule in web.config file"
    git push azure master
    

    Implantando a atualização no Azure

    Implantando a atualização no Azure

Tarefa 4 – Verificação

Nesta tarefa, você usará a Internet Explorer para procurar o aplicativo Geek Quiz e marcar que a regra de regravação de URL para imagens funcione e você será redirecionado para a imagem hospedada no Armazenamento de Blobs do Azure.

  1. Abra o Explorer da Internet e navegue até seu aplicativo Web (por exemplo, http://<your-web-site>.azurewebsites.net). Faça logon usando as credenciais criadas anteriormente.

    Mostrando o aplicativo Web Geek Quiz com a imagem

    Mostrando o aplicativo Web Geek Quiz com a imagem

  2. Pressione F12 para iniciar as ferramentas de desenvolvimento, selecione a guia Rede e inicie a gravação.

    A captura de tela mostra o aplicativo Web teste grego com o ponteiro selecionando Habilitar a captura de tráfego de rede como parte da verificação do procedimento de dimensionamento.

    Iniciando a gravação de rede

  3. Pressione CTRL + F5 para atualizar a página da Web.

  4. Depois que a página terminar de carregar, você deverá ver uma solicitação HTTP para a URL /img/logo-big.png com um resultado HTTP 301 (redirecionamento) e outra solicitação de http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/logo-big.png URL com um resultado HTTP 200 .

    Verificando o redirecionamento de URL

    Verificando o redirecionamento de URL

Exercício 5: Usando o dimensionamento automático para Aplicativos Web

Observação

Este exercício é opcional, pois requer suporte para o Web Load & Performance Testing, que só está disponível para Visual Studio 2013 Ultimate Edition. Para obter mais informações sobre recursos de Visual Studio 2013 específicos, compare as versões aqui.

Serviço de Aplicativo do Azure Aplicativos Web fornece o recurso dimensionamento automático para aplicativos Web em execução no Modo Padrão. O dimensionamento automático permite que o Azure dimensione automaticamente a contagem de instâncias do seu aplicativo Web, dependendo da carga. Quando o Dimensionamento Automático está habilitado, o Azure verifica a CPU do seu aplicativo Web uma vez a cada cinco minutos e adiciona instâncias conforme necessário nesse momento. Se o uso da CPU for baixo, o Azure removerá instâncias uma vez a cada duas horas para garantir que o desempenho do aplicativo Web não seja degradado.

Neste exercício, você passará pelas etapas necessárias para configurar o recurso de Dimensionamento Automático para o aplicativo Web Geek Quiz . Você verificará esse recurso executando um teste de carga do Visual Studio para gerar carga de CPU suficiente no aplicativo para disparar uma atualização de instância.

Tarefa 1 – Configurar o dimensionamento automático com base na métrica da CPU

Nesta tarefa, você usará o portal de gerenciamento do Azure para habilitar o recurso de Dimensionamento Automático para o aplicativo Web criado no Exercício 2.

  1. No portal de gerenciamento do Azure, selecione Sites e clique no aplicativo Web que você criou no Exercício 2.

  2. Navegue até a página Escala . Na seção capacidade , selecione CPU para a configuração Dimensionar por Métrica .

    Observação

    Ao dimensionar por CPU, o Azure ajusta dinamicamente o número de instâncias que o aplicativo usa se o uso da CPU for alterado.

    Selecionando para dimensionar por CPU

    Selecionando para dimensionar por CPU

  3. Altere a configuração da CPU de destino para 20-40 %.

    Observação

    Esse intervalo representa o uso médio da CPU para seu aplicativo Web. O Azure adicionará ou removerá instâncias para manter seu aplicativo Web nesse intervalo. O número mínimo e máximo de instâncias usadas para dimensionamento é especificado na configuração contagem de instâncias . O Azure nunca ultrapassará ou ultrapassará esse limite.

    Os valores de CPU de destino padrão são modificados apenas para fins deste laboratório. Ao configurar o intervalo de CPU com valores pequenos, você está aumentando as chances de disparar o Dimensionamento automático quando uma carga moderada é colocada no aplicativo.

    Alterar a CPU de destino para ficar entre 20 e 40%

    Alterando a CPU de destino para ficar entre 20 e 40%

  4. Clique em Salvar na barra de comandos para salvar as alterações.

Tarefa 2 – Teste de carga com o Visual Studio

Agora que o Dimensionamento Automático foi configurado, você criará um projeto de teste de carga e desempenho da Web no Visual Studio para gerar alguma carga de CPU em seu aplicativo Web.

  1. Abra Visual Studio Ultimate 2013 e selecione Arquivo | Novo | Projeto... para iniciar uma nova solução.

    Criando um novo projeto

    Crie um novo projeto

  2. Na caixa de diálogo Novo Projeto, selecione Projeto de Teste de Carga e Desempenho web no Visual C# | Guia Teste. Verifique se .NET Framework 4.5 está selecionado, nomeie o projeto WebAndLoadTestProject, escolha um Local e clique em OK.

    Criando um novo projeto de Teste de Carga e Web

    Criando um novo projeto de Teste de Carga e Web

  3. No WebTest1.webtest Clique com o botão direito do mouse no nó WebTest1 e clique em Adicionar Solicitação.

    Adicionando uma solicitação ao WebTest1

    Alterando a propriedade url

  4. Na janela WebTest1.webtest , clique com o botão direito do mouse em WebTest1 e clique em Adicionar Loop....

    Adicionando um loop ao WebTest1

    Adicionando um loop ao WebTest1

  5. Na caixa de diálogo Adicionar Regra Condicional e Itens ao Loop , selecione a regra Loop For e modifique as propriedades a seguir.

    1. Valor de terminação: 1000

    2. Nome do parâmetro de contexto: Iterador

    3. Valor de incremento: 1

      Selecionando a regra Loop For e atualizando as propriedades

      Selecionando a regra Loop For e atualizando as propriedades

  6. Na seção Itens em loop , selecione a solicitação que você criou anteriormente para ser o primeiro e o último item do loop. Clique em OK para continuar.

    Selecionando o primeiro e o último itens para o loop

    Selecionando o primeiro e o último itens para o loop

  7. Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto WebAndLoadTestProject, expanda o menu Adicionar e selecione Teste de Carga....

    Adicionando um teste de carga ao projeto WebAndLoadTestProject

    Adicionando um teste de carga ao projeto WebAndLoadTestProject

  8. Na caixa de diálogo Assistente para Novo Teste de Carga , clique em Avançar.

    Novo Assistente de Teste de

    Assistente para Novo Teste de Carga

  9. Na página Cenário , selecione Não usar tempos de consideração e clique em Avançar.

    Selecionando não usar tempos

    Selecionando não usar tempos de consideração

  10. Na página Padrão de Carga , verifique se a opção Carregamento Constante está selecionada. Altere a configuração Contagem de Usuários para 250 usuários e clique em Avançar.

    Alterando a contagem de usuários para 250

    Alterando a contagem de usuários para 250

  11. Na página Modelo de Combinação de Testes , selecione Com base na ordem de teste sequencial e clique em Avançar.

    Selecionando o modelo de combinação de testes

    Selecionando o modelo de combinação de testes

  12. Na página Modelo de Combinação de Testes , clique em Adicionar... para adicionar um teste à combinação.

    Adicionando um teste à combinação de testes

    Adicionando um teste à combinação de testes

  13. Na caixa de diálogo Adicionar Testes , clique duas vezes em WebTest1 para adicionar o teste à lista Testes selecionados . Clique em OK para continuar.

    Adicionando o teste WebTest1

    Adicionando o teste WebTest1

  14. De volta à página Combinação de Testes , clique em Avançar.

    Concluindo a página combinação de testes

    Concluindo a página Combinação de Testes

  15. Na página Combinação de Rede , clique em Avançar.

    Clicando em avançar na página Combinação de Rede

    Clicando em avançar na página Combinação de Rede

  16. Na página Combinação de Navegadores, selecione Internet Explorer 10.0 como o tipo de navegador e clique em Avançar.

    Selecionando o tipo de navegador

    Selecionando o tipo de navegador

  17. Na página Conjuntos de Contadores , clique em Avançar.

    Clicando em Avançar na página Conjuntos de Contadores

    Clicando em Avançar na página Conjuntos de Contadores

  18. Na página Configurações de Execução , defina a Duração do teste de carga como 5 minutos e clique em Concluir.

    Definindo a duração do teste de carga como 5 minutos

    Definindo a duração do teste de carga como 5 minutos

  19. Em Gerenciador de Soluções, clique duas vezes no arquivo Local.settings para explorar as configurações de teste. Por padrão, o Visual Studio usa o computador local para executar os testes.

    Observação

    Como alternativa, você pode configurar seu projeto de teste para executar os testes de carga na nuvem usando Azure Test Plans. Azure Test Plans fornece um serviço de teste de carga baseado em nuvem que simula uma carga mais realista, evitando restrições de ambiente local, como capacidade de CPU, memória disponível e largura de banda de rede. Para obter mais informações sobre como usar Azure Test Plans para executar testes de carga, consulte Cenários de teste de carga.

    Configurações de teste

Tarefa 3 – Verificação de dimensionamento automático

Agora você executará o teste de carga criado na tarefa anterior e verá como seu aplicativo Web se comporta sob carga.

  1. Em Gerenciador de Soluções, clique duas vezes em LoadTest1.loadtest para abrir o teste de carga.

    Abrindo LoadTest1.loadtest

    Abrindo LoadTest1.loadtest

  2. Na janela LoadTest1.loadtest , clique no primeiro botão na caixa de ferramentas para executar o teste de carga.

    Executando o teste de carga

    Executando o teste de carga

  3. Aguarde até que o teste de carga seja concluído.

    Observação

    O teste de carga simula vários usuários que enviam solicitações ao aplicativo Web simultaneamente. Quando o teste estiver em execução, você poderá monitorar os contadores disponíveis para detectar erros, avisos ou outras informações relacionadas à execução do teste de carga.

    Teste de carga em execução

    Teste de carga em execução

  4. Depois que o teste for concluído, volte para o portal de gerenciamento e navegue até a página Escala do seu aplicativo Web. Na seção capacidade , você deve ver no grafo que uma nova instância foi implantada automaticamente.

    Nova instância implantada automaticamente

    Nova instância implantada automaticamente

    Observação

    Pode levar vários minutos para que as alterações apareçam no grafo (pressione CTRL + F5 periodicamente para atualizar a página). Se você não vir nenhuma alteração, tente o seguinte:

    • Aumentar a duração do teste de carga (por exemplo, para 10 minutos)
    • Reduzir os valores máximo e mínimo do intervalo de CPU de destino na configuração de dimensionamento automático do aplicativo Web
    • Execute o teste de carga na nuvem com Azure Test Plans. Mais informações podem ser obtidas aqui

Resumo

Neste laboratório prático, você aprendeu a configurar e implantar seu aplicativo em aplicativos Web de produção no Azure. Você começou detectando e atualizando seus bancos de dados usando Migrações do Entity Framework Code First e, em seguida, continuou implantando novas versões do seu site usando o Git e executando reversões para a versão estável mais recente do seu site. Além disso, você aprendeu a dimensionar seu aplicativo usando o Armazenamento para mover seu conteúdo estático para um contêiner de Blob.