Tutoriais

Isolamento real de clientes no WordPress para agências, sem Multisite

Equipe GrabWP
· 7 min read · Revisado por Equipe GrabWP

As agências recorrem ao WordPress Multisite porque ele promete um único lugar para rodar vários sites de clientes. Mas aí o problema de isolamento aparece. Um cliente pergunta onde os dados dele ficam e quem mais tem acesso a eles. Um plugin que funciona para um cliente quebra o do outro. Um único site precisa de um restore, e não existe uma forma limpa de reverter apenas aquele site. O Multisite agrupa seus clientes, mas agrupar não é isolar, e para o trabalho de agência essa diferença importa.

Este guia é para agências que precisam que cada site de cliente seja genuinamente separado: dados separados, plugins separados, themes separados, área de impacto separada. Ele mostra como o GrabWP Tenancy Pro entrega isso em uma única instalação padrão do WordPress, sem precisar de Multisite.

Onde o isolamento do Multisite falha para agências

O Multisite é um recurso de rede, não um recurso de isolamento, e três das suas escolhas de design jogam contra o trabalho das agências com clientes.

  • Um database compartilhado. Cada site em uma rede Multisite vive no mesmo database. Cada site ganha o seu próprio conjunto de tabelas, diferenciado por um prefixo numérico, mas todos eles ficam no mesmo schema e podem ser acessados pela mesma conexão. Quando um cliente pergunta se os dados dele estão armazenados separadamente dos outros clientes da agência, a resposta honesta no Multisite é não.
  • Plugins e themes para toda a rede. Plugins e themes são instalados uma vez para a rede inteira. Você pode ativar um plugin por site, mas o código é compartilhado, as versões são compartilhadas e tudo roda no mesmo processo PHP. Você não consegue dar ao cliente A uma versão antiga e fixada de um plugin enquanto o cliente B roda a mais recente.
  • Uma falha afeta a todos. Como o database, o código e o runtime são compartilhados, uma atualização ruim de plugin, uma tabela corrompida ou um erro fatal tem uma área de impacto que atinge a rede toda. Um problema que deveria ser de um só cliente pode derrubar a rede inteira.

Para um portfólio de clientes pagantes, “separado por um prefixo de tabela” não é uma história que você quer contar. As agências precisam de barreiras reais entre os sites.

O que um isolamento real significa na prática

Configurações de isolamento do GrabWP Tenancy Pro para separação por cliente

Um isolamento real por cliente significa que cada site é dono dos seus próprios dados e código, e que nada é compartilhado por padrão. O GrabWP Tenancy Pro cria cada cliente como um tenant com três camadas de separação.

  • Um database dedicado por cliente. O Pro permite que você escolha, por tenant, entre um MySQL compartilhado com prefixos de tabela, um database MySQL dedicado ou um database SQLite. Para trabalhos com clientes, você escolhe um database dedicado, assim o conteúdo de um cliente vive no seu próprio database em vez de compartilhar um schema com todos os outros. Essa é uma arquitetura de isolamento de dados e te dá um argumento de conformidade muito mais forte do que um setup de database compartilhado onde todos os clientes coexistem em um único schema.
  • wp-content isolado. No Pro, cada tenant ganha o seu próprio diretório wp-content isolado, com os seus próprios diretórios de themes e plugins lá dentro. Os arquivos dos clientes não se misturam em uma única pasta compartilhada.
  • Uploads separados. Até mesmo o plugin base gratuito do GrabWP Tenancy isola os uploads de cada tenant e dá a ele o seu próprio prefixo de tabela no database. O Pro constrói em cima dessa base, adicionando o database dedicado e o wp-content totalmente separado.

O resultado é que os dados de um cliente nunca se misturam com os de outro, porque eles não compartilham um database, um diretório de conteúdo ou uma pasta de uploads.

Stacks de plugins e themes por cliente, sem conflitos

Stack de plugins e themes por tenant no painel de extensões do GrabWP Tenancy Pro

O benefício mais prático de um wp-content isolado é que cada cliente roda a sua própria stack de plugins e themes. Um cliente pode rodar uma loja WooCommerce com os seus próprios plugins de pagamento e frete enquanto outro roda um site de membros com um conjunto completamente diferente, e os dois nunca entram em conflito, porque não compartilham um diretório de plugins.

Você gerencia a stack de cada tenant pela página Extensions. Lá você ativa ou desativa plugins e troca de themes para um tenant específico, com o status ao vivo aparecendo para cada um. Você está configurando o site de um cliente sem mexer no site de mais ninguém. Não existe ativação em toda a rede para se preocupar e nenhum risco de que habilitar um plugin para um cliente mude o comportamento para o resto do portfólio.

Essa é a barreira que o Multisite não consegue te dar. Em vez de uma base de código compartilhada que todos os sites herdam, cada cliente ganha uma stack que você ajusta de forma independente, fazendo com que a compatibilidade de plugins se torne uma decisão por cliente em vez de uma aposta para toda a rede.

Controle do raio de impacto: conserte um cliente sem mexer nos outros

O isolamento é mais valioso nos piores momentos, quando alguma coisa dá errado. Como cada tenant é autossuficiente, um problema fica contido e a recuperação é cirúrgica.

O GrabWP Tenancy Pro dá a cada tenant o seu próprio backup e restore, com um fluxo de trabalho completo passo a passo que cobre o database, uploads, conteúdo e configuração. Quando um cliente precisa reverter algo, você faz o restore daquele único tenant de forma independente. Os outros clientes na mesma instalação nunca são envolvidos, nunca são pausados e nunca correm risco com a operação.

O restore também é flexível o suficiente para sobreviver a migrações do mundo real. O Pro suporta restore entre bancos de dados diferentes, para que você possa mover um tenant entre tipos de databases, de um MySQL compartilhado para um database MySQL dedicado ou para SQLite, quando as necessidades do cliente mudarem. E como o backup de cada tenant é independente, o seu raio de impacto na recuperação é de exatamente um cliente, que é como o gerenciamento de riscos de uma agência deveria ser.

Contraste isso com um restore do Multisite, onde o database compartilhado significa que reverter um único site de forma limpa é no mínimo desajeitado, e um restore de toda a rede é a ferramenta bruta que geralmente te resta.

Como adotar isso sem Multisite

A melhor parte é que nada disso exige o comprometimento estrutural do Multisite. O GrabWP Tenancy Pro roda em uma instalação padrão e única do WordPress.

  1. Instale em um site WordPress normal. Adicione o plugin base gratuito GrabWP Tenancy e o GrabWP Tenancy Pro a uma instalação padrão. Você não habilita a rede Multisite e não reestrutura o seu site existente.
  2. Defina os padrões de isolamento. Em Pro Settings, escolha um database dedicado como padrão para novos tenants e confirme o isolamento de conteúdo, assim cada cliente que você criar herda uma separação real desde o começo.
  3. Crie um tenant por cliente. Cada novo cliente se torna um tenant isolado com o seu próprio database, o seu próprio wp-content e os seus próprios uploads, tudo debaixo da única instalação que você já gerencia.
  4. Gerencie cada stack de forma independente. Use a página Extensions para configurar os plugins e o theme de cada cliente, e faça um backup de base por tenant para ter um ponto de restore limpo antes do trabalho começar.

Você mantém a simplicidade de uma instalação WordPress e um dashboard, enquanto os seus clientes recebem o isolamento que a arquitetura compartilhada do Multisite não consegue entregar. Para ter uma forma repetível de subir cada um desses sites isolados do mesmo jeito sempre, combine isso com o nosso checklist de provisionamento de sites para clientes.

Dê a cada cliente uma barreira real

O Multisite agrupa os seus clientes em um database compartilhado e um conjunto de plugins compartilhado. O trabalho de agência precisa do oposto: um database dedicado, wp-content isolado e um raio de impacto de exatamente um cliente por operação. O GrabWP Tenancy Pro entrega isso em uma instalação padrão do WordPress, licenciado uma vez por instalação sem taxas por cliente, a partir de $9.99/month. Veja como ele se encaixa na sua rotina na página para agências e compare os níveis de isolamento da versão base e do Pro na nossa página de comparação antes de decidir.

Perguntas frequentes

Por que o WordPress Multisite não é um isolamento real?
O Multisite roda todos os sites em um database compartilhado, onde cada site é diferenciado apenas por um prefixo de tabela. Plugins e themes são instalados na rede inteira e compartilham o mesmo código e processo PHP, então um conflito de plugin ou um problema no database pode afetar todos os clientes da rede. Isso é separação por convenção, não isolamento real.
Eu preciso do Multisite para rodar sites de clientes isolados com o GrabWP?
Não. O GrabWP Tenancy Pro roda em uma instalação padrão única do WordPress. Cada cliente se torna um tenant isolado com seu próprio conteúdo e database, assim você tem isolamento por cliente sem ativar o Multisite ou reestruturar sua instalação.
Cada cliente pode ter o seu próprio database?
Sim. No Pro, você escolhe por tenant entre um MySQL compartilhado com prefixos de tabela, um database MySQL dedicado ou um database SQLite. Um database dedicado por cliente significa que os dados de um cliente nunca se misturam com os de outro no mesmo schema.
Posso fazer backup e restore de um cliente sem mexer nos outros?
Sim. Cada tenant tem o seu próprio backup e restore. Você pode fazer o restore de um único cliente de forma independente, e pode até fazer o restore entre tipos diferentes de databases, para que recuperar um site nunca coloque o resto do seu portfólio em risco.

Editorial standards: Our content is written by WordPress experts with hands-on multi-tenancy experience. Articles are fact-checked and regularly updated to ensure accuracy.