MILTON LENIS MULTITENANT ARCHITECTURES IN PYTHON · MILTON LENIS @MiltonLn linkedin.com/in/miltonln...

Preview:

Citation preview

MILTON LENIS

MULTITENANT ARCHITECTURES IN PYTHON

MILTON LENIS

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

miltonln04@gmail.com

lalogiadepython.com

WE ARE HIRING!

ODDSLINGERS.COM

STORYTIME

V 1.0

V 1.0

V 1.1

V 1.1 V 1.1 V 1.1

V 1.1 V 1.2 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 V 2.0 V 2.0 V 2.0 V 2.0

V ??

SOME PROBLEMS▸ Hard to maintain

▸ High costs

▸ Team grows with clients

BUT, WHAT ALTERNATIVES DO WE

HAVE?

MULTITENANT ARCHITECTURES

A SINGLE SOFTWARE INSTANCE RUNS MULTIPLE CUSTOMERS…

Wikipedia

OPTIMIZE HARDWARE, SOFTWARE AND

HUMAN CAPITAL

ISOLATED AND SAFE

SEAMLESS TO THE CLIENT

V 2.5

V 3.0

LET’S RECAP…▸ Single software instance for

multiple customers

▸ Better use of resources

TENANCY MODELS

SINGLE DATABASEAPP

TENANT A

TENANT BTENANT C

DATABASE

Easy Management

PROS

App Level Complexity Slower Impossible Customization

CONS

MULTIPLE DATABASES

APP

TENANT BTENANT A TENANT C

DB Flexibility Highly Customizable Availability Guarantee

PROS

Very Expensive Complex Management

CONS

SINGLE DATABASE, MULTIPLE SCHEMAS

APP

DATABASE

TENANT A TENANT B TENANT C

Cheap Customizable Better Features Balance

PROS

Backup and Restore

CONS

HOW TO CHOOSE ONE?

WELL, IT DEPENDS…

IMPLEMENTATION

SINGLE DATABASE, MULTIPLE SCHEMAS

VS

DJANGO-TENANT-SCHEMAS

DJANGO-TENANTS

Shared and Tenant-specific Tenant View-Routing

DJANGO-TENANT-SCHEMAS

@MiltonLn

https://github.com/MiltonLn/pycon-multitenant

MY EXPERIENCE

SIND

~500 TENANTS

PROJECT 1▸ Client and Server

▸ Djangorestframework

PROJECT 2▸ React / Redux Client

▸ GraphQL

▸ Apollo Client

CLOSING THOUGHTS

▸Multitenant is awesome!

▸Quick MVPs

▸As efficient as you want

THANK YOU! ANY QUESTIONS?

@MiltonLn

Recommended