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
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
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
CSC307 Lecture 02
javiergs
PRO
1
780
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
560
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
Oxlintはいいぞ
yug1224
5
1.3k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Optimising Largest Contentful Paint
csswizardry
37
3.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
Making the Leap to Tech Lead
cromwellryan
135
9.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
91
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Skip the Path - Find Your Career Trail
mkilby
0
55
Faster Mobile Websites
deanohume
310
31k
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?