Comparando padrões de implantação centralizada e distribuída - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Comparando padrões de implantação centralizada e distribuída

Você pode implantar o OPA em um padrão de implantação centralizado ou distribuído, e o método ideal para um aplicativo multilocatário depende do caso de uso. Para obter exemplos desses padrões, consulte as APIs seções Usando uma PDP centralizada com uma PDP PEPs ativada APIs e Usando uma PDP distribuída e PEPs ativada anteriormente neste guia. Como o OPA pode ser implantado como um daemon em um sistema operacional ou contêiner, ele pode ser implementado de várias maneiras para oferecer suporte a um aplicativo multilocatário.

Em um padrão de implantação centralizado, o OPA é implantado como um contêiner ou daemon com sua RESTful API disponível para outros serviços no aplicativo. Quando um serviço exige uma decisão da OPA, a RESTful API central da OPA é chamada para produzir essa decisão. Essa abordagem é simples de implantar e manter, porque há apenas uma única implantação do OPA. A desvantagem dessa abordagem é que ela não fornece nenhum mecanismo para manter a separação dos dados do inquilino. Como há apenas uma única implantação da OPA, todos os dados do inquilino usados em uma decisão de OPA, incluindo quaisquer dados externos referenciados pela OPA, devem estar disponíveis para a OPA. Você pode manter o isolamento dos dados do inquilino com essa abordagem, mas ela deve ser aplicada pela política e pela estrutura de documentos da OPA ou pelo acesso a dados externos. Um padrão de implantação centralizado também exige uma latência maior, porque cada decisão de autorização deve fazer uma chamada de RESTful API para outro serviço.

Em um padrão de implantação distribuída, o OPA é implantado como um contêiner ou daemon junto com os serviços do aplicativo multilocatário. Ele pode ser implantado como um contêiner auxiliar ou como um daemon executado localmente no sistema operacional. Para recuperar uma decisão da OPA, o serviço faz uma chamada de RESTful API para a implantação local da OPA. (Como o OPA pode ser implantado como um pacote Go, você pode usar o Go nativamente para recuperar uma decisão em vez de usar uma RESTful chamada de API.) Diferentemente do padrão de implantação centralizada, o padrão distribuído exige um esforço muito mais robusto de implantação, manutenção e atualização, pois está presente em várias áreas do aplicativo. Um benefício do padrão de implantação distribuída é a capacidade de manter o isolamento dos dados do inquilino, especialmente para aplicativos que usam um modelo SaaS em silos. Os dados específicos do locatário podem ser isolados em implantações de OPA específicas desse locatário, porque a OPA em um modelo distribuído é implantada junto com o locatário. Além disso, um padrão de implantação distribuída tem uma latência muito menor do que um padrão de implantação centralizada, pois cada decisão de autorização pode ser tomada localmente.

Ao escolher um padrão de implantação de OPA em seu aplicativo multilocatário, certifique-se de avaliar os critérios mais críticos para seu aplicativo. Se seu aplicativo multilocatário for sensível à latência, um padrão de implantação distribuído oferece melhor desempenho às custas de implantação e manutenção mais complexas. Embora você possa gerenciar parte dessa complexidade por meio DevOps da automação, ela ainda exige um esforço adicional quando comparado a um padrão de implantação centralizado.

Se seu aplicativo multilocatário usa um modelo SaaS em silos, você pode usar um padrão de implantação de OPA distribuído para imitar a abordagem em silos do isolamento de dados do inquilino. Isso ocorre porque, quando o OPA é executado junto com cada serviço de aplicativo específico do inquilino, você pode personalizar cada implantação do OPA para conter apenas dados associados a esse inquilino. Não é possível armazenar dados de OPA em um padrão centralizado de implantação de OPA. Se você usar um padrão de implantação centralizado ou um padrão distribuído em conjunto com um modelo SaaS agrupado, o isolamento dos dados do inquilino deverá ser mantido no modelo de documento OPA.