Compartilhar via


Considerações para planos de controle multilocatário

Uma solução multilocatário tem vários planos e cada plano tem suas próprias responsabilidades. O plano de dados permite que usuários e clientes interajam com um sistema. O plano de controle gerencia tarefas de nível superior, como controle de acesso, provisionamento e manutenção do sistema, em todos os locatários para dar suporte às tarefas dos administradores da plataforma.

Diagrama que mostra um design de sistema lógico. Um único plano de controle fornece gerenciamento em vários planos de dados específicos do locatário.

Este artigo fornece informações sobre as responsabilidades dos planos de controle e como desenvolver um plano de controle que atenda às suas necessidades.

Por exemplo, considere um sistema de escrituração para gerenciar registros financeiros. Vários locatários armazenam seus registros financeiros no sistema. Quando os usuários acessam o sistema para exibir e inserir seus registros financeiros, eles usam o plano de dados. O plano de dados é provavelmente o principal componente de aplicativo para a sua solução. Os locatários normalmente a veem como a interface principal para usar o sistema conforme o esperado.

Por outro lado, o painel de controle integra novos locatários, cria bancos de dados para cada locatário e executa outras operações de gerenciamento e manutenção. Sem um plano de controle, os administradores devem confiar em processos manuais. Em alguns casos, as tarefas do plano de dados e do plano de controle ficam emaranhadas, o que complica demais as soluções.

Muitos sistemas complexos incluem um plano de controle. Por exemplo, o plano de controle do Azure, o Azure Resource Manager, é um conjunto de APIs, ferramentas e componentes de back-end que implantam e configuram recursos do Azure. E o plano de controle do Kubernetes gerencia muitas tarefas, como o posicionamento de pods do Kubernetes em nós de trabalho. Quase todas as soluções de software como serviço (SaaS) têm um plano de controle para lidar com tarefas entre locatários.

Ao desenvolver soluções multilocatário, você precisa considerar planos de controle. As seções a seguir descrevem como definir o escopo e projetar um plano de controle.

Responsabilidades de um plano de controle

Não há um modelo único para um plano de controle ou suas responsabilidades. Os requisitos e a arquitetura da sua solução determinam o que o plano de controle precisa fazer e como ele funciona. Em algumas soluções multilocatário, o plano de controle tem uma ampla gama de responsabilidades e é um sistema complexo por si só. Em outras soluções multilocatário, o plano de controle tem apenas responsabilidades básicas.

Em geral, um plano de controle pode ter muitas das seguintes responsabilidades principais:

Se você usar o modelo totalmente multilocatário e não implantar recursos específicos do locatário, um plano de controle básico poderá rastrear apenas locatários e seus metadados associados. Por exemplo, quando um novo locatário se inscreve em seu serviço, o plano de controle pode atualizar os registros apropriados em um banco de dados para que o restante do sistema possa atender às solicitações do novo locatário.

Por outro lado, se sua solução usar um modelo de implantação que exija infraestrutura específica do locatário, como o modelo de locatário único automatizado, seu plano de controle poderá ter mais responsabilidades. Talvez seja necessário implantar ou reconfigurar a infraestrutura do Azure ao integrar um novo locatário. Nesse cenário, o plano de controle provavelmente interage com os planos de controle para outras ferramentas, como o Resource Manager ou o plano de controle do Kubernetes.

Planos de controle avançados podem assumir mais responsabilidades:

  • Operações de manutenção automatizadas: Ele executa operações de manutenção comuns, incluindo exclusão ou arquivamento de dados antigos, criação e gerenciamento de índices de banco de dados e rotação de segredos e certificados criptográficos.

  • Posicionamento do locatário: ele aloca locatários para implantações ou selos existentes com base em critérios como destinos de uso de selo, requisitos de locatário e estratégias de empacotamento de compartimentos.

  • Rebalanceamento de locatário: reequilibra os locatários existentes entre os selos de implantação à medida que seu uso muda.

  • Acompanhamento de atividades do cliente: Ele se integra a soluções externas de gerenciamento de clientes, como o Dynamics 365, para acompanhar a atividade do cliente.

Definir o escopo de um plano de controle

Considere cuidadosamente quanto esforço gastar na criação de um plano de controle para sua solução. Um plano de controle não fornece diretamente valor imediato ao cliente, o que pode dificultar a justificativa do esforço de engenharia para projetar e construir um plano de controle de alta qualidade. No entanto, à medida que seu sistema cresce e escala, você precisa cada vez mais de gerenciamento automatizado e operações para acompanhar seu crescimento.

Em determinadas situações, talvez você não precise de um plano de controle total. Essa abordagem poderá funcionar se o sistema tiver menos de 10 locatários. Sua equipe pode assumir as responsabilidades do plano de controle e usar operações e processos manuais para integrar e gerenciar locatários. No entanto, você ainda deve ter um processo e manter um local central para acompanhar seus locatários e suas configurações.

Dica

Se você não criar um plano de controle total, ainda deverá aplicar uma abordagem sistemática aos procedimentos de gerenciamento:

  • Documente seus processos minuciosamente.
  • Crie e reutilize scripts para suas operações de gerenciamento quando possível.

Se você precisar automatizar processos no futuro, sua documentação e scripts poderão formar a base do plano de controle.

À medida que você cresce além de alguns locatários, você pode se beneficiar de acompanhar cada locatário e aplicar o monitoramento em sua frota de recursos e locatários. Você pode notar que sua equipe gasta uma quantidade crescente de tempo e esforço no gerenciamento de locatários. Ou você pode notar bugs ou problemas operacionais devido a inconsistências na forma como os membros da equipe executam tarefas de gerenciamento. Se essas situações ocorrerem, considere a criação de um plano de controle mais abrangente para assumir essas responsabilidades.

Observação

Se você fornecer gerenciamento de locatário de autoatendimento, precisará de um plano de controle no início da jornada. Você pode optar por criar um plano de controle básico e automatizar apenas algumas das funcionalidades mais usadas. Você pode adicionar progressivamente mais recursos ao longo do tempo.

Projetar um plano de controle

Depois de determinar os requisitos e o escopo do plano de controle, você precisará projetá-lo e arquitetá-lo. Um plano de controle é um componente importante e merece o mesmo nível de planejamento que qualquer outra parte de sua arquitetura.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework​, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Um plano de controle funciona como seu próprio sistema, portanto, você deve considerar todos os cinco pilares do Well-Architected Framework ao projetar um. As seções a seguir realçam áreas específicas em que se concentrar.

Fiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos assumidos com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.

Os planos de controle geralmente servem como componentes críticos. Você deve planejar o nível apropriado de resiliência e confiabilidade de que o plano de controle precisa.

Considere o impacto de uma interrupção do plano de controle. Em casos extremos, uma interrupção pode tornar toda a solução indisponível. Mesmo que o plano de controle não seja um único ponto de falha, uma interrupção pode causar os seguintes problemas:

  • Seu sistema não pode integrar novos locatários, o que pode afetar suas vendas e o crescimento dos negócios.

  • Seu sistema não poderá gerenciar locatários existentes, resultando em mais chamadas para sua equipe de suporte.

  • Não será possível avaliar o consumo de locatários nem cobrá-los pelo uso, resultando em perda de receita.

  • Você não pode desabilitar ou reconfigurar um locatário em resposta a um incidente de segurança.

  • O déficit de manutenção se acumulará, resultando em danos de longo prazo ao sistema. Por exemplo, se sua solução exigir limpeza noturna de dados antigos, seus discos poderão ficar cheios ou seu desempenho poderá diminuir.

Defina os objetivos de nível de serviço para seu plano de controle, incluindo metas de disponibilidade, o objetivo de tempo de recuperação (RTO) e o objetivo de ponto de recuperação (RPO). Os objetivos definidos para o plano de controle podem ser diferentes dos objetivos que você oferece aos seus clientes.

Segurança

A segurança oferece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design para segurança.

Os planos de controle geralmente são sistemas altamente privilegiados. Problemas de segurança em um plano de controle podem ter consequências catastróficas. Dependendo de seu design e funcionalidade, um plano de controle pode ser vulnerável a muitos tipos diferentes de ataques, incluindo os seguintes tipos:

  • Acesso não autorizado a segredos: Um plano de controle pode ter acesso a chaves e segredos para todos os locatários. Um invasor que tem acesso ao seu plano de controle pode obter acesso aos dados ou recursos de qualquer locatário.

  • Abuso dos recursos de implantação: Um plano de controle geralmente pode implantar novos recursos no Azure. Os invasores podem explorar seu plano de controle para implantar seus próprios recursos em suas assinaturas e, potencialmente, incorrer em cobranças extensas.

  • Negação de serviço: Se um invasor desabilitar com êxito seu plano de controle, danos imediatos e de longo prazo ao sistema e aos negócios poderão ocorrer. Para conhecer possíveis consequências da indisponibilidade do plano de controle, consulte Confiabilidade.

Ao projetar e implementar um plano de controle, você deve seguir as práticas recomendadas de segurança e criar um modelo de ameaça abrangente. Esse modelo deve identificar e atenuar possíveis ameaças e problemas de segurança em sua solução.

Excelência operacional

A Excelência operacional abrange os processos de operações que implantam uma aplicação e as mantêm em execução em produção. Para obter mais informações, consulte Lista de verificação de revisão de design para Excelência Operacional.

Um plano de controle é um componente crítico, portanto, você deve considerar cuidadosamente como implantá-lo e operá-lo em produção.

Assim como outras partes da solução, você deve implantar instâncias de não produção do seu plano de controle para que possa testar detalhadamente suas funcionalidades. Se o seu plano de controle realizar operações de implantação, considere como os planos de controle de não produção interagem com o ambiente do Azure e em qual assinatura do Azure implantar recursos de não produção. Planeje como limpar os recursos de teste rapidamente para que eles não acumulem cobranças acidentalmente.

Planeje também como controlar o acesso de sua equipe ao seu plano de controle. Conceda apenas as permissões que os membros da equipe precisam para executar suas funções. Essa abordagem ajuda a evitar incidentes de segurança e a reduzir o efeito da configuração incorreta acidental.

Componentes

Não há um único modelo para a criação de um plano de controle. Os componentes que você projeta e cria dependem de seus requisitos. A maioria dos planos de controle consiste em APIs e componentes de trabalho em segundo plano. Em algumas soluções, um plano de controle também inclui uma interface do usuário, que sua equipe ou até mesmo seus clientes podem usar.

Isolar seu plano de controle das cargas de trabalho do locatário

Você deve separar os recursos do seu plano de controle dos recursos que atendem aos planos de dados dos seus locatários. Por exemplo, use servidores de banco de dados separados, servidores de aplicativos e outros componentes. Mantenha os recursos do plano de controle em um grupo de recursos dedicado do Azure, separado dos recursos específicos do locatário.

O isolamento do plano de controle fornece as seguintes vantagens:

  • É possível configurar o dimensionamento separadamente. Por exemplo, seu plano de controle pode ter requisitos de recursos consistentes e os recursos de seus locatários podem ser dimensionados de forma elástica, dependendo de suas necessidades.

  • Uma separação clara cria um anteparo entre seus planos de controle e planos de dados, o que ajuda a evitar que o problema de vizinho barulhento se espalhe por sua solução.

  • Em geral, os planos de controle são sistemas altamente privilegiados que têm altos níveis de acesso. O isolamento do plano de controle reduz a probabilidade de uma vulnerabilidade de segurança, permitindo que os invasores elevem suas permissões em todo o sistema.

  • Você pode implantar configurações separadas de rede e firewall. Planos de dados e planos de controle geralmente requerem diferentes tipos de acesso à rede.

Orquestrar sequências de operações de execução prolongada

Os planos de controle geralmente executam operações de execução longa que exigem coordenação entre vários sistemas. Essas operações também podem ter modos de falha complexos, portanto, você deve escolher tecnologias que dão suporte a operações de execução longa ou fluxos de trabalho.

Por exemplo, quando você integra um novo locatário, o plano de controle pode executar as seguintes ações em sequência:

  1. Implantar um novo banco de dados. Essa operação de implantação do Azure pode levar vários minutos para ser concluída.

  2. Atualize seu catálogo de metadados do locatário. Essa ação pode envolver a execução de um comando em um banco de dados SQL do Azure.

  3. Envie um email de boas-vindas para o novo locatário. Essa ação invoca uma API não Microsoft para enviar o email.

  4. Atualize seu sistema de cobrança para se preparar para faturar o novo locatário. Essa ação invoca uma API não Microsoft que ocasionalmente falha.

  5. Atualize seu sistema de gerenciamento de relacionamento com o cliente (CRM) para rastrear o novo locatário. Essa ação invoca uma API que não seja da Microsoft.

Se qualquer etapa na sequência falhar, considere como responder:

  • Tentar novamente a operação que falhou. Por exemplo, se o comando SQL do Azure na etapa 2 falhar com um erro transitório, você poderá repeti-lo.

  • Siga para a próxima etapa. Por exemplo, você pode decidir que pode permitir que a atualização em seu sistema de cobrança falhe porque sua equipe de vendas pode adicionar manualmente o cliente mais tarde.

  • Abandone o fluxo de trabalho e acione um processo de recuperação manual.

Considere também a experiência do usuário para cada cenário de falha.

Gerenciar componentes compartilhados

Um plano de controle precisa reconhecer todos os componentes compartilhados em vez de dedicados a locatários específicos. Alguns componentes podem ser compartilhados entre todos os locatários contidos em um selo. Outros componentes podem ser compartilhados entre todos os selos em uma região, ou até mesmo compartilhados globalmente entre todas as regiões e selos. Quando você integra, reconfigura ou desapara um locatário, seu plano de controle precisa saber como lidar com esses componentes compartilhados.

Alguns componentes compartilhados exigem reconfiguração quando os locatários são adicionados ou removidos. Por exemplo, suponha que você tenha um perfil do Azure Front Door compartilhado globalmente. Se você adicionar um locatário que tenha um nome de domínio personalizado, talvez o plano de controle precise atualizar a configuração do perfil para rotear solicitações para esse nome de domínio para o aplicativo correto. Da mesma forma, quando um locatário é removido, seu plano de controle pode precisar remover o nome de domínio personalizado do perfil do Azure Front Door para evitar ataques de aquisição de subdomínio.

Os componentes compartilhados podem ter regras complexas de dimensionamento que seu plano de controle precisa seguir. Por exemplo, se você usar a abordagem de empacotamento binário para distribuir os bancos de dados dos locatários, o plano de controle deverá alocar cada novo banco de dados a um pool elástico do Azure SQL.

Você pode determinar que precisa aumentar os recursos alocados ao pool para cada décimo banco de dados adicionado. Quando você adiciona ou remove um locatário, seu plano de controle precisa reavaliar a configuração do pool e decidir se deseja alterar os recursos do pool. Quando você atinge o número máximo de bancos de dados que pode atribuir a um único pool elástico, é necessário criar um novo pool e usar esse pool para novos bancos de dados de locatário. Seu plano de controle deve gerenciar cada um desses componentes compartilhados, incluindo dimensionar e reconfigurá-los quando ocorrerem alterações.

Quando seu plano de controle gerencia componentes compartilhados, é importante estar ciente das condições de corrida, que podem ocorrer quando várias operações acontecem paralelamente. Por exemplo, se você integrar um novo locatário ao mesmo tempo que remover um locatário diferente, precisará garantir que seu estado final seja consistente e atenda aos requisitos de dimensionamento.

Usar vários planos de controle

Em um ambiente complexo, talvez seja necessário usar vários planos de controle que gerenciam áreas diferentes. Muitas soluções multilocatário seguem o padrão de Selos de Implantação e locatários compartilhados em vários selos. Nesse padrão, é possível criar planos de controle separados para responsabilidades globais e de selo.

Dica

A coordenação entre vários planos de controle adiciona complexidade, portanto, tente minimizar o número de planos de controle que você cria. A maioria das soluções precisa de apenas um plano de controle.

Planos de controle globais

Um plano de controle global normalmente lida com o gerenciamento geral e o acompanhamento de locatários. Um plano de controle global pode ter as seguintes responsabilidades:

  • Posicionamento do locatário: O plano de controle global determina qual carimbo um locatário deve usar. Ele pode fazer essa determinação com base em fatores como a região do locatário, o uso da capacidade de cada selo e os requisitos de nível de serviço do locatário.

  • Integração de locatários e gerenciamento de ciclo de vida: Essas responsabilidades incluem o acompanhamento de todos os locatários entre implantações.

Planos de controle de selo

Cada selo de implantação inclui seu próprio plano de controle de selo, que gerencia os locatários e os recursos alocados a esse selo. Um plano de controle de selo pode ter as seguintes responsabilidades:

  • Provisionamento de recursos do cliente: Ele cria e gerencia recursos específicos do cliente dentro da plataforma, como bancos de dados e contêineres de armazenamento.

  • Gerenciamento de recursos compartilhados: Ele monitora o consumo de recursos compartilhados e implanta novas instâncias quando elas se aproximam de sua capacidade máxima.

  • Operações de manutenção: Ele manipula tarefas dentro do carimbo, como operações de limpeza e gerenciamento de índice de banco de dados.

O plano de controle de cada selo é coordenado com o plano de controle global. Por exemplo, se um novo locatário se inscrever, o plano de controle global poderá inicialmente selecionar um carimbo para os recursos do locatário. Em seguida, o plano de controle global faz prompt solicitando que o plano de controle do selo crie os recursos necessários para o locatário.

O diagrama a seguir mostra como dois planos de controle podem coexistir em um único sistema.

Diagrama que mostra um design de sistema lógico. O design tem um plano de controle global e planos de controle de carimbo.

Planos de controle de locatário

Os locatários podem usar um plano de controle no nível do locatário para gerenciar seus próprios recursos lógicos ou físicos. Um plano de controle de locatário pode ter as seguintes responsabilidades:

  • Gerenciamento de configuração: Ele manipula a configuração específica do locatário, como o acesso do usuário.

  • Operações de manutenção iniciadas pelo locatário: Ele dá suporte a operações como fazer backup de dados ou baixar backups anteriores.

  • Gerenciamento de atualizações: Ele executará atualizações se você permitir que os locatários controlem suas próprias atualizações para seus aplicativos.

O diagrama a seguir mostra um sistema complexo que tem um plano de controle global, planos de controle de selos e planos de controle de locatários.

Diagrama que mostra um projeto de sistema lógico. O projeto tem um plano de controle global, planos de controle de selo e planos de controle de locatário.

Contribuidores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Autor principal:

  • John Downs | Principal Engenheiro de Software, Padrões do Azure & Práticas

Outros colaboradores:

  • Bohdan Cherchyk | Engenheiro de Cliente Sênior da FastTrack para Azure
  • Landon Pierce | Engenheiro de Cliente, FastTrack for Azure
  • Daniel Scott-Raynsford | Estrategista de Tecnologia Do Parceiro
  • Arsen Vladimirskiy | Engenheiro principal de atendimento ao cliente, FastTrack for Azure

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

Próxima etapa