milton lenis multitenant architectures in python · milton lenis @miltonln linkedin.com/in/miltonln...
TRANSCRIPT
![Page 1: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/1.jpg)
MILTON LENIS
MULTITENANT ARCHITECTURES IN PYTHON
![Page 2: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/2.jpg)
MILTON LENIS
@MiltonLnlinkedin.com/in/miltonlngithub.com/MiltonLn
lalogiadepython.com
![Page 3: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/3.jpg)
WE ARE HIRING!
ODDSLINGERS.COM
![Page 4: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/4.jpg)
STORYTIME
![Page 5: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/5.jpg)
V 1.0
![Page 6: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/6.jpg)
V 1.0
![Page 7: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/7.jpg)
V 1.1
![Page 8: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/8.jpg)
V 1.1 V 1.1 V 1.1
![Page 9: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/9.jpg)
V 1.1 V 1.2 V 2.0
![Page 10: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/10.jpg)
V 2.0 V 2.0 V 2.0
![Page 11: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/11.jpg)
V 2.0 V 2.0 V 2.0 V 2.0 V 2.0 V 2.0
V 2.0 V 2.0 V 2.0 V 2.0 V 2.0 V 2.0
![Page 12: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/12.jpg)
V ??
![Page 13: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/13.jpg)
SOME PROBLEMS▸ Hard to maintain
▸ High costs
▸ Team grows with clients
![Page 14: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/14.jpg)
BUT, WHAT ALTERNATIVES DO WE
HAVE?
![Page 15: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/15.jpg)
MULTITENANT ARCHITECTURES
![Page 16: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/16.jpg)
A SINGLE SOFTWARE INSTANCE RUNS MULTIPLE CUSTOMERS…
Wikipedia
![Page 17: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/17.jpg)
OPTIMIZE HARDWARE, SOFTWARE AND
HUMAN CAPITAL
![Page 18: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/18.jpg)
ISOLATED AND SAFE
![Page 19: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/19.jpg)
SEAMLESS TO THE CLIENT
![Page 20: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/20.jpg)
V 2.5
![Page 21: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/21.jpg)
V 3.0
![Page 22: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/22.jpg)
LET’S RECAP…▸ Single software instance for
multiple customers
▸ Better use of resources
![Page 23: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/23.jpg)
TENANCY MODELS
![Page 24: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/24.jpg)
SINGLE DATABASEAPP
TENANT A
TENANT BTENANT C
DATABASE
![Page 25: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/25.jpg)
Easy Management
PROS
![Page 26: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/26.jpg)
App Level Complexity Slower Impossible Customization
CONS
![Page 27: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/27.jpg)
MULTIPLE DATABASES
APP
TENANT BTENANT A TENANT C
![Page 28: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/28.jpg)
DB Flexibility Highly Customizable Availability Guarantee
PROS
![Page 29: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/29.jpg)
Very Expensive Complex Management
CONS
![Page 30: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/30.jpg)
SINGLE DATABASE, MULTIPLE SCHEMAS
APP
DATABASE
TENANT A TENANT B TENANT C
![Page 31: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/31.jpg)
Cheap Customizable Better Features Balance
PROS
![Page 32: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/32.jpg)
Backup and Restore
CONS
![Page 33: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/33.jpg)
HOW TO CHOOSE ONE?
![Page 34: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/34.jpg)
WELL, IT DEPENDS…
![Page 35: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/35.jpg)
IMPLEMENTATION
![Page 36: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/36.jpg)
SINGLE DATABASE, MULTIPLE SCHEMAS
![Page 37: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/37.jpg)
VS
DJANGO-TENANT-SCHEMAS
DJANGO-TENANTS
![Page 38: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/38.jpg)
Shared and Tenant-specific Tenant View-Routing
DJANGO-TENANT-SCHEMAS
![Page 39: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/39.jpg)
![Page 40: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/40.jpg)
@MiltonLn
https://github.com/MiltonLn/pycon-multitenant
![Page 41: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/41.jpg)
MY EXPERIENCE
![Page 42: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/42.jpg)
SIND
~500 TENANTS
![Page 43: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/43.jpg)
PROJECT 1▸ Client and Server
▸ Djangorestframework
![Page 44: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/44.jpg)
PROJECT 2▸ React / Redux Client
▸ GraphQL
▸ Apollo Client
![Page 45: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/45.jpg)
CLOSING THOUGHTS
![Page 46: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/46.jpg)
▸Multitenant is awesome!
▸Quick MVPs
▸As efficient as you want
![Page 47: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com](https://reader035.vdocuments.us/reader035/viewer/2022070100/60126ed0a8c1490d92668786/html5/thumbnails/47.jpg)
THANK YOU! ANY QUESTIONS?
@MiltonLn