milton lenis multitenant architectures in python · milton lenis @miltonln linkedin.com/in/miltonln...

47
MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON

Upload: others

Post on 27-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com

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

MILTON LENIS

@MiltonLnlinkedin.com/in/miltonlngithub.com/MiltonLn

[email protected]

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

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

STORYTIME

Page 5: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com

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

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

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

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

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

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

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

V ??

Page 13: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IMPLEMENTATION

Page 36: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com

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

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

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
Page 40: MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln github.com/MiltonLn miltonln04@gmail.com lalogiadepython.com

@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

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

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

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

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

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

▸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

THANK YOU! ANY QUESTIONS?

@MiltonLn