O que é multilocação? | Arquitetura multi-inquilinos

Multilocação é quando vários clientes diferentes da nuvem acessam os mesmos recursos computacionais, como por exemplo, quando várias empresas diferentes armazenam dados no mesmo servidor físico.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Entenda o que é a multilocação e como ela torna possível a computação em nuvem
  • Explore os benefícios e os riscos da multilocação
  • Saiba mais sobre os detalhes técnicos da arquitetura multi-inquilinos

Copiar o link do artigo

O que é multilocação?

Na computação em nuvem, multilocação significa que vários clientes de um fornecedor de nuvem estão usando os mesmos recursos computacionais. Apesar do fato de compartilharem recursos, os clientes da nuvem não se conhecem uns aos outros e seus dados são mantidos totalmente separados. A multilocação é um componente crucial da computação em nuvem; sem ela, os serviços em nuvem seriam muito menos práticos. A arquitetura multi-inquilinos é uma característica de muitos tipos de computação em nuvem pública, incluindo IaaS, PaaS, SaaS, containers e computação sem servidor.

Multilocação de nuvem híbrida

Para entender a multilocação, pense em como um banco funciona. Várias pessoas podem guardar seu dinheiro em um banco, e seus ativos ficam completamente separados, mesmo que estejam armazenados no mesmo lugar. Os clientes do banco não interagem entre si, não têm acesso ao dinheiro de outros clientes e nem mesmo se conhecem uns aos outros. Da mesma forma, na computação em nuvem pública , os clientes do fornecedor da nuvem usam a mesma infraestrutura, normalmente os mesmos servidores, enquanto continuam mantendo seus dados e sua lógica comercial separados e seguros.

A definição clássica de multilocação era uma única instância de software* que atendia a vários usuários, ou inquilinos. Entretanto, na computação em nuvem moderna, o termo assumiu um significado mais amplo, referindo-se à infraestrutura de nuvem compartilhada em vez de apenas uma instância de software compartilhado.

*Uma instância de software é uma cópia de um programa em execução carregado na memória de acesso aleatório (RAM).

O que é computação em nuvem?

Na computação em nuvem, aplicativos e dados são hospedados em servidores remotos em vários data centers e acessados pela internet. Os dados e aplicativos são centralizados na nuvem em vez de estarem localizados em dispositivos individuais do cliente (como laptops ou smartphones) ou em servidores dentro dos escritórios de uma empresa.

Muitos aplicativos modernos são baseadas na nuvem e é por isso que, por exemplo, um usuário pode acessar sua conta no Facebook e carregar conteúdo a partir de vários dispositivos.

Quais são os benefícios da multilocação?

Muitos dos benefícios da computação em nuvem só são possíveis por causa da multilocação. Aqui estão duas das principais formas de como a multilocação melhora a computação em nuvem:

Melhor uso dos recursos: Uma máquina reservada para um inquilino não é eficiente, pois é pouco provável que um inquilino utilize toda a capacidade computacional da máquina. Ao compartilhar as máquinas entre vários inquilinos, o uso dos recursos disponíveis é maximizado.

Custos menores: Com vários clientes compartilhando recursos, um fornecedor de nuvem pode oferecer seus serviços a vários clientes a um custo muito mais baixo do que se cada cliente precisasse de sua própria infraestrutura dedicada.

Quais são as desvantagens da multilocação?

Possíveis riscos de segurança e problemas de conformidade: Pode ser que algumas empresas não consigam armazenar dados dentro de uma infraestrutura compartilhada, não importa quão segura ela seja, devido às exigências regulatórias. Além disso, problemas de segurança ou dados corrompidos de um inquilino poderiam se espalhar para outros inquilinos na mesma máquina, embora isso seja extremamente raro e não deva ocorrer se o fornecedor da nuvem tiver configurado sua infraestrutura corretamente. Esses riscos de segurança são um pouco atenuados pelo fato de que os fornecedores de nuvem normalmente são capazes de investir mais em sua segurança do que as empresas individuais podem.

O efeito "vizinho barulhento": Se um inquilino estiver usando uma quantidade excessiva de capacidade computacional, isso pode tornar o desempenho dos outros inquilinos mais lento. Mais uma vez, isso não deve ocorrer se o fornecedor da nuvem configurou sua infraestrutura corretamente.

Como a Cloudflare ajuda as empresas na implantação em nuvem?

A Cloudflare ajuda as empresas com qualquer tipo de implantação em nuvem a manter seus dados seguros e suas propriedades da web rápidas. A pilha de produtos da Cloudflare fica na frente de qualquer tipo de infraestrutura e torna as propriedades da web mais seguras, mais confiáveis e mais rápidas. Para saber mais sobre como a Cloudflare se integra às implementações em nuvens, veja Como o Cloudflare Works funciona com qualquer infraestrutura de nuvem.

Como funciona a multilocação?

Aqui vamos analisar mais a fundo os princípios técnicos que tornam possível a multilocação em diferentes tipos de computação em nuvem.

Na computação em nuvem pública

Imagine um motor de carro especial que poderia ser compartilhado facilmente entre vários carros e proprietários de automóveis. Cada proprietário de carro precisa que o motor tenha um comportamento ligeiramente diferente: alguns proprietários de carros exigem um motor potente de 8 cilindros, enquanto outros exigem um motor de 4 cilindros, mais econômico em termos de consumo de combustível. Agora imagine que esse motor especial é capaz de se transformar cada vez que é ligado, para que possa atender melhor às necessidades do proprietário do carro.

Isto é semelhante à forma como muitos provedores de nuvens públicas implementam a multilocação. A maioria dos provedores de nuvens define a multilocação como uma instância de software compartilhada. Eles armazenam metadados* sobre cada inquilino e usam esses dados para alterar a instância de software em tempo de execução para atender às necessidades de cada inquilino. Os inquilinos são isolados uns dos outros por meio de permissões. Apesar de todos compartilharem a mesma instância de software, cada um deles usa e experimenta o software de forma diferente.

*Metadados são informações sobre um arquivo, um pouco como a descrição no verso de um livro.

Na arquitetura de containers

Os containers são pacotes de software autônomos que incluem um aplicativo, bibliotecas de sistema, configurações de sistema e tudo mais que um aplicativo precisa para ser executado. Os containers ajudam a garantir que um aplicativo executado da mesma forma, não importa onde ele esteja hospedado.

Os containers são particionados uns dos outros em diferentes ambientes de espaço do usuário e cada containers é executado como se fosse o único sistema na máquina host. Como os containers são independentes, vários containers criados por diferentes clientes de nuvem podem ser executados em uma única máquina host.

Na computação sem servidor

A computação sem servidor é um modelo no qual os aplicativos são divididos em partes menores chamadas funções, e cada função só é executada sob demanda, separadamente das outras funções. (Esse modelo de computação em nuvem também é conhecido como Função como serviço, ou FaaS.)

Como o nome indica, as funções sem servidor não funcionam em servidores dedicados, mas sim em qualquer máquina disponível na infraestrutura do provedor sem servidor. Como não são atribuídos às empresas seus próprios servidores físicos discretos, os provedores sem servidor muitas vezes executarão o código de vários de seus clientes em um único servidor a qualquer momento, outro exemplo de multilocação.

Algumas plataformas sem servidor usam Node.js para executar código sem servidor. A plataforma Cloudflare sem servidor, Cloudflare Workers, utiliza Chrome V8, em que cada função é executada em sua própria sandbox, ou ambiente separado. Isto mantém as funções sem servidor totalmente separadas umas das outras, mesmo quando estão sendo executadas na mesma infraestrutura.

Na computação em nuvem privada

A computação em nuvem privada usa a arquitetura multi-inquilinos da mesma forma que a computação em nuvem pública. A diferença é que os outros inquilinos não são de organizações externas. Na computação em nuvem pública, a Empresa A compartilha infraestrutura com a Empresa B. Na computação em nuvem privada, equipes diferentes dentro da Empresa A compartilham infraestrutura entre si.