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
Micro services as architectural concept
Search
Aimeos
May 09, 2016
Programming
0
680
Micro services as architectural concept
What are micro services, some history and how we use it in Aimeos
Aimeos
May 09, 2016
Tweet
Share
More Decks by Aimeos
See All by Aimeos
PHP Map
aimeos
1
110
GraphQL vs. JSON:API
aimeos
1
200
Responsive E-Mails
aimeos
0
630
gigacommerce
aimeos
0
3.1k
High performance e-commerce in Laravel
aimeos
0
910
E-Commerce in TYPO3 mit Aimeos (Deutsch)
aimeos
0
430
Aimeos - high performance e-commerce in TYPO3
aimeos
0
290
Aimeos e-commerce components
aimeos
1
200
E-Commerce in TYPO3 - Reloaded
aimeos
0
300
Other Decks in Programming
See All in Programming
Jetpack for KMP
fornewid
1
290
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
【Go言語】ジェネリクス
tomo1227
0
170
君たちはどうコードをレビューする (される) か / 大吉祥寺.pm
utgwkk
15
8.5k
Product Management LT会_クアンド新家
shinshin
0
210
20240706_CDKConf
takuyay0ne
0
1.2k
Rust.Nagoya #1
codemountains
0
170
AWS初心者ってどうやってAWSを学ぶ?〜アプリエンジニアがやってよかったアーキテクチャ学習方法〜
yamanashi_ren01
0
190
CSC307 Lecture 08
javiergs
PRO
0
330
Trial
cairolibrary720
1
130
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
Featured
See All Featured
Atom: Resistance is Futile
akmur
261
25k
The Mythical Team-Month
searls
217
43k
Become a Pro
speakerdeck
PRO
15
4.8k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Being A Developer After 40
akosma
72
580k
Infographics Made Easy
chrislema
238
18k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
A Modern Web Designer's Workflow
chriscoyier
689
190k
The Brand Is Dead. Long Live the Brand.
mthomps
52
36k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
What the flash - Photography Introduction
edds
65
11k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Transcript
Micro services as architectural concept
Previous applications architectures
“Spaghetti”
Function 2 Function 3 Function ... Application Function 5 Function
4 Function 1
Objekt oriented
Object 1 - Data - Methods Object 1 - Data
- Methods Object ... - Data - Methods Application
Layer model
Layer 1.3 Layer 1.2 Layer 1.1 Layer 2.2 Layer 2.1
Application
Similarity: Deployment monoliths
Micro services
Single, independent applications
Layer 2.2 Layer 2.1 Layer 1.3 Layer 1.2 Layer 1.1
Application 1 Application 2
Requirement: Domain driven design
Layer 1.3 Layer 1.2 Layer 1.1 Layer 2.2 Layer 2.1
Layer 3.4 Layer 3.4 Layer 3.1 Layer 3.2 Domain 1 Domain 3 Domain 3
Micro services in “real life”
Domäne 3 Domain 1 Domain 2 Domain 5 Domain 4
Domain 3 Bounded contexts
Interfaces and data exchange
Domain 1 Domain 5 Format? Versioning? Compatibility? Fault tolerance? Number
of calls? Common data model?
Shared kernel
Domain 1 Data model Domain 3
Best case • Work independently from each other • Extendable
by different teams • Exchangeable • Scalable
Worst case • Erros are even harder to find •
Increased total complexity • Performance suffers • Cascading outages
Aimeos
E-Commerce components for integration into applications
None
Layer model
Config Data access JQAdm JQuery Frontend client List ... Basket
Admin controller Frontend controller PHP I18n Config Database View Logger Session Bandend application Frontend application ExtAdm JsonAdm ExtJS JSON API
Data domains
Product Catalog Index Order ... 16 Datendomänen Data access
Separation into stacks for micro services
Config List Client ... Client Cntl ... Cntl Product ...
Order ... Basket By domain
Frontend client List ... Basket Frontend controller Data access By
use case Config JQuery JQAdm ExtAdm JsonAdm Cntl Cntl Cntl Data Data Data ExtJS JSON API
Frontend client List ... Basket Frontend controller Data access With
shared kernel JQuery JQAdm ExtAdm JsonAdm Admin Controller ExtJS JSON API
As Composer packages • Aimeos core (shared kernel) • HTML
client (frontend) • JQAdm (JQuery admin) • ExtAdm (ExtJS admin) • JsonAdm (JSON admin API) • Jobs (cronjob controller)
Open questions
Further separation? Frontend? Shared admin controller?
Best size for micro services?
Aimeos aimeos.org Twitter: @aimeos facebook.com/Aimeos