Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Multi-Tenancy: Uma introdução à arquitetura

Multi-Tenancy: Uma introdução à arquitetura

Talk sobre Multi-Tenancy na PyNE 2018

Arimatea Neto

May 24, 2018
Tweet

More Decks by Arimatea Neto

Other Decks in Technology

Transcript

  1. Quem sou eu • Arimatea Neto ◦ Olinda ◦ Graduação

    em Ciência da pela UFPE ◦ Especialização em Ciência dos dados e Analytics pela UPE ◦ 6 anos de desenvolvimento com Python e Django ◦ Full Stack developer na Vinta github.com/arineto arineto.github.io
  2. Agenda • Introdução à Multi-Tenancy ◦ Definição ◦ Níveis de

    maturidade de aplicações SaaS ◦ Por que isso importa? • Características Chave ◦ Alto Nível de Configurabilidade ◦ Compartilhamento de Hardware e da Aplicação ◦ Escolha da Abordagem • Vantagens e Desvantagens
  3. Definição Multi-Tenancy é um modelo organizacional de aplicações SaaS que

    permite servir múltiplos tenants (clientes) através de uma única instância da aplicação e do banco de dados. Além disso, é possível configurar essa aplicação para atender as necessidades de cada tenant (Bezemer e Zaidman, 2010).
  4. Por que isso importa? 90% das empresas brasileiras de médio

    porte tem algum tipo de aplicação em Nuvem. Fonte: Global Technology Adoption Index, 2014. SaaS cresceu em 2014 cinco vezes mais rápido que o mercado de software tradicional. Fonte: Worldwide SaaS and Cloud Software 2015-2019 Forecast and 2014 Vendor Shares.
  5. Características Chave 1 - Alto nível de configurabilidade • Configuração

    e customização da aplicação • Opções integradas ao design do produto • Código único, sem alterações específicas para clientes 2 - Compartilhamento de Hardware e da Aplicação • Todos os tenants compartilham o hardware e a aplicação • Abordagens: ◦ Aplicação compartilhada com bancos separados ◦ Aplicação e banco compartilhados com schemas separados ◦ Aplicação, banco e tabelas compartilhados
  6. Escolha da Abordagem 1 - Bancos de dados separados •

    Vantagem: Dados de cada tenant ficam fisicamente separados • Desvantagem: Provisionar e conectar um novo banco para cada tenant 2 - Banco compartilhado com schemas separados • Vantagem: Facilidade para manter e escalar • Desvantagem: Backup lento para grande número de schemas 3 - Banco e tabelas compartilhados • Vantagem: Consultas globais • Desvantagens: Cuidado com vazamento de dados entre tenants
  7. Vantagens e Desvantagens Vantagens: • Facilidade para entrada de novos

    cliente • Manutenção Simplificada • Redução dos custos de infra e manutenção • Maximiza utilização dos recursos Desvantagens: • Software mais complexo • Identificação de gargalos mais complicado • Custo para reestruturação de aplicações legadas elevado
  8. Materiais e Libs Materiais: • Minha monografia • Understanding database

    multitenancy • Multitenancy: Juggling customer data in Django • Multitenant applications: how and why Libs: • Django Multi Tenant • Django Shared Schema Tenants • Django Tenant Schemas