Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Microservices architecture pitfalls
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mateusz Gajewski
March 07, 2015
Programming
230
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Microservices architecture pitfalls
This is the talk about common pitfalls met while building scalable microservice architecture
Mateusz Gajewski
March 07, 2015
More Decks by Mateusz Gajewski
See All by Mateusz Gajewski
Modern java for decade-old problems
wendigo
0
180
3 kroki do tyłu, 2 lata w przód
wendigo
2
200
JDD - Dług techniczny
wendigo
2
1.3k
WJUG 2017: 4 lata rewolucji mikrousługowej w Allegro
wendigo
0
360
4 lata rewolucji mikrousługowej w Allegro
wendigo
2
830
Project Rubicon
wendigo
0
390
RxJava - Reactive extensions for the JVM
wendigo
1
340
Building distributed systems with OSS
wendigo
1
190
Scaling infrastructure beyond containers
wendigo
1
180
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
470
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
150
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.7k
Intent as Code
shoppingjaws
6
930
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
240
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
320
Family mrubyの進捗
kishima
1
110
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
200
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
Mobile First: as difficult as doing things right
swwweet
225
10k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
510
Deep Space Network (abreviated)
tonyrice
0
300
Writing Fast Ruby
sferik
630
63k
So, you think you're a good person
axbom
PRO
2
2.1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
680
The untapped power of vector embeddings
frankvandijk
2
1.9k
Thoughts on Productivity
jonyablonski
76
5.4k
Designing for humans not robots
tammielis
254
26k
Transcript
Microservices architecture pitfalls WJUG meeting ◦ march 2015 Mateusz Gajewski
Solutions Architect @ Allegro Twitter: @wendigo
About me given: I started working in Allegro in 2009
(5 mln AO, 50 devs) when: Allegro reached 40 mln AO, 400 devs then: I am Solutions Architect 2
Agenda • Microservices, microservices, microservices! ;) • Some challenges &
pitfalls: • Architectural, • Operational, • Organisational 3
Let’s go back in time to year 2012 4
5
Back then we wanted • agile development, • scalability, •
resilience, • lower costs, • hybrid cloud. 6
Basically SOA + JVM was an answer! 7
But our system was too BIG & too complex to
do it with existing enterprise solutions 8
s/Enterprise/OSS/g Solutions ;) 9
we’ve started to do *buzzword* 10
And now, literally everyone is doing microservices!!?? 11
Microservices by Fowler 12 Lots of *buzzwords* http://martinfowler.com/articles/microservices.html
SOA ≈ microservices? 13
microservices architecture ≈ fine-grained SOA − enterprise (commercial) sh*t ≈
highly scalable, distributed system 14
Distributed systems • concurrency of components, • independent failure of
components, • lack of a global clock. 15
The Eight Fallacies of Distributed Computing 16 by Peter Deutsch
1991
#1: Network is reliable 17
#2: Latency is zero 18
#3: Bandwidth is infinite 19
#4: Network is secure 20
#5: Topology doesn’t change 21
#6: There is one administrator 22
#7: Transport cost is zero 23
#8: Network is homogeneous 24
distributed systems are hard → microservices are much harder ;)
25
What have we learnt? 26
Act I: architectural constraints 27
CAP is not just theorem it’s reality against us 28
bye, bye ACID semantics 29
Long live BASE guarantees! Basically Available, Soft state, Eventually consistent
30
distributed transactions add complexity 31
it’s far cheaper to do compensation 32
33 http://bravenewgeek.com/you-cannot-have-exactly-once-delivery/
you need idempotent APIs and events sinks 34
35 choreography > orchestration
So we’ve built Hermes a.k.a circulatory system 36
network can be congested! 37
REST+JSON on top of HTTP/1.1 is fine 38
REST+JSON on top of HTTP/2.0 with TLS is finer 39
we don’t rely on network anymore net splits in public
clouds happens everytime! 40
we adopted antifragile organization 41
42
powerful tandem 43 + Reactive programming Circuit breaker pattern
you need to support non- native old services, clients and
systems 44
45
conclusion: constant architecture improvement 46
47 Act II: operational troubles
creating new service should be instant! 48
49
automation with gradle & axions 50
51
so now we’ve got over 1800 repositories grouped under 250
projects 52
all with CI, code quality checks, security checks, integrated with
sonar & artefact repository 53
but what with services upgrades? 54
we’ve initially built our own service stack … and it
was ok - for a while 55
now we are extending spring-boot with so called andamio project
56
rapid deployments integrated with CI/CD environment and canary tests are
must-have 57
war files ▾ scp + puppet ▾ golden images ▾
docker (immutable images) ▾ 58
frequency of changes → automated monitoring, logging &
operational insights 59
graphite statsd cabot tessera kibana logstash zabbix newrelic selena pingdom
… 60
Monitoring As A Service + SLA Monitoring + 61
we need to build real-time anomaly detection soon 62
63 Act III: organizational shift
strategic DDD is good for splitting up monolith 64
but leave tactical DDD up to teams 65
huge polyglot hangover 66
acquiring distributed skills 67
you build it - you run it 68
coupling avoidance 69
please don’t audit me 70
distributed (micro) data curation 71
So after two years… 72
73
Final thoughts 74
75
76
77
Thanks! Any questions? Visit our blog: allegrotech.io Follow us on
twitter: @allegrotechblog Check our OSS projects: github.com/allegro And meetup group: meetup.com/allegrotech 78