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
Microservices
Search
Jun Lin
August 01, 2018
Programming
0
58
Microservices
A brief introduction to Microservices.
Jun Lin
August 01, 2018
Tweet
Share
More Decks by Jun Lin
See All by Jun Lin
A brief introduction to GenStage
linjunpop
1
53
Actor Model
linjunpop
0
29
Ruby for iOS developer
linjunpop
0
1k
A brief introduction to GitHub
linjunpop
1
66
Test Driven Development
linjunpop
0
48
Ruby 2.0
linjunpop
1
170
Other Decks in Programming
See All in Programming
Conquering Massive Traffic Spikes in Ruby Applications with Pitchfork
riseshia
0
160
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
650
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
510
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
800
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
1.2k
どの様にAIエージェントと 協業すべきだったのか?
takefumiyoshii
2
630
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
220
CSC305 Lecture 02
javiergs
PRO
1
260
CSC509 Lecture 02
javiergs
PRO
0
410
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
140
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
390
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.5k
Producing Creativity
orderedlist
PRO
347
40k
Designing Experiences People Love
moore
142
24k
Faster Mobile Websites
deanohume
310
31k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Transcript
Microservices A brief introduction to
Microservices Building scalable cloud-based software applications
The Outline • What is a Monolith • What are
Microservices • The benefit • The drawback • A demo • What Archiver can do • What’s Next
Monolith
A single application bundle Web Service Mail DB Push
What’s wrong?
Slow compile/startup time 15s
Bundled scalability Web Service Mail DB Push Web Service Mail
DB Push Web Service Mail DB Push
Failure diffusion 1 2 3 1 2 3
Chaos on cooperation 1 2 3 4 A B C
Application Teams
Delay shipping 1 2 3 4
Long-term commitment to a technology stack
What are microservices
An architectural style
Self-contained Billing System Auth System Recommendation System
Communication Billing System Auth System Recommendation System
Replaceable Smart Recommendation System Billing System Auth System Stupid Recommendation
System
Is it good?
Benefits • Independent development • Independent deployment • Independent scalability
• Reusability
Independent development
Team-Service Billing Recommend ation A B Support C
Faster iteration Version 1 Version 2 Version 3 Version 1
Version 2
Polyglot Application Java Rust Javascript Ruby
Independent deployment
Rapidly shipment Order Support Social
Fault isolation Order Support Social Uptime 99.999%
Independent scalability
Scale independently Order Support Social Order Order Social Order
Reusability
Reusability Transcoding Streaming Upload Transcoding Download Social Application A Application
B
Is it that good?
Additional complexity Service A Service B Service C
Inter-service communication RESTful AMPQ grpc Authentication Discovery MessagePack Protocol Buffers
Connection pools Timeouts
Costs on the remote calls Service Service Service UI 10ms
20ms 30 ms
Shared library Order Social Support Shared logic
Hard to see the big picture
Dev dependency hell 2 1 3 New feature 4
Not a silver bullet
Demo
Exporter Fetcher Google Drive Dropbox The System
Fetcher The System Platform API Grab recordings
Exporter The System Export Google Drive Dropbox
Fetcher Google Drive Dropbox UI Components
Demo https://git.io/archiver-demo
• Self-Contained service • Inter-application communication protocol (http/json) • Shared
library (Archiver.Shared) • Storage (service maintain it’s own state) • Supervising What’s implemented
None
Archiver
Find the boundary
12-Factor App https://12factor.net
Monitoring
Progressive migration
Recap
Recap • What is a Monolith • What are Microservices
• The benefit • The drawback • A demo • What Archiver can do
What’s Next
• ServiceMesh • Serverless (AWS Lambda) • Spring Cloud or
Akka or .. • https://segment.com/blog/introducing-centrifuge/
One more thing
Actor Model
The Actor Model Actor Mailbox State
https://commons.wikimedia.org/wiki/File:Erlang_logo.svg http://www.erlang.org
Object Orientation OO is only about message passing and isolation
and protection of state. - Alan Kay http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
None