Visão geral: Aplicativo Web Python em contêiner no Azure com MongoDB

Esta série de tutoriais mostra como contentorizar uma aplicação Web Python e, em seguida, executá-la localmente ou implementá-la no Serviço de Aplicações do Azure. O Aplicativo Web para Contêineres do Serviço de Aplicativo permite que você se concentre na criação de contêineres sem se preocupar em gerenciar e manter um orquestrador de contêineres subjacente. Quando está a construir aplicações web, o Serviço de Aplicações do Azure é uma boa opção para dar os primeiros passos com containers. Esta aplicação web container pode usar uma instância local do MongoDB ou o Azure DocumentDB (com compatibilidade com MongoDB) para armazenar dados. Para obter mais informações sobre como usar contêineres no Azure, consulte Comparando opções de contêiner do Azure.

Neste tutorial, irá aprender a:

Depois de concluir os artigos desta série de tutoriais, tem a base para a Integração Contínua (CI) e a Implementação Contínua (CD) de uma aplicação web Python para o Azure.

Descrição geral do serviço

O diagrama de serviço que dá suporte a este tutorial mostra dois ambientes: ambiente do desenvolvedor e ambiente do Azure. Ele destaca os principais serviços do Azure usados no processo de desenvolvimento.

Uma captura de tela dos serviços usados no Tutorial - Aplicativo Python em contêiner no Azure.

Ambiente de programador

O ambiente de desenvolvimento deste tutorial inclui os seguintes componentes:

  • Sistema de Desenvolvimento Local: Um computador pessoal usado para codificar, construir e testar o contêiner do Docker.

  • Containerização Docker: Docker é usada para empacotar a aplicação e as suas dependências num contentor portátil.

  • Ferramentas de Desenvolvimento: Um editor de código e outras ferramentas necessárias para o desenvolvimento de software.

  • Instância Local de MongoDB: Uma base de dados local de MongoDB usada para armazenamento de dados durante o desenvolvimento.

  • Conexão MongoDB: Uma cadeia de ligação que fornece acesso à base de dados local do MongoDB.

Ambiente do Azure

Os componentes que suportam o ambiente Azure neste tutorial incluem:

  • Serviço de Aplicações do Azure

    • No Serviço de Aplicações do Azure, a Web App for Containers utiliza a tecnologia de contentores Docker para fornecer alojamento de contentores tanto para imagens incorporadas como para imagens personalizadas, utilizando o Docker.
    • O Aplicativo Web para Contêineres usa um webhook no Registro de Contêiner do Azure (ACR) para ser notificado de novas imagens. Quando envias uma nova imagem para o registo, a notificação do webhook ativa o App Service para puxar a atualização e reiniciar a aplicação.
  • Registo de Contentores Azure

    • O Registro de Contêiner do Azure permite armazenar e gerenciar imagens do Docker e seus componentes no Azure. Fornece um registo localizado perto das suas implementações no Azure que lhe permite controlar o acesso usando os seus grupos Microsoft Entra e permissões.

    • Neste tutorial, o Registro de Contêiner do Azure é a fonte do Registro, mas você também pode usar o Docker Hub ou um registro privado com pequenas modificações.

  • Azure DocumentDB (com compatibilidade MongoDB)

    • O Azure DocumentDB é uma base de dados compatível com MongoDB utilizada neste tutorial para armazenamento de dados.

    • A aplicação containerizada liga-se e acede ao recurso Azure DocumentDB usando uma cadeia de ligação, que armazena como variável de ambiente e fornece à aplicação.

Autenticação

Neste tutorial, você cria uma imagem do Docker, localmente ou no Azure, e a implanta no Serviço de Aplicativo do Azure. O Serviço de Aplicativo extrai a imagem do contêiner de um repositório do Registro de Contêiner do Azure.

Para extrair imagens do repositório de forma segura, o App Service utiliza uma identidade gerida atribuída pelo sistema. Esta identidade gerida concede permissões à aplicação web para interagir com outros recursos do Azure, por isso não precisa de credenciais explícitas. Para este tutorial, configure a identidade gerida durante a configuração do App Service para usar uma imagem de contentor de registo.

O aplicativo Web de exemplo tutorial usa o MongoDB para armazenar dados. O código de exemplo liga-se ao Azure DocumentDB através de uma cadeia de ligação.

Pré-requisitos

Para concluir este tutorial, você precisa:

Aplicativo de exemplo

O resultado final deste tutorial é um aplicativo de revisão de restaurante, implantado e em execução no Azure, que se parece com a captura de tela a seguir.

Uma captura de tela do aplicativo de exemplo criado a partir do aplicativo Web em contêiner Python usado no Tutorial - Aplicativo Python em contêiner no Azure.

Neste tutorial, você cria um aplicativo de revisão de restaurante Python que utiliza o MongoDB para armazenamento de dados. Para obter um exemplo de aplicativo usando PostgreSQL, consulte Criar e implantar um aplicativo Web Flask no Azure com uma identidade gerenciada.

Próximo passo