Visão geral: implantar um aplicativo Web Python em aplicativos de contêiner do Azure

Este tutorial mostra como contentorizar uma aplicação Web Python e implementá-la nas Aplicações de Contentor do Azure. Um aplicativo Web de exemplo será conteinerizado e a imagem do Docker armazenada no Registro de Contêiner do Azure. Os Aplicativos de Contêiner do Azure estão configurados para extrair a imagem do Docker do Registro de Contêiner e criar um contêiner. O aplicativo de exemplo se conecta a um Banco de Dados do Azure para PostgreSQL para demonstrar a comunicação entre Aplicativos de Contêiner e outros recursos do Azure.

Há várias opções para criar e implantar aplicativos Web Python nativos da nuvem e em contêineres no Azure. Este tutorial aborda os Aplicativos de Contêiner do Azure. Os aplicativos de contêiner são bons para executar contêineres de uso geral, especialmente para aplicativos que abrangem muitos microsserviços implantados em contêineres. Neste tutorial, você criará um contêiner. Para implantar um aplicativo Web Python como um contêiner no Serviço de Aplicativo do Azure, consulte Aplicativo Web Python em contêiner no Serviço de Aplicativo.

Neste tutorial, você:

Após este tutorial, você será configurado para Integração Contínua (CI) e Implantação Contínua (CD) de um aplicativo Web Python para o Azure.

Descrição geral do serviço

O diagrama de serviço que dá suporte a este tutorial mostra como seu ambiente local, repositórios do GitHub e serviços do Azure são usados no tutorial.

A screenshot of the environments and services used in the Tutorial - Deploy a Python App on Azure Container Apps.

Os componentes que suportam este tutorial e mostrados no diagrama acima são:

  • Aplicativos de contêiner do Azure

    • O Azure Container Apps permite-lhe executar microsserviços e aplicações contentorizadas numa plataforma sem servidor. Uma plataforma sem servidor significa que você aproveita os benefícios de executar contêineres com configuração mínima. Com os Aplicativos de Contêiner do Azure, seus aplicativos podem ser dimensionados dinamicamente com base em características como tráfego HTTP, processamento controlado por eventos ou carga de CPU ou memória.
    • Os Aplicativos de Contêiner extraem imagens do Docker do Registro de Contêiner do Azure. As alterações nas imagens de contêiner acionam uma atualização para o contêiner implantado. Você também pode configurar as Ações do GitHub para disparar atualizações.
  • Azure Container Registry

    • O Registro de Contêiner do Azure permite que você trabalhe com imagens do Docker no Azure. Como o Registro de Contêiner está próximo de suas implantações no Azure, você tem controle sobre o acesso, tornando possível usar seus grupos e permissões do Microsoft Entra para controlar o acesso às imagens do Docker.
    • Neste tutorial, a fonte do Registro é o Registro de Contêiner do Azure, mas você também pode usar o Docker Hub ou um registro privado com pequenas modificações.
  • Base de Dados do Azure para PostgreSQL

    • O código de exemplo armazena dados do aplicativo em um banco de dados PostgreSQL.
    • O aplicativo de contêiner se conecta ao PostgreSQL por meio de variáveis de ambiente configuradas explicitamente ou com o Azure Service Connector.
  • GitHub

    • O código de exemplo para este tutorial está em um repositório GitHub que você irá bifurcar e clonar localmente. Para configurar um fluxo de trabalho de CI/CD com as Ações do GitHub, você precisará de uma conta do GitHub.
    • Você ainda pode acompanhar este tutorial sem uma conta do GitHub, trabalhando localmente ou no Azure Cloud Shell para criar a imagem do contêiner a partir do repositório de código de exemplo.

Revisões e CI/CD

Para fazer alterações de código e enviá-las por push para um contêiner, crie uma nova imagem do Docker com a alteração. Em seguida, você envia a imagem para o Registro de contêiner e cria uma nova revisão do aplicativo de contêiner.

Para automatizar esse processo, uma etapa opcional no tutorial mostra como criar um pipeline de integração contínua e entrega contínua (CI/CD) com as Ações do GitHub. O pipeline cria e implanta automaticamente seu código no Container App sempre que uma nova confirmação é enviada por push para o repositório do GitHub.

Autenticação e segurança

Neste tutorial, você criará uma imagem de contêiner do Docker diretamente no Azure e a implantará nos Aplicativos de Contêiner do Azure. Os Aplicativos de Contêiner são executados no contexto de um ambiente, que é suportado por uma VNet (Redes Virtuais do Azure). As redes virtuais são um bloco de construção fundamental para sua rede privada no Azure. Os Aplicativos de Contêiner permitem que você exponha seu aplicativo de contêiner à Web pública habilitando a entrada.

Para configurar a integração contínua e a entrega contínua (CI/CD), você autorizará os Aplicativos de Contêiner do Azure como um Aplicativo OAuth para sua conta do GitHub. Como um Aplicativo OAuth, os Aplicativos de Contêiner gravam um arquivo de fluxo de trabalho de Ações do GitHub em seu repositório com informações sobre recursos e trabalhos do Azure para atualizá-los. O fluxo de trabalho atualiza os recursos do Azure usando credenciais de uma entidade de serviço do Microsoft Entra (ou existente) com acesso baseado em função para Aplicativos de Contêiner e nome de usuário e senha para o Registro de Contêiner do Azure. As credenciais são armazenadas com segurança no repositório GitHub.

Finalmente, o aplicativo Web de exemplo do tutorial armazena dados em um banco de dados PostgreSQL. O código de exemplo se conecta ao PostgreSQL por meio de uma cadeia de conexão. Durante a configuração do aplicativo de contêiner, o tutorial orienta você pela configuração de variáveis de ambiente que contêm informações de conexão. Você também pode usar um Conector de Serviço do Azure para realizar a mesma coisa.

Pré-requisitos

Para concluir este tutorial, você precisará:

  • Uma conta do Azure onde você pode criar:

    • Registo de Contentores do Azure
    • Ambiente de Aplicativos de Contêiner do Azure
    • Base de Dados do Azure para PostgreSQL
  • Visual Studio Code ou CLI do Azure, dependendo da ferramenta que você usará

    • Para Visual Studio Code, você precisará da extensão Container Apps.
    • Você também pode usar a CLI do Azure por meio do Azure Cloud Shell.
  • Pacotes Python:

Aplicativo de exemplo

O aplicativo de exemplo Python é um aplicativo de revisão de restaurante que salva dados de restaurantes e avaliações no PostgreSQL. No final do tutorial, você terá um aplicativo de revisão de restaurante implantado e em execução nos Aplicativos de Contêiner do Azure que se parece com a captura de tela abaixo.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Próximo passo