Jump to section

Arquitetura multitenancy

Copiar URL

Multitenancy, ou multilocação é uma arquitetura 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 de multilocação.

Em cloud computing, multilocação 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 sistema de computador é usado por um usuário final, ou um grupo de usuários.

Em geral, aplicações multilocatárias (multitenants) incluem um nível de personalização para locatários, como o estilo da aplicação ou a definição de permissões e restrições específicas no controle de acesso para usuários.

O conceito da multilocação 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, atualmente, é 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. Os dados e as cargas de trabalho de cada locatário permanecem isolados, mesmo quando executados 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.

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.

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.

Você pode conquistar muito mais do que imagina com a nuvem.

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.

Leitura recomendada

ARTIGO

O que é gerenciamento de nuvem?

Saiba mais sobre as características do gerenciamento de nuvem e como uma plataforma específica para essa finalidade pode ajudar sua empresa.

ARTIGO

O que são serviços de TI gerenciados?

Serviços gerenciados são uma forma de transferir tarefas gerais para um especialista, de modo a reduzir custos, melhorar a qualidade do serviço ou liberar equipes internas para que possam realizar tarefas específicas da sua empresa.

ARTIGO

O que são serviços em nuvem?

Os serviços em nuvem consistem em infraestrutura, plataformas ou software hospedados por fornecedores terceirizados e disponibilizados aos usuários via internet.

Leia mais sobre cloud computing

Soluções Red Hat

Uma plataforma para virtualização de hardware que organiza esses recursos em nuvens.

Uma plataforma empresarial de aplicações em container Kubernetes com um stack completo de operações automatizadas para gerenciar implantações de nuvem híbrida, multicloud e edge computing.

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Conteúdo adicional

VÍDEO - THE SOURCE TV

O futuro da nuvem: a evolução das soluções cloud

Aprenda mais sobre a evolução e o futuro das soluções em nuvem com os especialistas da Red Hat

Ebook

Tecnologia nativa em nuvem e a nuvem híbrida: um guia estratégico

Treinamentos Red Hat

Treinamento gratuito

Red Hat OpenStack Technical Overview