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
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
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
120
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
330
Agile Leadership Summit Keynote 2026
m_seki
1
660
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
20260204_Midosuji_Tech
takuyay0ne
1
160
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.6k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
370
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
210
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
It's Worth the Effort
3n
188
29k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
420
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?