Enabling Multi-Tenancy<br />An Industrial Experience Report<br />Cor-Paul Bezemer, Andy Zaidman, Bart Platzbeecker, Toine ...
Outline<br />What is multi-tenancy?<br />Converting single-tenant to multi-tenant applications<br />CodenameMT<br />Lesson...
What is Multi-Tenancy?<br />vs.<br />
What is Multi-Tenancy?<br />A multi-tenant application lets customers (tenants)<br />share the same hardware resources, by...
Multi-Tenancy vs. Multi-User<br />Tenant can span multiple users<br />Tenants can have SLAs<br />Tenants have more configu...
Benefits of Multi-Tenancy<br />Lower number of application and database instances<br />Results in easier (& cheaper) deplo...
Challenges of Multi-Tenancy<br />Performance<br />Scalability<br />Security<br />Zero-downtime<br />Maintenance<br />Confi...
Exact Codename and Multi-Tenancy<br />Exact Codename: prototype of a Web 2.0 community<br />Codename is currently single-t...
A Multi-Tenant Codename Version<br />Goal: Create a multi-tenant version of Codename<br />Requirements:<br />Minor adjustm...
Codename Architecture<br />
CodenameMT: Authentication<br />Add CodenameMT as a known party to the existing single sign-on server<br />Add TenantID to...
CodenameMT: Configuration<br />Layout style<br />Adapt global.asax to load tenant-specific masterpage/theme<br />General c...
CodenameMT: Database<br />Add TenantID to tables that contain tenant-specific data<br /><ul><li>Not all tables contain suc...
Lessons Learned<br />Lightweight reengineering approach<br />Approx. 100 lines of code added to ~165K LOC<br />Approx. 3 d...
Future Work<br />Performance monitoring/prediction <br />Prototype in ‘ideal’ multi-tenant architecture<br />Apply ideas t...
Upcoming SlideShare
Loading in …5
×

Enabling multi tenancy(An Industrial Experience Report)

1,846 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,846
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
84
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Enabling multi tenancy(An Industrial Experience Report)

  1. 1. Enabling Multi-Tenancy<br />An Industrial Experience Report<br />Cor-Paul Bezemer, Andy Zaidman, Bart Platzbeecker, Toine Hurkmans, Aad ‘t Hart<br />
  2. 2. Outline<br />What is multi-tenancy?<br />Converting single-tenant to multi-tenant applications<br />CodenameMT<br />Lessons learned<br />
  3. 3. What is Multi-Tenancy?<br />vs.<br />
  4. 4. What is Multi-Tenancy?<br />A multi-tenant application lets customers (tenants)<br />share the same hardware resources, by offering them<br />one shared application and database instance, while allowing them to configure the application to fit their needs as if it runs on a dedicated environment.<br />vs.<br />
  5. 5. Multi-Tenancy vs. Multi-User<br />Tenant can span multiple users<br />Tenants can have SLAs<br />Tenants have more configurability options<br />
  6. 6. Benefits of Multi-Tenancy<br />Lower number of application and database instances<br />Results in easier (& cheaper) deployment<br />Requires high degree of configuration<br />Higher utilization of hardware resources<br />Results in lower hardware costs<br />Lower deployment and hardware costs<br />Results in the opportunity to offer a service at a lower price<br />
  7. 7. Challenges of Multi-Tenancy<br />Performance<br />Scalability<br />Security<br />Zero-downtime<br />Maintenance<br />Configurability increases complexity <br />
  8. 8. Exact Codename and Multi-Tenancy<br />Exact Codename: prototype of a Web 2.0 community<br />Codename is currently single-tenant<br />Why is multi-tenancy interesting for Codename?<br />Allow rapid ‘deployment’ of different communities<br />Install one instance, configure/maintain many<br />Save on hardware resource costs<br />
  9. 9. A Multi-Tenant Codename Version<br />Goal: Create a multi-tenant version of Codename<br />Requirements:<br />Minor adjustments in existing code<br />Let developers be (mostly) unaware of multi-tenancy<br />Clearly separate multi-tenant components<br />
  10. 10.
  11. 11. Codename Architecture<br />
  12. 12. CodenameMT: Authentication<br />Add CodenameMT as a known party to the existing single sign-on server<br />Add TenantID to token (claim and User objects)<br />Note: ‘original’ Codename authentication still in place!<br />
  13. 13. CodenameMT: Configuration<br />Layout style<br />Adapt global.asax to load tenant-specific masterpage/theme<br />General configuration<br />Stored in the database (handled by Data Access Layer)<br />File I/O<br />Load tenant-specific lists/entities<br />Workflow - future work<br />
  14. 14. CodenameMT: Database<br />Add TenantID to tables that contain tenant-specific data<br /><ul><li>Not all tables contain such data, e.g. the Countries table</li></ul>Add IsMultiTenant to data model<br />Update Data Layer so that queries are aware of TenantID<br />Add TenantID to indexes where necessary<br />
  15. 15. Lessons Learned<br />Lightweight reengineering approach<br />Approx. 100 lines of code added to ~165K LOC<br />Approx. 3 days of implementation were needed <br />Layered architecture is important<br />Fully transparent for the end-user<br />End-user is unaware that the application is multi-tenant<br />Little effect for the developer<br />
  16. 16. Future Work<br />Performance monitoring/prediction <br />Prototype in ‘ideal’ multi-tenant architecture<br />Apply ideas to Exact Online<br />“Can we predict a peak in performance, and take appropriate scalability measures in time?”<br />

×