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
Sistemas Distribuidos Escaláveis com Microserviços
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
reinaldob
November 28, 2015
Technology
0
58
Sistemas Distribuidos Escaláveis com Microserviços
Sistemas Distribuidos Escaláveis com Microserviços
reinaldob
November 28, 2015
Tweet
Share
More Decks by reinaldob
See All by reinaldob
Devolta ao Monolito
reinaldob
0
64
Home Office
reinaldob
0
87
QCon SP 2013 - Legado Vale Ouro
reinaldob
0
58
Other Decks in Technology
See All in Technology
配列に見る bash と zsh の違い
kazzpapa3
3
160
AI駆動開発を事業のコアに置く
tasukuonizawa
1
340
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
190
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
2
3k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
370
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
0
2k
It's Worth the Effort
3n
188
29k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How GitHub (no longer) Works
holman
316
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Transcript
Orquestração Database Sistemas Distribuídos Escaláveis com Microserviços HTTP Autenticação
@reinaldob • Programador na Spree Commerce Inc. • Empresa focada
em eCommerce • Equipe distribuída • 99% home office
None
Conceitos :)
O que são microserviços?
None
Quando eu deveria utilizá- lo?
Quando dá mais trabalho manter o sistema junto do que
ter ele separado.
Trabalho • Vários times mexendo no mesmo código • 1
app importante e estável send “deployada" junto com 1 app que muda frequentemente • API junto com APP, requisitos de segurança diferentes • etc…
Junto • Mesmo deploy • Mesmo codebase • Mesma equipe
Separado • Deploy separado • Codebase separado • Mesmo que
esteja na mesma máquina!
Como criar uma aplicação utilizando esse modelo arquitetural?
None
Don't Tell Me What To Do https://medium.com/@danielfilho
Sem bala de prata • Estudar o contexto • Perfil
da equipe de Dev • Equipe Devops • Conways law • Tamanho dos times • Melhores protocolos • A lista é grande…
Quem está usando hoje em dia?
TODO MUNDO!
• Netflix • SoundCloud • Amazon • eBay • …
Preciso utilizar?
NÃO
Wombat
Um pouco de história
Storefront Wombat Order Payment Shipment Fulfilment Replicate ready, complete, paid
ready, approved, rejected ready, delivered, completed completed, cancelled Order Payment Shipment Fulfilment ready, complete, paid ready, approved, rejected ready, delivered, completed completed, cancelled
Order pedido incluso pronto -> pago pago -> cancelado pago
-> completo Email de confirmação Contas a receber Email, Baixa do contas a receber Email, Baixa do estoque
Integrações • STOREFRONT INTEGRATIONS • BigCommerce • Magento • NuORDER
• Shopify • ACCOUNTING AND ERP • Abacos • Netsuite • Odoo • Quickbooks Desktop • Quickbooks Integration • Microsoft Dynamics • FULFILLMENT AND INVENTORY • Aftership • DotCom • Fifth Gear • Fosdick • MDS Fulfillment • COMMUNICATION AND CUSTOMER SERVICE • Amazon SES • Bronto • Desk.com • ExactTarget • MailChimp • Mandrill • DATA, ANALYTICS, AND CRM INTEGRATIONS • Amazon S3 • Highrise • Jirafe • MK Data Services • Salesforce • SugarCRM • POINT OF SALE (POS) • Square • Vend • AccuPOS • LightSpeed • Microsoft RMS
Contexto • Alto volume • Um engine complexo(que não pode
falhar) • MUITAS integrações
Push API Wombat Engine Integrations Storefront (client) HTTP SNS/SQS HTTP
SQS Push API Push API Wombat Engine Wombat Engine Integrations Integrations SQS
Push API • Sinatra • Redis • Controle de acesso
(throttle) • Docker
Wombat Engine • Rails • Redis • Shoryuken(SQS) • Mongo
• Controle de acesso (throttle) usando SQS • Docker
Integrations • Sinatra (stateless) • Docker, Heroku, Rackspace, Standalone, etc…
• Open Source
Comunicação
JSON
HTTP • HMAC Auth e Token Auth • Nada fancy,
simples POST
SQS • Assíncrono • Várias filas para cada processo •
Dividir o numero de mensagens por min, regulando o bottleneck por cliente • Visibility Timeout • https://github.com/phstc/shoryuken
Engine Listener Evento SQS O bjeto + Evento Objeto +
Evento Erro ou Throttle Persistência SQS REDIS Controle de Throttle Notificações SQS Delivery SQS Status Objeto + Evento
Ganhamos • Integrações Dinâmicas • Liberdade pra habilitar quantos nodes
precisar por integração, dependendo do nível de uso • Delegamos o trabalho pra AWS, menos devops • Garantia de falha e multi-AZ • Deploys separados \o/
Perdemos • Ambiente local é complexo de montar • Testes
complexos e demorados, nosso ambiente de CI é bem hackeado • Dependencia da AWS
Custo/Benefício
Dicas • http://putsreq.com • https://ngrok.com • Use ferramentas simples (cURL)
e formatos simples (JSON)
Obrigado :) Dúvidas?