Login / Registre-se Account

Cloud computing

O que é multitenancy?

Jump to section

Multitenancy é uma arquitetura de software em que é usada apenas uma instância de software para atender a vários grupos de usuários diferentes. As ofertas de software como serviço (SaaS) são um exemplo de arquitetura multitenant.

Em cloud computing, multitenancy também se refere à hospedagem compartilhada, em que os recursos do servidor são divididos entre clientes diferentes.

Multitenancy é o oposto de locação individual, que é quando uma instância de software ou um sistema de computador é usado por um único usuário ou apenas um grupo de usuários.

Do tempo compartilhado ao SaaS

A ideia de multitenancy já existe há décadas. Nos anos 1960, as universidades com mainframes caros e poderosos desenvolveram um software de tempo compartilhado (time-sharing) que permitia que vários usuários acessassem o computador praticamente ao mesmo tempo.

Essa ideia nunca foi abandonada de fato e, nos dias de hoje, é o conceito de multitenancy que viabiliza a cloud computing. Em uma nuvem pública, um pool de recursos compartilhados (como capacidade de processamento e memória) é dividido entre vários locatários. As cargas de trabalho de cada locatário permanecem isoladas, mesmo quando executadas na mesma máquina ou grupo de máquinas físicas.

Se levarmos essa ideia um passo adiante e a aplicarmos à arquitetura de software, chegamos ao conceito moderno de SaaS. Um provedor de SaaS executa uma instância da aplicação e oferece o acesso a clientes individuais. Os dados de cada usuário permanecem isolados, mesmo que todos eles estejam acessando o mesmo software.

Quando relacionado a uma plataforma de orquestração de containers, como o Kubernetes, o termo multitenancy normalmente se refere ao cluster único que atende a vários projetos. Esse cluster é configurado de forma que cada projeto seja executado isoladamente dos outros.

Vantagens da arquitetura multitenant

Multitenancy traz uma grande variedade de vantagens, o que é evidente pela popularidade da cloud computing.

Multitenancy ajuda a economizar: os recursos computacionais são mais baratos em escala e, com a multitenancy, é possível consolidá-los e alocá-los de maneira eficiente. Para um usuário individual, pagar pelo acesso a um serviço em nuvem ou uma aplicação de SaaS geralmente representa um custo-benefício melhor do que usar um software e hardware que atendam a apenas um locatário.

Multitenancy proporciona flexibilidade: se você investir tudo em seu próprio hardware e software, chegará ao ponto em que ambos atingirão a capacidade máxima em momentos de grande demanda ou ficarão ociosos quando a demanda estiver muito baixa. Por outro lado, em uma nuvem multitenant, é possível alocar um pool de recursos para os usuários que precisam deles, conforme essa necessidade aumenta ou diminui. Sendo cliente de um provedor de nuvem pública, você pode ter acesso a uma capacidade extra quando precisar e não pagar por ela quando não houver necessidade.

Multitenancy pode aumentar a eficiência: com a abordagem de multitenancy, há menos necessidade de que usuários individuais gerenciem a infraestrutura e cuidem de atualizações e manutenções. Todos os locatários contam com um provedor de nuvem central, em vez de depender das próprias equipes para lidar com essas tarefas rotineiras.

Quando a abordagem de locatário único é mais adequada

A multitenancy oferece muitas vantagens, mas a adoção de sistemas de computador de locatário único é mais adequada para alguns casos de uso.

Isso se relaciona principalmente às aplicações que lidam com dados altamente confidenciais. As soluções de SaaS e os ambientes de nuvem pública são projetados para isolar cargas de trabalho e dados, e têm um sólido histórico de funcionar conforme o previsto. No entanto, em testes controlados, os pesquisadores descobriram vulnerabilidades que teoricamente poderiam facilitar invasões entre locatários em ambientes de nuvem.

Na prática, esses riscos são relativamente pequenos. As vulnerabilidades da locação compartilhada são raras e exigem um alto nível de sofisticação dos ataques de acordo com um relatório de 2020 sobre vulnerabilidades da nuvem publicado pela Agência de Segurança Nacional dos EUA (NSA). Segundo o relatório, não há registro de nenhuma invasão entre locatários nos principais provedores de nuvem pública. A NSA considera esses riscos menores do que aqueles resultantes do controle de acesso precário e das configurações inadequadas.

Ambientes multitenant no Linux

Qualquer um que deseja configurar um ambiente multitenant precisará escolher entre máquinas virtuais ou containers para isolar ambientes.

No caso das máquinas virtuais, um hipervisor inicia máquinas guest, cada uma com sistema operacional, aplicações e dependências próprias. O hipervisor também assegura o isolamento dos usuários.

Em comparação com as máquinas virtuais, os containers oferecem um modelo mais leve, flexível e fácil de escalar. Com os containers, as implantações de multitenancy são mais simples porque é possível implantar várias aplicações em apenas um host, usando o kernel e o ambiente de execução para iniciar novos containers. Diferentemente das máquinas virtuais (cada uma tem o próprio kernel), as aplicações executadas em containers compartilham o mesmo kernel, mesmo quando usadas por vários locatários.

No Linux®, os namespaces possibilitam que vários containers usem um mesmo recurso simultaneamente, sem gerar nenhum conflito. Assegurar a segurança dos containers é um esforço semelhante ao empregado em qualquer outro processo em execução. 

Quando o Kubernetes é utilizado na orquestração de containers, é possível configurar vários ambientes multitenant usando apenas um cluster. Também é possível separar os locatários em seus próprios namespaces e criar políticas para impor o isolamento deles.

As ferramentas necessárias para a cloud computing

Red Hat Enterprise Linux logo

Mantenha sua infraestrutura leve. Use um sistema operacional de consumo mínimo e otimizado para executar containers Linux.

Red Hat OpenStack Platform product logo

Uma infraestrutura em nuvem executável em hardware padrão. Você pode implantar as ferramentas de nuvem privada que quiser, no momento que precisar, tudo a partir de um único ambiente.

Red Hat OpenShift product logo

Desenvolva, implante e gerencie containers em qualquer ambiente e escala.

Você pode fazer muito mais com as nuvens