Ads Top

O que é arquitetura multi-inquilino?

Saiba como a multilocação molda a computação empresarial e descubra como fazer a melhor seleção entre a arquitetura de multilocação e inquilino único.

Multi-tenant

A arquitetura de multilocação, comumente referida como multitenancy, é uma arquitetura de software na qual várias instâncias únicas de software são executadas em um único servidor físico. O servidor, em seguida, serve vários inquilinos.

“Locatários” é um termo para um grupo de usuários ou aplicativos de software que compartilham o acesso ao hardware por meio do software subjacente. Vários locatários em um servidor compartilham a memória, que é alocada dinamicamente e limpa conforme necessário. Eles também compartilham o acesso aos recursos do sistema, como o controlador de rede.

Isso é o oposto da locação única, na qual o servidor executa uma instância do sistema operacional e um aplicativo. Esse aplicativo pode ser algo simples, como aplicativos de arquivo e impressão, complexos como servidores da Web ou de aplicativos ou de missão crítica, como um banco de dados.

Multitenancy é frequentemente usado na computação em nuvem, para oferecer locação compartilhada em provedores de nuvem pública como Amazon Web Services e Microsoft Azure. Além disso, a ocupação variada é uma parte essencial de outro modelo de nuvem; software como serviço, e, portanto, é implantada por muitas empresas de software como serviços.

Desenvolvimento de arquitetura multi-inquilino

O conceito de multitenancy, na verdade, remonta à década de 1960, quando as empresas alugavam tempo em mainframes, que eram raros e caros. Naquela época, era chamado de compartilhamento de tempo. Vários clientes podiam acessar os mesmos aplicativos ao mesmo tempo, um feito que só os mainframes poderiam fazer.

A partir da década de 1990, os provedores de serviços de aplicativos (ASPs) hospedavam aplicativos em nome de seus clientes e, como os mainframes, os mesmos aplicativos eram disponibilizados para vários clientes.

Na era moderna, a multitenancy é parte integrante do modelo de software como serviço, como o Salesforce, o Office 365, o Zoho, o Box, o Zendesk, o Slack e muitos outros aplicativos sob demanda.

Como mencionado acima, os provedores de nuvem oferecem multitenancy, em uma técnica de uso compartilhado de recursos de computação. No entanto, esse uso compartilhado de recursos não deve ser confundido com a virtualização, um conceito estreitamente relacionado. 

Em um ambiente de ocupação variada, vários clientes compartilham o mesmo aplicativo, no mesmo ambiente operacional, no mesmo hardware, com o mesmo mecanismo de armazenamento. Na virtualização, cada aplicativo é executado em uma máquina virtual separada com seu próprio sistema operacional.

Single-Tenant vs. Multi-Tenant

Single-Tenant

O single-tenancy é amplamente visto como a opção "deluxe", em que um cliente opera em um ambiente exclusivamente dedicado. Em um ambiente de multilocação, cada cliente compartilha o aplicativo de software junto com um único banco de dados, para que várias pessoas da mesma empresa possam acessar o banco de dados. Ainda assim, mesmo em vários inquilinos, cada inquilino é isolado de outros inquilinos.

Vantagens

A hospedagem de single-tenant oferece aos clientes mais controle porque não há compartilhamento de recursos. Isso se manifesta de várias maneiras:

  • Maior personalização: Como eles têm apena um cliente no schema, os inquilinos únicos podem personalizar o software para suas necessidades, enquanto o multilocatário tende a ser do tamanho único, ou seja, atualizou pra um, atualizou para todos.
  • Maior isolamento dos riscos de segurança: você controla o ambiente e (esperançosamente) o que entra e sai dele.
  • Recuperação mais rápida: restaurar um cliente é mais rápido e fácil do que vários clientes.
  • Melhor controle: O inquilino único pode ser mais exigente quanto a aceitar alterações e atualizações de software e decidir quais complementos eles desejam usar.
  • Evita a síndrome do “vizinho barulhento”: como você está compartilhando recursos em cenários de vários inquilinos, alguém que esteja realmente usando o sistema com muita força pode atrasá-lo.

Desvantagens

  • Custo: não há compartilhamento de custos para coisas como balanceamento, serviços, monitoramento do sistema e implantação.
  • Responsabilidade do cliente: os clientes são responsáveis por atualizações de software, patches, backup, restauração e recuperação de desastres.
  • Menos eficiente: os sistemas de locatário único podem ser menos eficientes se não forem executados na capacidade total ou se estiverem superprovisionados. 

Multi-Tenant

Vantagens


A principal vantagem da hospedagem multilocatária é que ela é menos cara. O pool de recursos reduz muito o custo, pois você só paga pelo que precisa. E como o multilocatário faz parte de um provedor de SaaS, você não está pagando pelo hardware local. 

Funções como monitoramento do sistema e manutenção da implementação são compartilhadas entre todos os clientes, o que torna menos dispendioso à medida que o custo é distribuído.

Existem outras vantagens também.

  • Hospedagem simplificada: você não gerencia hardware, reduzindo muito o tempo e as despesas.
  • Melhor proteção dos sistemas: Com menos interação com o mundo externo, a exposição a softwares mal-intencionados é reduzida.
  • A atualização do software não é mais seu problema: você sempre recebe a última versão do software enviada pelo provedor.

Desvantagens

Apesar de sua vantagem de custo, os ambientes multi-tenant têm algumas desvantagens.

  • Eles têm seus próprios riscos de segurança: para começar, você precisa de controles rigorosos de autenticação e acesso para garantir que as pessoas certas tenham acesso. Em segundo lugar, a corrupção de dados pode se espalhar de um usuário para outro, embora as precauções sejam contra isso.
  • Tempo de inatividade: as interrupções podem ser em todo o país e, muitas vezes, são notícias quando acontecem. Provedores de SaaS tendem a criar redundância suficiente no sistema para minimizar isso.
  • Vizinhos barulhentos: Como mencionado anteriormente, outra pessoa em sua CPU pode estar consumindo ciclos e atrasando você. A capacidade deve ser elástica e expandir conforme necessário, mas nem sempre é o caso.

Bancos de dados de multilocação

Como dissemos acima, em um ambiente multi-tenant, vários clientes compartilham o mesmo aplicativo, no mesmo ambiente operacional, no mesmo hardware, com o mesmo mecanismo de armazenamento e banco de dados. É assim que o Salesforce e todos os outros operadores de SaaS são executados. Cada locatário é um cliente / usuário que possui acesso comum e privilégios específicos na instância do software.

O banco de dados, no entanto, é outro assunto. Existem três maneiras de arquitetar seu banco de dados em um sistema multilocatário.

Um único esquema de banco de dados compartilhado

Um esquema é um layout para tabelas de banco de dados relacionadas entre si. Na primeira abordagem, um banco de dados é usado com todas as tabelas de inquilino vinculadas ao banco de dados. As tabelas tratam de relações e controle de versão ou atualizações, como lidar com duas pessoas tentando manipular a mesma tabela ou entrada de dados. Esta é a maneira mais rápida de operar, já que apenas um banco de dados está sendo usado, supondo que seja escalável.

Banco de dados único, vários esquemas

Vários esquemas dentro de um único banco de dados são um método popular para ter sub-bancos de dados, para que você possa dividir seus dados sem precisar configurar vários bancos de dados. Cada esquema é isolado dos outros e opera de forma diferente, o que pode ser útil em situações em que dados diferentes têm regulação diferente, como dados internacionais.

Vários bancos de dados

Isso leva a abordagem multi-esquema um passo adiante, porque agora você tem os dados em vários bancos de dados. Vendas ou clientes podem ser divididos por região, por exemplo. Então, a vantagem é que você obtém um melhor isolamento de dados. Obviamente, isso também aumenta a complexidade de gerenciamento, manutenção e escalabilidade que vem com a implantação de vários bancos de dados.

Exemplos de arquitetura de multilocação

Em um sistema virtual, um sistema pode ter 20 instâncias executando 20 sistemas operacionais, cada um com seu próprio aplicativo e banco de dados. Em uma arquitetura de multilocação, todas as instâncias compartilham o sistema operacional, o aplicativo e, mais importante, o banco de dados.

Isso soa familiar? Não é apenas como o SaaS funciona, mas como funcionam a Infraestrutura como Serviço (IaaS) e a Plataforma como Serviço (PaaS), pois podem ser usadas para criar aplicativos multilocatários altamente escalonáveis voltados para fora, o que significa que clientes e parceiros podem usá-los.

É assim que 50 pessoas da mesma empresa podem trabalhar no Salesforce CRM. Da mesma forma, um sistema SAP é composto por um backend de banco de dados e servidores de aplicativos da Web que hospedam serviços da Web de maneira altamente escalonável. Os serviços da Web que compõem o aplicativo SaaS são expostos a diferentes clientes por meio de diferentes nomes de domínio. A escala é obtida iniciando mais serviços.

A maior parte do exemplo está em conformidade com essas três maneiras de estruturar um aplicativo de multilocação:

  • SaaS baseado em URL. Este é o mais fácil de fazer, pois usa um único domínio e banco de dados. Você teria URLs específicos, como subdomain1.maindomain.com, subdomain2.maindomain.com, etc. O gerenciamento de dados e a segurança são tratados no nível do aplicativo. Alguns SaaS funcionam dessa maneira, especialmente aqueles que colocam uma interface de aplicativo da Web entre o usuário e o banco de dados.
  • Multi-inquilino SaaS. Isso é mais complexo por causa de vários bancos de dados e / ou esquemas, e as restrições são feitas no nível do banco de dados. É assim que muitos aplicativos SaaS operam e geralmente permitem uma interação mais direta com o banco de dados.
  • SaaS baseado em virtualização, como contêineres. Essa é a configuração mais complexa porque há muita interação entre os contêineres, bem como os aplicativos e bancos de dados. É por isso que há tanta ênfase em orquestradores como o Docker e o Kubernetes.

Escolhendo entre o inquilino múltiplo e o inquilino único


A escolha entre inquilino único e multilocatário se resume a uma escolha de local versus nuvem. Não existe uma versão de locatário único do Salesforce e, em contraste, bancos de dados como o Oracle são locatários únicos para ter acesso total aos recursos.

A segurança dos dados é claramente uma preocupação, mas isso recai principalmente sobre os ombros dos provedores de SaaS. Eles são os responsáveis ​​pelo monitoramento dos inquilinos e pela garantia de que não há dados vazando de um cliente para outro, e eles fazem um bom trabalho.

A principal responsabilidade do cliente para proteger os dados recai sobre o dispositivo do cliente. Todos os principais provedores de SaaS oferecem autenticação de dois fatores para proteger os logins. Depois disso, cabe a você manter a segurança do dispositivo de ponto final.

Uma grande preocupação entre os sistemas de inquilino único e multi-tenant é a propriedade de dados. Larry Ellison uma vez chamou a Salesforce de "motel barato de nuvens", o que significa que os dados entram, mas não saem. Obviamente, ele estava exagerando o assunto. É certamente possível obter seus dados de CRM do Salesforce, mas mais provavelmente em um formato CSV do que em um banco de dados SQL.

A multilocação está no centro da computação em nuvem. Ele é projetado para ajudar a escalonar milhares de usuários, tanto dentro de uma empresa quanto externamente, à medida que as empresas interagem e fazem negócios. Seja sua conta do Salesforce ou um aplicativo que você criou na AWS para clientes, a ocupação variada pode ser dimensionada por meio de nuvens públicas e privadas e fornecer verdadeiras economias de escala.

Nenhum comentário:

Tecnologia do Blogger.