O que é arquitetura multitenancy?

Copiar URL

Multitenancy é uma arquitetura de software em que uma única instância do software opera em um ambiente compartilhado para atender a vários grupos diferentes de usuários, também chamados de tenants. As ofertas de Software como Serviço (SaaS) são um exemplo de arquitetura multitenant.

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

Multitenancy é o oposto de single-tenancy: quando uma instância de software ou sistema de computador têm apenas um usuário final ou grupo de usuários.

Em geral, as aplicações multitenant permitem personalizar os tenants até certo grau. Por exemplo, personalizar a aparência da aplicação ou configurar o tenant para definir restrições e permissões específicas de controle de acesso para os usuários.

Confira o ebook sobre estratégia de nuvem híbrida para leigos

O conceito de multitenancy existe há muitos anos. Na década de 1960, universidades com mainframes avançados e caros desenvolveram o software de time-sharing para possibilitar que vários usuários acessassem o computador basicamente ao mesmo tempo.

Essa ideia nunca desapareceu, e hoje o conceito de multitenancy é o que faz a cloud computing ser possível. A nuvem pública divide por vários tenants um pool de recursos compartilhados, como capacidade de processamento e memória. As cargas de trabalho e os dados de cada tenant ficam isolados, mesmo quando executados na mesma máquina física ou grupo de máquinas.

Quando vamos um pouco além e aplicamos essa mesma ideia à arquitetura de software, chegamos ao conceito moderno de SaaS. O provedor de SaaS executa uma instância de uma aplicação e oferece acesso a clientes individuais. Os dados de cada usuário ficam isolados, mesmo que eles estejam acessando o mesmo software que outras pessoas.

No contexto das plataformas de orquestração de containers como o Kubernetes, o termo multitenancy costuma significar um cluster que atende a vários projetos. Esse cluster é configurado de modo que cada projeto tenha sua execução isolada dos outros.

Confira um guia estratégico para o desenvolvimento de aplicações nativas em nuvem

Recursos da Red Hat

Como já mencionado antes, a multitenancy, como um conceito, é uma importante funcionalidade de cloud computing porque é uma instância única de aplicação de software oferecida a vários locatários. Nuvens são consideradas plataformas como serviço (PaaS), ao contrário da multilocação, comumente associada a aplicações SaaS.  

A partir de um pool de recursos, os provedores de serviços de nuvem entregam aos usuários a plataforma e a infraestrutura de TI subjacente necessária para cloud computing. Esse recursos são, em seguida, alocados para vários usuários (ou locatários). 

A arquitetura é como todos os componentes e recursos necessários no desenvolvimento de uma nuvem são conectados para construir uma plataforma online onde as aplicações serão executadas.

A arquitetura de uma plataforma de nuvem precisa de um grau maior de desenvolvimento para incorporar containerização, orquestração, interfaces de programação de aplicações (APIs), roteamento, segurança, gerenciamento e software de automação.

Arquitetura de nuvem pública: um ambiente de nuvem criado a partir de recursos sem um proprietário, como um usuário final, que pode ser redistribuído para outros locatários.

Arquitetura de nuvem privada: em termos gerais, definida como um ambiente de nuvem dedicado ao usuário final, normalmente protegido pelo firewall do usuário e às vezes localizado on-premise.

O que é arquitetura de nuvem?

A multitenancy traz uma diversas de vantagens, o que é evidente pela popularidade da cloud computing.

A multilocação ajuda a economizar: os recursos computacionais são mais baratos em escala. Com a multilocação, é possível consolidá-los e alocá-los de maneira eficiente, reduzindo os custos operacionais. 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.

A multilocação oferece 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 com multilocação, é 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.

A multilocação pode aumentar a eficiência: com a abordagem de multilocação, há menos necessidade de que usuários individuais gerenciem a infraestrutura e façam 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.

A arquitetura de multilocação oferece muitas vantagens, mas a adoção de sistemas de computador de locatário único é mais adequada para alguns casos de uso, como a nuvem privada ou seu próprio datacenter.

Isso se relaciona principalmente à segurança em 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 costumam 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.

Qualquer um que deseja configurar um ambiente de multilocação 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 multilocação 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. Manter 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 de multilocação 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.

Simplifique sua jornada até a nuvem

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

Linux no Azure: vantagens de usar o Linux no Azure

Linux® é um sistema operacional estável, versátil e seguro. Azure é a plataforma de nuvem pública da Microsoft e exige um sistema sólido e confiável, como o Linux.

Por que as empresas de serviços financeiros estão demorando a adotar a nuvem?

Descubra por que o setor de serviços financeiros está demorando a adotar a nuvem e por que ainda é uma boa ideia começar esse processo.

O que é nuvem híbrida?

Quer saber mais sobre a nuvem híbrida? Aprenda o que é e como funciona uma nuvem híbrida, e por que o open source é tão importante para ela.

Nuvem híbrida: leitura recomendada

Artigos relacionados