Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Arquiteturas Multi-Tenant RubyConf 2022
Search
Gabriel Sobrinho
September 09, 2022
Programming
0
220
Arquiteturas Multi-Tenant RubyConf 2022
Gabriel Sobrinho
September 09, 2022
Tweet
Share
More Decks by Gabriel Sobrinho
See All by Gabriel Sobrinho
Introduction to Go
sobrinho
1
110
Casos de otimização em aplicações Ruby on Rails
sobrinho
0
310
Introduction to automated tests (Goiania)
sobrinho
0
140
Introduction to automated tests
sobrinho
3
230
Otimização de Aplicações RoR
sobrinho
1
270
Introdução ao React (Simplificado)
sobrinho
0
150
Algoritmos de pesquisa
sobrinho
0
660
Introdução ao Docker
sobrinho
1
110
Introdução ao React
sobrinho
0
340
Other Decks in Programming
See All in Programming
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
680
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7k
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
150
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
250
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
620
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
800
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
470
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
360
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
300
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
Goで作る、開発・CI環境
sin392
0
260
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Become a Pro
speakerdeck
PRO
29
5.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The Language of Interfaces
destraynor
158
25k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Navigating Team Friction
lara
187
15k
Done Done
chrislema
184
16k
Thoughts on Productivity
jonyablonski
69
4.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
Arquiteturas Multi-Tenant Gabriel Sobrinho Senior Software Engineer at Code1
O que é um Tenant? @sobrinho
Um tenant é um consumidor lógico da sua aplicação, não
importando o seu tamanho @sobrinho
Podendo ser dimensionado como um usuário, uma organização, um conjunto
de organizações ou qualquer outro agrupamento lógico @sobrinho
None
None
Arquitetura Single-Tenant @sobrinho
A arquitetura Single-Tenant consiste no isolamento da aplicação e banco
de dados para cada unidade consumidora @sobrinho
@sobrinho
@sobrinho
@sobrinho
Vantagens @sobrinho
Isolamento físico completo entre tenants a nível de aplicação e
banco de dados @sobrinho
@sobrinho
@sobrinho
@sobrinho
@sobrinho
Backup e restauração simplificados em caso de desastre @sobrinho
Precificação descomplicada para clientes enterprise @sobrinho
Deploy planejado e incremental para diferentes clientes @sobrinho
Desvantagens @sobrinho
Custos elevados de infra-estrutura Especialmente para clientes que não precisam
de SLA @sobrinho
@sobrinho
@sobrinho
@sobrinho
Alta complexidade na coordenação, monitoramento e redimensionamento @sobrinho
Baixa eficiência no uso de memória, processador e armazenamento @sobrinho
Arquiteturas Multi-Tenant @sobrinho
@sobrinho
Arquiteturas multi-tenant compartilham os recursos alocados para diferentes consumidores afim
de reduzir e simplificar a operação @sobrinho
Aplicação compartilhada Bancos separados @sobrinho
@sobrinho
Aplicação compartilhada Banco compartilhado @sobrinho
@sobrinho
Vantagens @sobrinho
Monitoramento centralizado em aplicações como NewRelic, Scout, AppSignal e etc
@sobrinho
Infra-estrutura simplificada para escalar horizontalmente e/ou verticalmente @sobrinho
Redução do custo operacional @sobrinho
Desvantagens @sobrinho
Alta complexidade para backup e recuperação de dados em caso
de desastre @sobrinho
Como exportar os dados de um único tenant em caso
de encerramento de contrato? @sobrinho
Como recuperar os dados de um único tenant em caso
de desastre? @sobrinho
Falta de isolamento físico entre tenants, isolamento apenas lógico @sobrinho
@sobrinho
@sobrinho
@sobrinho
@sobrinho
Arquitetura Híbrida @sobrinho
Single-Tenant Aplicação Compartilhada Bancos Dedicados Aplicação Compartilhada Banco Compartilhado @sobrinho
Single-Tenant Aplicação Compartilhada Bancos Dedicados Aplicação Compartilhada Banco Compartilhado @sobrinho
Single-Tenant Aplicação Compartilhada Bancos Dedicados Aplicação Compartilhada Banco Compartilhado @sobrinho
Single-Tenant Aplicação Compartilhada Bancos Dedicados Aplicação Compartilhada Banco Compartilhado @sobrinho
Separação Lógica @sobrinho
Foreign Keys @sobrinho
@sobrinho
Postgres Schemas @sobrinho
@sobrinho
Bancos dedicados @sobrinho
@sobrinho
Qual a melhor opção? @sobrinho
¯\_(ツ)_/¯ @sobrinho
Depende do contexto do seu produto, financeiro e operacional @sobrinho
@sobrinho
Performance @sobrinho
Particionamento lógico de dados @sobrinho
Arquiteturas Master/Master e Master/Slave @sobrinho
Escalabilidade horizontal e vertical @sobrinho
Obrigado! @sobrinho
Perguntas? @sobrinho
Estamos contratando! @sobrinho @sobrinho
https://ascendixtech.com/multi-tenant-security-model/ https://www.ronenbekerman.com/showcase/modern-apartment-building-by-vladimir-lyaschenko/ https://www.archdaily.com/217155/single-family-house-in-jozefow-zag-architekci https://www.redbubble.com/i/poster/Everybody-Hates-Chris-by-DiscoveryWord/85976851.LVTDI