Compartilhar via


Criando aplicativos de nuvem Real-World com o Azure

por Rick Anderson, Tom Dykstra

Baixar o Projeto de Correção ou Baixar E-book

Este livro eletrônico orienta você por uma abordagem baseada em padrões para criar soluções de nuvem do mundo real. Os padrões se aplicam ao processo de desenvolvimento, bem como às práticas de arquitetura e codificação.

O conteúdo é baseado em uma apresentação desenvolvida por Scott Guthrie e entregue por ele na Conferência Norueguesa de Desenvolvedores (NDC) em junho de 2013 (parte 1, parte 2) e no Microsoft Tech Ed Australia em setembro de 2013. Muitos outros atualizaram e aumentaram o conteúdo durante a transição do vídeo para o formulário escrito.

Público-alvo

Os desenvolvedores curiosos sobre o desenvolvimento para a nuvem, considerando uma mudança para a nuvem ou que são novos no desenvolvimento em nuvem, encontrarão aqui uma visão geral concisa dos conceitos e práticas mais importantes que precisam conhecer. Os conceitos são ilustrados com exemplos concretos e cada capítulo é vinculado a outros recursos para obter informações mais detalhadas. Os exemplos e os links para recursos adicionais são para estruturas e serviços da Microsoft, mas os princípios ilustrados também se aplicam a outras estruturas de desenvolvimento web e ambientes de nuvem.

Os desenvolvedores que já estão desenvolvendo para a nuvem podem encontrar ideias aqui que ajudarão a torná-los mais bem-sucedidos. Cada capítulo da série pode ser lido de forma independente, para que você possa escolher e escolher os tópicos nos quais está interessado.

Qualquer pessoa que assistiu à apresentação do Scott Guthrie's Building Real World Cloud Apps com o Azure e quer mais detalhes e informações atualizadas descobrirá isso aqui.

Padrões de desenvolvimento de nuvem

Este e-book explica treze padrões recomendados para desenvolvimento em nuvem. "Padrão" é usado aqui em um sentido amplo para significar uma maneira recomendada de fazer as coisas: a melhor maneira de desenvolver, projetar e codificar aplicativos de nuvem. Esses são os principais padrões que ajudarão você a "cair no poço do sucesso" se você segui-los.

  • Automatizar tudo.

    • Use scripts para maximizar a eficiência e minimizar erros em processos repetitivos.
    • Demonstração: scripts de gerenciamento do Azure.
  • Controle do código-fonte.

    • Configure a estrutura de ramificação no controle do código-fonte para facilitar o fluxo de trabalho do DevOps.
    • Demonstração: adicione scripts ao controle do código-fonte.
    • Demonstração: mantenha os dados confidenciais fora do controle do código-fonte.
    • Demonstração: use o Git no Visual Studio.
  • Integração e entrega contínuas.

    • Automatize a compilação e a implantação com cada marcar de controle do código-fonte.
  • Práticas recomendadas de desenvolvimento na Web.

    • Mantenha a camada da Web sem estado.
    • Demonstração: dimensionamento automático e dimensionamento automático em Aplicativos Web em Serviço de Aplicativo do Azure.
    • Evite o estado da sessão.
    • Use uma CDN com um fallback quando a CDN não estiver disponível.
    • Use o modelo de programação assíncrona.
    • Demonstração: assíncrono em ASP.NET MVC e Entity Framework.
  • Logon único.

    • Introdução ao Azure Active Directory.
    • Demonstração: crie um aplicativo ASP.NET que usa o Azure Active Directory.
  • Opções de armazenamento de dados.

    • Tipos de armazenamentos de dados.
    • Como escolher o armazenamento de dados certo.
    • Demonstração: banco de dados SQL do Azure.
  • Estratégias de particionamento de dados.

    • Particione dados verticalmente, horizontalmente ou ambos para facilitar o dimensionamento de um banco de dados relacional.
  • Armazenamento de blobs não estruturado.

    • Armazene arquivos na nuvem usando o serviço blob.
    • Demonstração: usando o armazenamento de blobs no aplicativo Corrigir.
  • Projete para sobreviver a falhas.

    • Tipos de falhas.
    • Escopo da falha.
    • Noções básicas sobre SLAs.
  • Monitoramento e telemetria.

    • Por que você deve comprar um aplicativo de telemetria e escrever seu próprio código para instrumentar seu aplicativo.
    • Demonstração: Nova Relíquia para o Azure
    • Demonstração: código de registro em log no aplicativo Corrigir.
    • Demonstração: injeção de dependência no aplicativo Corrigir.
    • Demonstração: suporte interno ao registro em log no Azure.
  • Tratamento transitório de falhas.

    • Use a lógica de repetição/retirada inteligente para atenuar o efeito de falhas transitórias.
    • Demonstração: repetição/retirada no Entity Framework 6.
  • Cache distribuído.

    • Melhore a escalabilidade e reduza os custos de transação de banco de dados usando o cache distribuído.
  • Padrão de trabalho centrado na fila.

    • Habilite a alta disponibilidade e melhore a escalabilidade acoplando vagamente as camadas web e de trabalho.
    • Demonstração: filas de armazenamento do Azure no aplicativo Corrigir.
  • Mais padrões e diretrizes de aplicativos de nuvem.

  • Apêndice: O aplicativo de exemplo Fix It

    • Problemas conhecidos
    • Práticas Recomendadas
    • Como baixar, compilar, executar e implantar.

Esses padrões se aplicam a todos os ambientes de nuvem, mas os ilustraremos usando exemplos baseados em tecnologias e serviços da Microsoft, como Visual Studio, Team Foundation Service, ASP.NET e Azure.

Este restante deste capítulo apresenta o aplicativo de exemplo Fix It e o Aplicativos Web em Serviço de Aplicativo do Azure ambiente de nuvem em que o aplicativo Fix It é executado.

O aplicativo de exemplo Corrigir

A maioria das capturas de tela e os exemplos de código mostrados neste livro eletrônico são baseados no aplicativo Fix It originalmente desenvolvido por Scott Guthrie para demonstrar padrões e práticas recomendadas de desenvolvimento de aplicativos em nuvem.

Corrigir a home page do aplicativo it

O aplicativo de exemplo é um sistema simples de tíquete de item de trabalho. Quando você precisa de algo corrigido, você cria um tíquete e o atribui a alguém, e outras pessoas podem fazer logon e ver os tíquetes atribuídos a ele e marcar tíquetes conforme concluído quando o trabalho for concluído.

É um projeto Web padrão do Visual Studio. Ele é criado em ASP.NET MVC e usa um banco de dados SQL Server. Ele pode ser executado localmente em IIS Express e pode ser implantado em um Site do Azure para ser executado na nuvem. Você pode fazer logon usando a autenticação de formulários e um banco de dados local ou usando um provedor social, como o Google. (Posteriormente, também mostraremos como fazer logon com uma conta organizacional do Active Directory.)

Página de logon

Depois de fazer logon, você pode criar um tíquete, atribuí-lo a alguém e carregar uma imagem do que você deseja corrigir.

Criar uma tarefa Corrigir

Corrigir a tarefa criada

Você pode acompanhar o progresso dos itens de trabalho criados, ver tíquetes atribuídos a você, exibir detalhes do tíquete e marcar itens conforme concluído.

Esse é um aplicativo muito simples de uma perspectiva de recurso, mas você verá como compilá-lo para que ele possa ser dimensionado para milhões de usuários e será resiliente a coisas como falhas de banco de dados e terminações de conexão. Você também verá como criar um fluxo de trabalho de desenvolvimento automatizado e ágil, o que permite que você comece simples e torne o aplicativo melhor e melhor iterando o ciclo de desenvolvimento de forma eficiente e rápida.

Aplicativos Web no Serviço de Aplicativo do Azure

O ambiente de nuvem usado para o aplicativo Fix It é um serviço do Azure que chamamos de Sites. Esse serviço é uma maneira de hospedar seu próprio aplicativo Web no Azure sem precisar criar VMs e mantê-las atualizadas, instalar e configurar o IIS etc. Hospedamos seu site em nossas VMs e fornecemos automaticamente backup e recuperação e outros serviços para você. O serviço Sites funciona com ASP.NET, Node.js, PHP e Python. Ele permite que você implante muito rapidamente usando Visual Studio, Web Deploy, FTP, Git ou TFS. Geralmente, são apenas alguns segundos entre o tempo em que você inicia uma implantação e o tempo em que a atualização está disponível pela Internet. É tudo gratuito para começar, e você pode escalar verticalmente à medida que seu tráfego cresce.

Nos bastidores, Aplicativos Web em Serviço de Aplicativo do Azure fornece muitos componentes e recursos arquitetônicos que você teria que criar se fosse hospedar um site usando o IIS em suas próprias VMs. Um componente é um ponto de extremidade de implantação que configura automaticamente o IIS e instala seu aplicativo em quantas VMs você deseja executar seu site.

Serviço de implantação

Quando um usuário acessa o site, ele não atinge as VMs do IIS diretamente, ele passa pelos balanceadores de carga do ARR (Roteamento de Solicitações de Aplicativo ). Você pode usá-los com seus próprios servidores, mas a vantagem aqui é que eles estão configurados para você automaticamente. Eles usam uma heurística inteligente que leva em conta fatores como afinidade de sessão, profundidade da fila no IIS e uso da CPU em cada computador para direcionar o tráfego para as VMs que hospedam seu site.

Balanceador de carga ARR

Se um computador ficar inoperante, o Azure o extrairá automaticamente da rotação, gerará uma nova instância de VM e começará a direcionar o tráfego para a nova instância , tudo sem tempo de inatividade para o aplicativo.

Recuperação automática de falha do computador

Tudo isso ocorre automaticamente. Tudo o que você precisa fazer é criar um site e implantar seu aplicativo nele, usando Windows PowerShell, Visual Studio ou o portal de gerenciamento do Azure.

Para obter um tutorial passo a passo rápido e fácil que mostra como criar um aplicativo Web no Visual Studio e implantá-lo em um Site do Azure, consulte Introdução ao Azure e ASP.NET.

Resumo

Esta introdução forneceu uma lista de tópicos que o livro abordará, capturas de tela do aplicativo de exemplo e uma breve visão geral do Aplicativos Web em Serviço de Aplicativo do Azure ambiente de nuvem. Uma das grandes vantagens de desenvolver aplicativos em e para a nuvem é que é fácil automatizar tarefas repetitivas de desenvolvimento, como criar um ambiente de teste e implantar seu código nele. Como fazer isso é o assunto do próximo capítulo.

Recursos

Para obter mais informações sobre os tópicos abordados neste capítulo, consulte os recursos a seguir.

Documentação:

Vídeos: