Migrar contêineres por lift-and-shift com o Serviço de Aplicativo

Microsoft Entra ID
Registro de Contêiner do Azure
Serviço de aplicativo do Azure

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Essa solução migra aplicativos Web existentes para contêineres implantados no Serviço de Aplicativo, o que permite que você se concentre na composição de contêineres que não se preocupam em gerenciar a orquestração de contêineres.

Arquitetura

Diagrama de arquitetura mostrando a migração de aplicativos para contêineres no Serviço Kubernetes do Azure com o Open Service Broker para Azure para acessar bancos de dados do Azure.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O desenvolvedor converte o aplicativo Web existente em contêiner.
  2. O desenvolvedor publica a imagem do contêiner para:
    1. Um registro privado ou o Hub do Docker.
    2. Ou um Registro de Contêiner do Azure.
  3. O Serviço de Aplicativo efetua pull da imagem com:
    1. Credenciais para o Registro Privado ou o Hub do Docker, se usado.
    2. Ou identidade gerenciada, que usa uma entidade de segurança do Microsoft Entra para acessar o Registro de Contêiner do Azure.
  4. Conectores de serviço para acessar outros recursos do Azure.
  5. O desenvolvedor envia uma nova imagem por push para o registro de contêiner, que dispara atualizações do Serviço de Aplicativo quando a implantação contínua está habilitada.

Componentes

Aplicativo Web para Contêineres: com o Serviço de Aplicativo, você pode implantar e executar aplicativos Web em contêineres no Windows e no Linux. O Aplicativo Web para Contêineres fornece uma fácil rampa para os desenvolvedores aproveitarem uma plataforma totalmente gerenciada, mas que também querem um único artefato implantável contendo um aplicativo e todas as suas dependências. Outro cenário de destino são os desenvolvedores que desejam trabalhar com uma estrutura ou versão personalizada além dos padrões integrados à plataforma do Serviço de Aplicativo do Azure. Aplicativos Web em contêineres no Serviço de Aplicativo do Azure podem ser dimensionados conforme necessário e usar fluxos de trabalho simplificados de CI/CD com o Hub do Docker, o Registro de Contêiner do Azure e o GitHub.

O Registro de Contêiner do Azure é um registro de imagens do Docker e da Open Container Initiative (OCI), com suporte para todos os artefatos da OCI. Use imagens de contêiner nos serviços do Azure, como Serviço de Aplicativo, Machine Learning e Lote. Por exemplo, ao configurar o Aplicativo Web para Contêineres para seu aplicativo Web, você pode especificar uma imagem de contêiner do Registro de Contêiner do Azure.

O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado para criar aplicativos escalonáveis de alto desempenho. O Azure Cosmos DB é integrado aos principais serviços do Azure, incluindo Azure Functions, Hub IoT, AKS (Serviço de Kubernetes do Azure), Serviço de Aplicativo e muito mais. Você pode escolher entre várias APIs de banco de dados, incluindo o Azure Cosmos DB nativo para NoSQL, o Azure Cosmos DB para MongoDB, o Azure Cosmos DB para Apache Cassandra, o Azure Cosmos DB para Apache Gremlin e o Azure Cosmos DB para Tabela.

Banco de Dados SQL do Azure: um banco de dados relacional totalmente gerenciado com inteligência interna. O Banco de Dados SQL do Azure ajuda você a criar aplicativos localmente ou na nuvem em plataformas e estruturas populares com suporte de driver para os idiomas mais comuns. O Banco de Dados SQL permite simplificar o desenvolvimento com suporte nativo para sites em execução no Serviço de Aplicativo do Azure.

Armazenamento do Azure: o Armazenamento do Azure oferece uma solução de armazenamento em nuvem durável, altamente disponível e massivamente escalonável e inclui armazenamento de objetos, arquivos, discos, filas e tabelas. O armazenamento do Azure inclui serviços de armazenamento de objetos, blocos e arquivos para atender às demandas do seu site. Por exemplo, os sites podem usar facilmente o Armazenamento de Blobs do Azure para armazenamento de blocos escalonável e seguro para mídia de site, como fotos e vídeos.

Azure Monitor: Application Insights, fornece monitoramento de integridade e desempenho e diagnóstico. O Azure Monitor pode ser usado com o Aplicativo Web para Contêineres (Serviço de Aplicativo) para monitorar métricas do site, como número de conexões e contagens de solicitação, resultando em códigos de status HTTP.

Conector de Serviço do Azure: o Conector de Serviço ajuda você a conectar os serviços de computação do Azure a outros serviços de suporte. Por exemplo, use um conector de serviço entre o Serviço de Aplicativo do Azure e o Banco de Dados do Azure para MySQL ou PostgreSQL, Armazenamento do Azure e Azure Key Vault. Para obter uma lista completa de serviços com suporte, consulte Serviços que têm suporte no Service Connector.

Detalhes do cenário

Migre facilmente aplicativos Web existentes para contêineres e execute os aplicativos Web em contêineres no Aplicativo Web para Contêineres no Serviço de Aplicativo do Azure. O Aplicativo Web para Contêineres permite que você se concentre na composição de seus contêineres sem se preocupar em gerenciar e manter um orquestrador de contêiner subjacente. Quando você cria aplicativos Web, o Aplicativo Web para Contêineres é uma boa opção para executar suas primeiras etapas com contêineres. Seus contêineres podem integrar facilmente outros recursos do Azure, como serviços de armazenamento e banco de dados.

Ao integrar aplicativos Web existentes com recursos do Azure, você também pode aproveitar as conexões sem senha para os serviços do Azure . Conexões sem senha são um recurso independente de linguagem que abrange vários serviços do Azure. Quando você usa conexões sem senha, seus aplicativos Web se conectam aos serviços baseados no Azure sem a necessidade de girar senhas. Você só precisa de configuração, nenhum novo código é necessário.

Possíveis casos de uso

Essa ideia de solução é ideal para migrar aplicativos Web atuais para contêineres executados no Azure. Essa ideia de solução pode ser usada para criar um site quando o seguinte se aplicar:

  • Usa a experiência de programação existente usada para criar sites implantados por código para criar sites implantados por contêiner. Faça lift and shift dos aplicativos Web existentes para contêineres no Serviço de Aplicativo.

  • Desenvolvimento e implantação simplificados com ferramentas como Visual Studio, Visual Studio Code, CLI do Azure e Azure Cloud Shell.

  • Portabilidade em diferentes ambientes, desde desenvolvimento até produção e nuvens diferentes. Você pode testar localmente, em uma plataforma diferente do que é implantado para produção.

  • Escalabilidade no Serviço de Aplicativo significa que você pode escalar horizontalmente o número de trabalhadores usados sob demanda.

  • A modularidade para o futuro site funciona no Serviço de Aplicativo ou em outros serviços, como Aplicativos de Contêiner do Azure e Serviço de Kubernetes do Azure. O Aplicativo Web para Contêineres pode ser um bom primeiro passo para migrar para contêineres.

  • Um contêiner implantado no Aplicativo Web para Contêineres está pronto para integração contínua e implantação contínua (CI/CD). As funcionalidades de CI/CD permitem que você envie atualizações mais rapidamente.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas

Exemplo de implantações de linguagem de contêineres no Serviço de Aplicativo:

Diretrizes de arquitetura relacionadas: