• 960 likes • 1.21k Views
Windows Azure Multi-tenant applicatie. Bouwen van een multi-tenant applicatie in de praktijk. Edo van Asseldonk. Ordina Microsoft Solutions. Agenda. Introductie / Architectuur URL strategie / Tenant id Data opslag (SQL Azure, Table Storage) Maatwerk (UI / Business Logica) Cache
E N D
Windows AzureMulti-tenant applicatie Bouwen van een multi-tenant applicatie in de praktijk
Edo van Asseldonk Ordina Microsoft Solutions
Agenda • Introductie / Architectuur • URL strategie / Tenant id • Data opslag (SQL Azure, Table Storage) • Maatwerk (UI / Business Logica) • Cache • Access Control Service
MultitenancyDefinitie …single instance of software serving multiple clients (tenants)… …een enkele softwareinstantie die meerdere klanten bedient…
MultitenancyDefinitie • Iedere tenant heeft: • eigen data • eigen opmaak • eigen business logic • gemeenschappelijke codebase • gemeenschappelijk datamodel
ArchitectuurOverview • Casus / Demo
ArchitectuurOverview Table Storage ACS SQL Azure Webrole
ArchitectuurOverview Table Storage ACS SQL Azure Webrole
ArchitectuurOverview Eisen: • Tenantapplicatie bereikbaar via eigen url • Eén database schema • Eigen stijl per tenant • Self service • Share everything
URL Strategie / Tenant idOpties Optie 1: Tenant bepalen a.d.h.v. ingelogde gebruiker http://www.MyMultitenantApp.nl/Home Geen referentie naar naam van tenant
URL Strategie / Tenant idOpties https://www.chatter.com/nl/
URL Strategie / Tenant idOpties https://eu1.salesforce.com/home/home.jsp
URL Strategie / Tenant idOpties Optie 2: TenantId in URL http://www.MyTenantApp.nl/Home?tenantId=17 http://www.MyTenantApp.nl/17/Home http://www.MyTenantApp.nl/A219F47cd-898B/Home http://www.MyTenantApp.nl/WazugNL/Home
URL Strategie / Tenant idOpties Optie 3: Tenant bepalen a.d.h.v. URL http://tenant1.MyTenantApp.nl/Home http://tenant2.MyTenantApp.nl/Home
URL Strategie / Tenant idOpties Optie 3: Tenant bepalen a.d.h.v. URL http://tenant1.MyTenantApp.nl/Home http://tenant2.MyTenantApp.nl/Home http://www.customdomain.nl/ -> verwijst naar http://tenant2.MyTenantApp.nl
URL Strategie / Tenant idOpties http://gaming.stackexchange.com/
URL Strategie / Tenant idOpties http://programmers.stackexchange.com/
URL Strategie / Tenant idOpties http://www.stackoverflow.com/
URL StrategieIn Windows Azure [MyMultitenantApp].cloudapp.net
URL StrategieIn Windows Azure [MyMultitenantApp].cloudapp.net [Tenant].cloudapp.net [Tenant].[MyMultitenantApp].cloudapp.net
URL StrategieIn Windows Azure [MyMultitenantApp].cloudapp.net Domain name: MyMultitenantApp.nl
URL StrategieIn Windows Azure [MyMultitenantApp].cloudapp.net Domain name: MyMultitenantApp.nl URLs: http://tenant1.MyMultitenantApp.nl http://tenant2.MyMultitenantApp.nl http://www.customdomain.nl
Data Database
DatabaseIntroductie Alle tenants in dezelfde database Twee issues: • Limiet aan databasegrootte • Limiet aan verwerkingscapaciteit (CPU, I/O etc.)
DatabaseIntroductie Oplossing: • Database splitsen
DatabaseIntroductie Oplossing: • Database splitsen -> SQL Azure Federations
SQL Azure FederationsRoot database Root DB Root Table1 Root Table2 Root Table…
SQL Azure FederationsCreate federation Root DB Member DB Root Table1 Root Table2 Root Table…
SQL Azure FederationsCreate tables Root DB Member DB Root Table1 Root Table2 Member Table2 Member Table1 Root Table… Member Table…
SQL Azure FederationsSplit federation member Root DB Member DB Root Table1 Root Table2 Member Table2 Member Table1 Root Table… Member Table…
SQL Azure FederationsSplit federation member Root DB Member DB Root Table1 Root Table2 Member Table2 Member Table1 Root Table… Member Table…
SQL Azure FederationsSplit federation member Member DB Member Table2 Member Table1 Root DB Member DB Member Table… Root Table1 Root Table2 Member DB Member Table2 Member Table1 Root Table… Member Table… Member Table2 Member Table1 Member Table…