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
Devolta ao Monolito
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
reinaldob
March 28, 2016
Programming
0
64
Devolta ao Monolito
Uma discussão sobre Microserviços e Monolito
reinaldob
March 28, 2016
Tweet
Share
More Decks by reinaldob
See All by reinaldob
Sistemas Distribuidos Escaláveis com Microserviços
reinaldob
0
58
Home Office
reinaldob
0
87
QCon SP 2013 - Legado Vale Ouro
reinaldob
0
58
Other Decks in Programming
See All in Programming
CSC307 Lecture 08
javiergs
PRO
0
670
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
CSC307 Lecture 05
javiergs
PRO
0
500
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
730
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.5k
Fluid Templating in TYPO3 14
s2b
0
130
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
960
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
dchart: charts from deck markup
ajstarks
3
990
CSC307 Lecture 03
javiergs
PRO
1
490
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Optimizing for Happiness
mojombo
379
71k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
49
Building AI with AI
inesmontani
PRO
1
690
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Paper Plane
katiecoart
PRO
0
46k
How to make the Groovebox
asonas
2
1.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
[SF Ruby Conf 2025] Rails X
palkan
1
750
Deep Space Network (abreviated)
tonyrice
0
48
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Transcript
De volta ao monolito
@reinaldob • Mais de 20 anos de experiência em desenvolvimento
• Programador na Spree Commerce Inc. • Empresa focada em eCommerce • Equipe distribuída • 99% home office
None
Nossa Equipe • Washington-EUA(HQ) • Vermont-EUA • Polônia • São
Paulo • Piauí
2 times
Antes de começar…
None
Como era no início?
Store (Rails, Repo) • Acessado por um volume de usuários
específico • Tem mecanismo de cache diferente • Requisitos diferentes de disponibilidade
Admin (Rails, Repo) • Acessado só pelo administrador • Baixo
acesso • Disponibilidade relaxada
Checkout (Rails, Repo) • Unico app para todas as lojas
• Requisitos de segurança diferentes • Mais simples, menos deploys
Site (Rails, Repo) • App para autenticação • Segurança alta
• Utilizado para o Store e Admin
• Nova feature, temas! • Separar para poder ser feito
fora • Reuso Themes (Gem, Repo)
• Reuso • Duplicação • Sem lugar definido • API
Core (Gem, Repo)
Core (Gem, Repo) Themes (Gem, Repo) Admin (Rails, Repo) Store
(Rails, Repo) Checkout (Rails, Repo) Site (Rails, Repo)
Infra • Docker para cada Rails • Git repo para
cada projeto • Git Flow • AWS (elb, ec2, s3, etc..) • DynamoDB
1 Devops
None
None
Mas as coisas começaram a mudar
Deploy demorado • Tempo para rodar CI • Gerar imagem(AMI)
• Publicar • Montar servidores(EC2, ELB, etc) • 15min por projeto(4 projetos)
Dependencias • 5 projetos • Nova versão, 5 tags, 5
releases, 5 … • 1 Bug = Git flow hell
Duplicação • I18n • Assets • Presenters • Tool (CodeClimate)
FTW
Evolução Rápida • Startup • Features ortogonais a todo o
tempo • Time to Market • Times Pequenos
None
Mesmo assim ta tudo bem…
None
Passo 1
Criar apenas 1 repo • Crazy Ideas • Similar à
Open Source • Sem julgamento
Criar apenas 1 repo • Tag para 1 repo •
Melhor visão (encontrando problemas) • Sem sofrimento para bugs
Passo 2
Deploy • Processo de rodar o CI • Como geramos
as imagens (AMI) • Normalizamos as apps para usarem a mesma estrutura e assim reutilizar as configs
None
Passo 3
Admin + Site • A app site estava meio perdida,
ai margeamos com o Admin • Um passo seguro
Passo 4
Infra • A infra foi toda redesenhada • Tudo imutável
• Evidenciou nossos problemas • Ficou muito pior do que estava
Passo 5
Mergear Tudo • Crazy Ideas de novo • Todos os
projetos viraram 1 só • Rotas, views, assets, etc
Como ficou?
Themes (pasta) Admin Store Site Checkout (Rails) Core (pasta) Repo
• I18n centralizada • Assets centralizados • Packages/Namespaces melhores • Melhores specs
Admin Store Site Checkout (Rails) AMI • CI em 8min
(mesmo com o dobro de features) • Deploy 10min • Scripts de infra simplificados • Arquitetura 100% imutável (inclusive o banco de dados)
E estamos felizes no momento =)
Mas não mudamos só código!
Arquitetura tem que ser baseada no negócio e nas pessoas.
Conway Law
Reavalie seu ambiente com olhos de fora sempre que possível
Ouça seu time
Experimente, experimente e experimente…
Ouça o mercado também, mas não muito…
Obrigado :) Dúvidas?