20 pontos por xguru 2022-03-28 | Ainda não há comentários. | Compartilhar no WhatsApp

"Multitenancy é a base oculta que torna a escalabilidade do SaaS tão impressionante"

  • As altas margens e a escalabilidade aparentemente infinita do modelo SaaS são o motivo pelo qual mercado acionário/investidores/fundadores entram com tudo nesse setor
  • O que torna isso possível é justamente a infraestrutura, especialmente o conceito de "multitenância"
  • Hoje, quase todas as empresas usam cloud e SaaS, e o ponto central da implementação de soluções em nuvem é justamente a multitenância
  • Marc Benioff, fundador da Salesforce, disse que "multitenancy é um requisito essencial para que fornecedores de SaaS tenham sucesso"
  • O que exatamente é multitenância e por que ela é importante?

Multitenância: construindo um sistema de metrô

  • Vamos primeiro entender single tenancy
    • Cada cliente usa uma aplicação e um banco de dados próprios e exclusivos
    • Ou seja, se houver 100 clientes, existem 100 servidores, 100 aplicações e 100 bancos de dados
    • Single tenancy exige muito tempo, dinheiro e esforço para ser mantida em larga escala
  • Pensando pela ótica do transporte, para ir ao trabalho você pode dirigir ou pegar o metrô
    • Dirigir é confortável, mas você precisa pagar o custo do carro, combustível, estacionamento e ainda arcar com congestionamento e poluição
    • Pegar o metrô é relativamente barato, ajuda a manter as ruas limpas e agride menos a camada de ozônio
  • Se todos os 50 mil trabalhadores do World Trade Center (WTC) fossem de carro, haveria um sistema extremamente complexo
  • Por isso surgiu a multitenância, como o metrô, para reduzir custos, overhead e diminuir bastante o "caos" do ambiente

Por que agora?

  • Por que mudar para o metrô? Se isso é tão bom, por que essa opção não foi adotada até agora?
  • A resposta está na "cloud". A popularidade da computação em nuvem e dos negócios SaaS está explodindo
  • No mercado público, empresas que antes ofereciam produtos self-hosted estão rapidamente voltando sua atenção para a nuvem
  • Empresas como Atlassian, Autodesk, Elastic e Microsoft estão oferecendo soluções hospedadas na nuvem e registrando crescimento explosivo de receita
  • Só no último trimestre, a Atlassian adicionou mais de 10 mil clientes. Se mantivesse 10 mil clientes em single tenancy, a empresa enfrentaria dificuldades por causa do trabalho de engenharia individual, gestão de recursos, complexidade e esgotamento de talentos para resolver problemas que deveriam estar no núcleo do negócio
  • Por isso, startups em estágio inicial podem optar por começar em um ambiente single tenancy "Quick-and-Dirty" (rápido e simples), mas, à medida que escalam e começam a crescer, inevitavelmente enfrentam dívida técnica que só pode ser resolvida em um ambiente multitenant
  • Com o crescimento da computação em nuvem e dos negócios SaaS, o overhead das soluções single tenant também aumenta, assim como a demanda por multitenância

Vantagens da multitenância

  • A multitenância entrega muita mágica para os fornecedores de SaaS
  • A capacidade de compartilhar infraestrutura por toda a base de clientes é um divisor de águas
  • Além de escala, há alguns outros segredos nas vantagens que a multitenância oferece

Margens de venda (Margins)

  • Aproveitar infraestrutura compartilhada afeta diretamente a lucratividade do fornecedor à medida que essa infraestrutura é mais utilizada
  • Multitenancy exige menos recursos tanto de forma direta — em pessoas e custos de software/hardware (custo do produto vendido) — quanto indireta — ao permitir que profissionais-chave concentrem sua energia em outras áreas
  • Como resultado, a margem total aumenta e, no fim, isso gera Free Cash Flow suficiente para receber valuations mais altos no mercado

Visibilidade (Visibility)

  • O uso de multitenância é muito vantajoso para entender o desempenho da infraestrutura e saber como os custos estão sendo refletidos em determinados grupos de clientes
    • Os dados precisam poder ser consultados de forma consolidada ou por cliente
  • Em infraestrutura single tenant, é muito difícil analisar métricas cross-customer, porque os dados dos clientes ficam dispersos
  • Já em uma infraestrutura multitenant, é possível observar toda a base de clientes e identificar tendências macro
    • Isso pode ser visto no nível de logging, da unidade do DB ou do monitoramento de desempenho da aplicação, trazendo grande vantagem para equipes cross-functional

A complexidade da multitenância

  • Toda "mágica" tem problemas, e a multitenância não é exceção

Problema 1: disponibilidade e noisy neighbors

  • Se um e-commerce armazenar os dados de todos os clientes em um único DB, e a maioria dos usuários comprar apenas um ou dois itens por mês, mas um usuário comprar 5 mil itens por dia, então
    • se o DB não for forte o suficiente para lidar com o pico de carga desse cliente, o banco inteiro pode cair e impedir compras dos demais clientes
  • Esse é um grande desafio e leva à decisão sobre particionamento de dados
    • Particionamento Silo (um DB separado por tenant) vs. particionamento Pooled (DB compartilhado entre tenants)
    • O particionamento Silo pode resolver problemas de alguns clientes, mas aí voltamos ao problema original de ter que gerenciar inúmeras instâncias
    • O particionamento Pooled funciona bem, mas, se um único cliente gerar carga demais, isso pode causar lentidão ou até derrubar o sistema

Problema 2: recursos compartilhados e segurança dos dados

  • Como todos os clientes usam os mesmos recursos e não existe uma implementação padrão de multitenant, podem surgir bugs técnicos que misturem dados entre tenants diferentes
  • Isso pode ser um problema extremamente perigoso se você estiver atendendo ao mesmo tempo clientes que competem entre si
  • A equipe técnica precisa avaliar leis de soberania de dados (Data Sovereignty Laws) e regulações que afetem o isolamento entre tenants

Resolvendo a complexidade

  • Multitenant se tornou um dos principais pilares das aplicações SaaS, mas ainda há muita complexidade a considerar na fase de implementação.
  • O CEO da Cloudinary enfatizou que "multitenancy é a chave para alcançar excelência operacional (Operational Excellence), mas fazê-la corretamente exige muito conhecimento e investimento".
  • A Boldstart e a F2, que escreveram este texto, investiram em uma startup (atualmente em stealth mode) que resolve esses problemas de multitenância
  • Há muita complexidade em sistemas multitenant, mas, considerando a dívida técnica que surge ao escalar sistemas single tenant, não há mais motivo para hesitar
    • Isso porque, para resolver essa dívida técnica, acaba sendo necessário mobilizar as melhores equipes de engenharia e gastar recursos em algo que não é o core business
    • Startups inteligentes escolhem planejar, construir e manter um ambiente multitenant desde o começo

Ainda não há comentários.

Ainda não há comentários.