Compartilhar via


Considerações sobre o uso de Aplicativos de Contêiner em uma solução multilocatário

Você pode usar os Aplicativos de Contêiner do Azure para executar microsserviços e aplicativos conteinerizados em uma plataforma sem servidor. Este artigo descreve alguns dos recursos de Aplicativos de Contêiner que são úteis para soluções multilocatário. Ele também fornece links para orientações que podem ajudá-lo durante a fase de planejamento.

Modelos de isolamento

Ao trabalhar com um sistema multilocatário que usa Aplicativos de Contêiner, você precisa determinar o nível necessário de isolamento. Os Aplicativos de Contêiner têm suporte para diferentes modelos de multilocação:

  • Você pode implementar multilocação confiável usando um ambiente compartilhado. Por exemplo, esse modelo pode ser adequado quando seus locatários são todos de dentro de sua organização.
  • Você pode implementar a multilocação hostil implantando ambientes separados para cada locatário. Por exemplo, esse modelo pode ser adequado quando você não confia no código executado por seus locatários.

A tabela a seguir resume as diferenças entre os principais modelos de isolamento de locação para Aplicativos de Contêiner. Os modelos são descritos posteriormente neste artigo.

Consideração Um ambiente por locatário Aplicativos de contêiner específicos do locatário Aplicativos de contêiner compartilhados
Isolamento de dados Alto Baixo Baixo
Isolamento de desempenho Alto Média. Nenhum isolamento de rede. Baixo
Complexidade da implantação Médio Baixo a médio Baixo
Complexidade operacional Médio Baixo Baixo
Custo de recurso Alto Baixo Baixo
Cenário de exemplo Executando cargas de trabalho multilocatário hostis em ambientes isolados para segurança e conformidade Otimizando custos, recursos de rede e operações para aplicativos multilocatários confiáveis Implementando uma solução multilocatário no nível da lógica de negócios

Aplicativos de contêiner compartilhados

Talvez você queira considerar a implantação de aplicativos de contêiner compartilhados em um único ambiente de Aplicativos de Contêiner usado para todos os seus locatários.

Diagrama que mostra um modelo de isolamento de Aplicativos de Contêiner compartilhado. Todos os locatários compartilham um único ambiente de Aplicativo de Contêiner e aplicativos de contêiner.

Essa abordagem geralmente é mais econômica e requer a menor sobrecarga operacional visto que há menos recursos para gerenciar.

No entanto, se você quiser usar esse modelo de isolamento, o código do aplicativo deverá ter reconhecimento multilocação. Esse modelo de isolamento não garante o isolamento no nível de rede, computação, monitoramento ou dados. O código do aplicativo deve lidar com o isolamento do locatário. Esse modelo não é apropriado para cargas de trabalho hostis de multilocação nas quais você não confia no código que está em execução.

Além disso, esse modelo está potencialmente sujeito a preocupações de vizinhos barulhentos: a carga de trabalho de um locatário pode afetar o desempenho da carga de trabalho de outro locatário. Se você precisar fornecer taxa de transferência dedicada para mitigar essa preocupação, o modelo de aplicativos de contêiner compartilhado poderá não ser apropriado.

Observação

O padrão de Selos de Implantação é útil quando os locatários estão em modelos de custo diferentes. Por exemplo, os locatários podem ser atribuídos a ambientes de Aplicativos de Contêiner compartilhados ou dedicados, dependendo de seu tipo de preço. Essa estratégia de implantação permite que você ultrapasse os limites dos Aplicativos de Contêiner para uma assinatura única por região e que dimensione linearmente à medida que o número de locatários aumenta.

Aplicativos de contêiner específicos do locatário

Outra abordagem que você pode considerar é isolar seus locatários implantando aplicativos de contêiner específicos do locatário em um ambiente compartilhado.

Diagrama que mostra um modelo de isolamento de Aplicativos de Contêiner no qual aplicativos de contêiner específicos do locatário são implantados em um ambiente de Aplicativos de Contêiner compartilhado.

Esse modelo de isolamento fornece isolamento lógico entre cada locatário. Ela oferece estas vantagens:

  • Redução de custos. Ao compartilhar um ambiente de Aplicativos de Contêiner, uma rede virtual e outros recursos anexados, como um workspace do Log Analytics, você geralmente pode reduzir o custo geral e a complexidade de gerenciamento por locatário.
  • Separação de atualizações e implantações. Os binários de aplicativo de cada locatário podem ser implantados e atualizados independentemente daqueles de outros aplicativos de contêiner no mesmo ambiente. Essa abordagem poderá ser útil se você precisar atualizar locatários diferentes para versões específicas do seu código em momentos diferentes.
  • Isolamento de recurso. Cada aplicativo de contêiner em seu ambiente está alocado para seus próprios recursos de CPU e memória. Se um locatário específico requerer mais recursos, você poderá alocar mais CPU e memória para o aplicativo de contêiner específico desse locatário. Tenha em mente que há limites em alocações totais de CPU e memória em aplicativos de contêiner.

No entanto, essa abordagem não fornece nenhum isolamento de hardware ou rede entre locatários. Todos os aplicativos de contêiner em um único ambiente compartilham a mesma rede virtual. Você precisa ser capaz de confiar que as cargas de trabalho implantadas nos aplicativos não farão uso incorreto dos recursos compartilhados.

Os Aplicativos de Contêiner têm suporte interno para Dapr, que usa um design modular para fornecer funcionalidade como componentes. Em Aplicativos de Contêiner, os componentes do Dapr são recursos de nível de ambiente. Ao compartilhar um único ambiente entre vários locatários, certifique-se de definir corretamente o escopo dos componentes do Dapr para o aplicativo de contêiner específico do locatário correto para garantir o isolamento e evitar o risco de vazamento de dados.

Observação

Não use revisões para criar versões diferentes do seu aplicativo para locatários diferentes. As revisões não fornecem isolamento de recursos. Elas são projetadas para cenários de implantação nos quais você precisa ter várias versões do seu aplicativo em execução como parte de um processo de distribuição de atualizações, como em implantações azuis/verdes e testes A/B.

Um ambiente por locatário

Você pode considerar a implantação de um ambiente de Aplicativos de Contêiner para cada um de seus locatários. Um ambiente dos Aplicativos de Contêiner é o limite de isolamento ao redor de um grupo de aplicativos de contêiner. Um ambiente fornece isolamento de computação e de rede no plano de dados. Cada ambiente é implantado em sua própria rede virtual, que é compartilhada por todos os aplicativos no ambiente. Cada ambiente tem seu próprio Dapr e configuração de monitoramento.

Diagrama que mostra um modelo de isolamento de Aplicativos de Contêiner no qual cada locatário obtém seu próprio ambiente de Aplicativo de Contêiner.

Essa abordagem oferece o nível mais forte de isolamento de dados e desempenho porque os dados e o tráfego de cada locatário são isolados em um ambiente específico. E, quando você usa esse modelo, seus aplicativos não precisam ter reconhecimento multilocação. Ao usar essa abordagem, você tem um controle mais granular sobre como alocar recursos para aplicativos de contêiner no ambiente. Você pode determinar alocações com base nos requisitos do seu locatário. Por exemplo, alguns locatários podem exigir mais recursos de CPU e memória do que outros, para que você possa fornecer mais recursos aos aplicativos desses locatários enquanto se beneficia do isolamento que os ambientes específicos do locatário fornecem.

No entanto, há limites baixos para quantos ambientes você pode implantar em uma assinatura por região. Em algumas situações, você pode aumentar essas cotas criando um tíquete de suporte do Azure.

Saiba o crescimento esperado no número de locatários antes de implementar esse modelo de isolamento. Tenha em mente que essa abordagem geralmente incorre em um custo total de propriedade mais alto e em níveis mais altos de complexidade operacional e de implantação, devido aos recursos extras de que você precisa para implantar e gerenciar.

Recursos de Aplicativos de Contêiner que oferecem suporte à multilocação

Nomes de domínio personalizados

Os Aplicativos de Contêiner permitem usar o DNS curinga e adicionar seus próprios certificados TLS curinga. Ao usar subdomínios específicos do locatário, os certificados DNS e TLS curinga permitem dimensionar facilmente a solução para um grande número de locatários, sem precisar reconfigurar manualmente cada novo locatário.

Em Aplicativos de Contêiner, você gerencia certificados no nível do ambiente. A entrada também deve estar habilitada para o aplicativo de contêiner para que você possa vincular um domínio personalizado a ele.

Solicitar autenticação e autorização

Os Aplicativos de Contêiner podem validar tokens de autenticação em nome do seu aplicativo. Se uma solicitação não contiver um token, o token não for válido ou a solicitação não for autorizada, você poderá configurar os Aplicativos de Contêiner para bloquear a solicitação ou redirecioná-la para seu provedor de identidade para que o usuário possa se conectar.

Se seus locatários usarem o Microsoft Entra ID como provedor de identidade, você poderá configurar os Aplicativos de Contêiner para usar o ponto de extremidade /common para validar tokens de usuário. Fazer isso garante que, independentemente do locatário do Microsoft Entra do usuário, os tokens dele sejam validados e aceitos.

Você também pode integrar Aplicativos de Contêiner com o Azure Active Directory B2C para autenticação de usuário por meio de provedores de identidade de parceiros.

Para obter mais informações, confira estes recursos:

Observação

Os recursos de autenticação e autorização nos Aplicativos de Contêiner são semelhantes aos do Serviço de Aplicativo do Azure. No entanto, há algumas diferenças. Para obter mais informações, consulte Considerações ao usar a autenticação interna.

Identidades gerenciadas

Você pode usar identidades gerenciadas do Microsoft Entra ID para permitir que seu aplicativo de contêiner acesse outros recursos autenticados pelo Microsoft Entra ID. Quando você usa identidades gerenciadas, seu aplicativo de contêiner não precisa gerenciar credenciais para a comunicação de serviço a serviço. Você pode conceder permissões específicas à identidade do seu aplicativo de contêiner para controle de acesso baseado em função.

Ao usar identidades gerenciadas, tenha em mente sua escolha de modelo de isolamento. Por exemplo, suponha que você compartilhe seus aplicativos de contêiner entre todos os locatários e implante bancos de dados específicos do locatário. Você precisa garantir que o aplicativo de um locatário não possa acessar o banco de dados de um locatário diferente.

Para obter mais informações, confira Identidades gerenciadas nos Aplicativos de Contêiner do Azure.

Colaboradores

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

Principais autores:

  • Daniel Larsen | Engenheiro de cliente principal, FastTrack for Azure
  • Will Velida | Engenheiro do Cliente 2, FastTrack for Azure

Outros colaboradores:

  • John Downs | Engenheiro de software principal
  • Chad Kittel | Engenheiro de Software Principal, Microsoft
  • Xuhong Liu | Engenheiro de Serviços Sênior, FastTrack for Azure
  • Aarthi Murugan | Gerente Sênior de Programa, Inovação de Aplicativos da CS Tech Strategy
  • Kendall Roden | Gerente Sênior de Programa, Aplicativos de Contêiner do Azure
  • Paolo Salvatori | Engenheiro de Cliente Principal, FastTrack for Azure
  • Arsen Vladimirskiy | Engenheiro de Cliente Principal, FastTrack for Azure

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

Próximas etapas