symfony e micro (non così tanto) services
TRANSCRIPT
![Page 1: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/1.jpg)
Symfony e micro (mica tanto)
servizi
![Page 2: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/2.jpg)
A bit of history…
![Page 3: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/3.jpg)
![Page 4: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/4.jpg)
Peaks on gen - jun - aug up to 70 M pg/mth
Peaks during big matches
![Page 5: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/5.jpg)
![Page 6: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/6.jpg)
PaaS Platform as a Service
(almost) Zero configuration
Put the code “on the cloud” and you’re done
![Page 7: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/7.jpg)
![Page 8: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/8.jpg)
In the beginning there was…
![Page 9: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/9.jpg)
![Page 10: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/10.jpg)
Hard limits on resource (e.g 50 db con)
Deploy via ftp (sf cache mess)
Blackbox: No realtime log, no access
PHP 5.3
![Page 11: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/11.jpg)
Microservices FTW!
![Page 12: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/12.jpg)
![Page 13: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/13.jpg)
![Page 14: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/14.jpg)
![Page 15: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/15.jpg)
micro vs macro?
orchestration?
maintenance?
security?
test?
![Page 16: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/16.jpg)
micro vs macro
![Page 17: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/17.jpg)
How many ways can you split an app?
![Page 18: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/18.jpg)
![Page 19: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/19.jpg)
Web: the main web (sf1)
Mobile: mobile version (sf components)
Vxl: community site (sf2 v2.8)
![Page 20: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/20.jpg)
Talk: api for comments, votes, ratings (sf2 v2.8)
Adv: api for ads serving (sf2 v2.8)
Media: api for images mgnt (sf2 v2.8)
![Page 21: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/21.jpg)
![Page 22: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/22.jpg)
Talk api
![Page 23: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/23.jpg)
/queue/comments/comments/totals/comments/{idComment} /comments/publish /comments/{idComment}/votes/comments/{idComment}/votes/{idVote} /comments/best-users/comments/week-best-users/comments-with-replies/users/{userId}/statistic/users/{userId}/comments/articles/most-commented-today
![Page 24: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/24.jpg)
Media api
![Page 25: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/25.jpg)
/collections/collections/{idCollection} /files/files/multiple /files/{idFile} /files/{idFile}/publish
![Page 26: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/26.jpg)
Why small is better?
![Page 27: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/27.jpg)
![Page 28: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/28.jpg)
Lines Of Code
![Page 29: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/29.jpg)
Fits in my head
https://www.infoq.com/presentations/microservices-replaceability-consistency
![Page 30: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/30.jpg)
![Page 31: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/31.jpg)
How services can interact?
![Page 32: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/32.jpg)
Client Side
![Page 33: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/33.jpg)
S1
S2
S3
Page
UI1 UI2
UI3
![Page 34: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/34.jpg)
![Page 35: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/35.jpg)
![Page 36: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/36.jpg)
Client knows the endpoint
Endpoints are public (caching!)
Async loading, progressive enhancement
![Page 37: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/37.jpg)
Server Side
![Page 38: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/38.jpg)
S1
S2
S3
ProxyUI
![Page 39: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/39.jpg)
![Page 40: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/40.jpg)
![Page 41: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/41.jpg)
![Page 42: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/42.jpg)
Client knows only one endpoint
Do not expose the underlying architecture
![Page 43: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/43.jpg)
Provide high level apis
![Page 44: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/44.jpg)
![Page 45: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/45.jpg)
What if something goes wrong?
![Page 46: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/46.jpg)
![Page 47: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/47.jpg)
All services are on subdomains
vxl.calciomercato.com
www.calciomercato.com
![Page 48: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/48.jpg)
Login set cookie on .calciomercato.com
![Page 49: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/49.jpg)
web
vxllogin Cookie
PHPSESSID: b22j6…Domain: .calciomercato.com
![Page 50: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/50.jpg)
Api services are token based
talk.calciomercato.com
adv.calciomercato.com
media.calciomercato.com
token expires with session
![Page 51: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/51.jpg)
Deploy
![Page 52: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/52.jpg)
How can we deploy a feature involving a single service?
![Page 53: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/53.jpg)
How can you deploy a feature involving n services?
![Page 54: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/54.jpg)
Keep Backward Compatibility!
![Page 55: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/55.jpg)
What if you are removing an endpoint?
![Page 56: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/56.jpg)
What if you are adding an endpoint?
![Page 57: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/57.jpg)
What if you are modifying an endpoint?
![Page 58: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/58.jpg)
Maintenance
![Page 59: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/59.jpg)
n smaller app to keep updated
![Page 60: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/60.jpg)
MicroKernelTrait
![Page 61: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/61.jpg)
Testing
![Page 62: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/62.jpg)
Test a service in isolation
![Page 63: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/63.jpg)
![Page 64: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/64.jpg)
![Page 65: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/65.jpg)
Test interaction of several services?
![Page 66: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/66.jpg)
S1
S2
S3
SUT
![Page 67: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/67.jpg)
What we learned so far?
![Page 68: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/68.jpg)
Michele OrselliCTO@Ideato
_orso_
micheleorselli / ideatosrl
Thank you!
https://joind.in/talk/92907
![Page 69: Symfony e micro (non così tanto) services](https://reader033.vdocuments.site/reader033/viewer/2022042908/58edadb31a28aba22a8b46c1/html5/thumbnails/69.jpg)
https://electric-cloud.com/blog/author/ecloud/page/5/
http://www.magnasoma.com/content/images/Magnasoma-Monolith-3-01.jpg https://sudo.hailoapp.com/assets/posts/journey-to-microservices/wheel-of-doom-
highlighted.png
http://www.arabamerica.com/wp-content/uploads/2016/05/20160422-the-wire-so-and-so-animated-gif-1.gif
http://blogs.versionone.com/agile-development/wp-content/uploads/sites/4/2013/04/ContextMap2.png
https://cdn.infoq.com/statics_s1_20161011-0321_2/resource/articles/qcon-london-2015/en/
resources/8-a.jpg http://www.uqasar.eu/wp-content/uploads/2014/05/Metrics.jpg
http://pad1.whstatic.com/images/thumb/8/8c/Cheat-at-Card-Games-Step-3.jpg/728px-Cheat-at-Card-Games-Step-3.jpg