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
Monolithic to Microservices @ Moip
Search
Rodrigo Saito
November 11, 2015
Programming
0
72
Monolithic to Microservices @ Moip
Presented @ API Experience
www.apiexperience.com.br
Rodrigo Saito
November 11, 2015
Tweet
Share
Other Decks in Programming
See All in Programming
WasmOS: Wasmを実行する自作Microkernel
riru
0
370
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
490
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
580
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
24
7.3k
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
110
TCAの Shared Stateって どういう仕組みになってんの?
yimajo
0
330
Creating Retro-Style Photos Using Swift
ski
1
340
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
tshinowpub
1
220
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
490
受託開発でGitLab CI を活用していく
xiombatsg
1
110
Featured
See All Featured
Atom: Resistance is Futile
akmur
258
25k
Producing Creativity
orderedlist
PRO
335
39k
Practical Orchestrator
shlominoach
180
9.7k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
Stop Working from a Prison Cell
hatefulcrawdad
265
19k
What's new in Ruby 2.0
geeforr
335
31k
Building Your Own Lightsaber
phodgson
97
5.6k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Git: the NoSQL Database
bkeepers
PRO
421
63k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
Docker and Python
trallard
33
2.6k
Transcript
MONOLITHIC TO MICROSERVICES
None
Um pouco sobre os nossos últimos anos: + 300 parceiros
integrados + 100k clientes + R$ 1 bi / ano + 200 colaboradoradores + 8 anos de operação
None
None
V1
V2
MONOLITHIC VS MICROSERVICES
MOIP V1
None
None
LEGACY CODE
None
DIFFERENT TEAMS DEPLOY SYNCHRONIZATION
MOIP V2 FIRST PHASE
‣ REST APIS USING V1 CODEBASE ‣ NEW FACADE TO
LEGACY CODE ‣ RE-USE V1 FEATURES ‣ FAST TO DELIVER
None
None
HARD TO MAINTAIN HARD TO HANDLE ERRORS
500 ERRORS
NOT FAST TO DELIVER
SLOW RESPONSE TIMES
MOIP V2 SECOND PHASE
‣ SAME DATABASE ‣ NEW CODE ‣ UNIT / INTEGRATION
TESTS ‣ EASIER TO MAINTAIN ‣ BETTER RESPONSE TIMES
None
None
PERSISTING COLUMNS THAT WE HAVE NO IDEA ABOUT THE MEANING
V1 DATA <——> V2 DATA
MOIP V2 THIRD PHASE
‣ DATABASE FOR EACH SERVICE ‣ NEW CODE ‣ UNIT
/ INTEGRATION TESTS ‣ SYNC V2 <-> V1
None
None
None
None
SYNC DATA BETWEEN SERVICES IS VERY HARD
CONSISTENCY
MONITORING
NO DEVOPS
BUT…
‣ SCALABILITY ‣ FASTER DEPLOYS ‣ RESILIENCY ‣ EASIER TO
MAINTAIN
COMMUNICATION
SYNCHRONOUS VS ASYNCHRONOUS
REST API AMQP
SYNCHRONOUS ‣ LATENCY ‣ TIMEOUT ‣ CASCADING ERRORS ‣ SERVICE
DOWN
NETFLIX STACK
EVENT DRIVEN ARCHITECTURE ‣ SERVICE NOTIFY EVENTS ‣ SERVICE SUBSCRIBE
TO EVENTS ‣ HEADERS / JSON BODY
None
None
None
CONSISTENCY
DISTRIBUTED TRANSACTIONS WITHOUT TRANSACTIONS
None
HARD TO CHECK OVER DIFFERENT DATABASES
None
INFRASTRUCTURE
‣ DEPLOY ‣ INFRASTRUCTURE AS CODE ‣ DEVELOPER DEPLOY TO
PROD ‣ PLATFORM ‣ SERVICE DISCOVERY
MONITORING
INFRASTRUCTURE MONITORING ‣ AUTOMATION ‣ DASHBOARDS ‣ SERVER LOG AGGREGATION
BUSINESS MONITORING ‣ BUSINESS METRICS ‣ DASHBOARDS ‣ APPLICATION LOG
AGGREGATION
LESSONS LEARNED
‣ MICROSERVICE ONLY IF YOU NEED IT ‣ MICROSERVICE NOT
NANOSERVICE ‣ AUTOMATE INFRASTRUCTURE ‣ METRICS, METRICS AND METRICS
‣ TEST FAILURE SCENARIOS ‣ INTERNAL LATENCY ‣ USE SERVICE
DISCOVERY
MOIP V2 FUTURE
‣ CONNECTION CACHING ‣ CACHE HEADERS ‣ DOCKER CONTAINERS ‣
KEY/VALUE STORE CONFIGURATION ‣ SERVICE DISCOVERY ‣ FACEBOOK PRESTO
THANK YOU !!! Rodrigo Saito @rodrigosaito