Presentation is loading. Please wait.

Presentation is loading. Please wait.

MT Internals … enabling multi-tenant SaaS “in the cloud” Jan Vonka.

Similar presentations


Presentation on theme: "MT Internals … enabling multi-tenant SaaS “in the cloud” Jan Vonka."— Presentation transcript:

1 MT Internals … enabling multi-tenant SaaS “in the cloud” Jan Vonka

2 Jan Vonka - Senior Developer @ Alfresco Core Repository - Cloud / Hybrid Services At one time, lived & worked here in the Bay Area My passion: Flying hot-air balloons … once indoors @ Hangar 1, Moffett Field, CA Quick intro

3 Agenda Multi-Tenant (MT) Overview MT Core MT 4.x and “in the cloud” What’s new in Alfresco 4.x ? How does Alfresco “in the cloud” differ ? Summary and Feedback (Q & A)

4 MT Overview

5 4.x instance – example 1 DB Content (Shared F/S) Content (Shared F/S) Search (Solr) Search (Solr) Share Repository (including Transforms) APIs / Protocols (CMIS, REST, WebDAV, …) APIs / Protocols (CMIS, REST, WebDAV, …)

6 MT Overview 4.x instance – example 2 DB DB2 DB1 Content (Shared F/S) Content (Shared F/S) Search nodes Solr2 Solr1 Solr3 Share nodes Sh2 Sh1 Sh3 Repository Cluster R2 R1 R3 Transformer nodes T2 T1 T3 APIs / Protocols (CMIS, REST, WebDAV, …) APIs / Protocols (CMIS, REST, WebDAV, …)

7 MT Overview 4.x instance – example 3

8 MT Overview Content DB Search Index Alfresco “vanilla” – single-tenant (single instance) Alfresco Cluster

9 Alfresco – single-tenant (multi-instance) MT Overview Content DB Search Index Alfresco Cluster Alfresco Cluster Content DB Search Index Alfresco Cluster Alfresco Cluster Content DB Search Index Alfresco Cluster Alfresco Cluster Content DB Search Index Alfresco Cluster Alfresco Cluster T1 T2 T3 T4

10 Alfresco MT – multi-tenant (single instance) MT Overview Content DB Search Index Alfresco Cluster T1 T2 T3 T4

11 MT Overview Why use MT ? Economies of scale Lower licensing / TCO (Total Cost of Ownership) Easier to manage Less administrative overhead, easier upgrades Scale Cloud – multi-tenant SaaS (Software as a Service) New use-cases Cloud – eg. B2B collaboration (Business-to-Business)

12 MT Overview Alfresco has provided multi-tenant option since v3 Single instance / multiple tenants Each tenant can access logical repo Full partitioning (isolated tenants) UIs + APIs / Protocols Dynamic Models

13 MT Core

14 Repository structure – stores, nodes, associations Store -> node hierarchy (primary) parent / child assocs also secondary child assocs peer assocs (source / target) Example: workspace://SpaceStore Company Home Sites Site1, Site2, … User Homes fsmith, jdoe, … …

15 MT Core Repository structure By default, five uniquely named stores Live store (workspace://SpacesStore) Version2 store (workspace://version2Store) Archive store (archive://SpacesStore) User store (user://alfrescoUserStore) System store (system://system) See Admin Node Browser (Explorer or Share)

16 MT Core MT implementation – tenant context Auth (Security) ctx => fully qualified userid minimise impact on APIs + support standard protocols myuser@mytenant Internally partitioned by Alfresco “store” workspace://SpacesStore workspace://@@mytenant@@SpacesStore

17 MT Core MT implementation – tenant context (cont’) workspace://SpaceStore (workspace://@@acme.com@@SpacesStore) Company Home Sites Site1, Site2, … User Homes fsmith@acme.com, jdoe@acme.com, … workspace://SpaceStore (workspace://@@ano.co.uk@@SpacesStore) Company Home Sites Site1, Site2, … User Homes fsmith@ano.co.uk, jdoe@ano.co.uk

18 MT Core MT implementation – create tenant On 1 st startup, we “bootstrap” the schema objects When creating a tenant, we “import” default data … create tenant-specific stores (x5) Live store Version2 store Archive store User store System store add to “alf_tenant” table Tenant Domain, Enabled/Disabled, Content Root (if not co-mingled)

19 MT Core MT implementation – Services vs DAOs Services / APIs “always” accessed in tenant ctx notable exception is QuickShare service public/shared links => no login required Persistence DAOs direct use in some cases, apply to multiple / all (?) tenants eg. system-wide patches / jobs etc

20 MT Core Quick reference … something to review later MultiTServiceImpl  TenantService Provides name mangling – injected in various services MultiTAdminServiceImpl  TenantAdminService Manage tenants – create, disable / enable, delete MultiTNodeServiceInterceptor example that wraps (intercepts) generic NodeService instead of injecting TenantService (or extending)

21 MT Core See: node-services-context.xml dbNodeService org.alfresco.service.cmr.repository.NodeService multiTNodeServiceInterceptor

22 MT Core Other examples … Core Services, eg. NodeService -> FileFolderService ContentService SearchService (Lucene + Solr since v4) WorkflowService (JBPM + Activiti since v4) … etc APIs & Protocols, eg. WebScripts CMIS WebDAV

23 What’s new in Alfresco v4.x ?

24 What’s new in Alfresco v4 Changes include: Activiti support for MT in addition to JBPM Solr support for MT “core” tracking, tenant ctx filter, … MT pre-configured (enable w/ 1st tenant) note: since Enterprise 4.0.2 / Community 4.2.a

25 What’s new in Alfresco v4 Changes include: Alf_Tenant table replaces attribute list Common implementation eg. for (tenant-based) caches Various bug fixes & other related improvements from Cloud release + customer feedback

26 How does Alfresco “in the cloud” differ ?

27 MT Core 4.x except hosted on AWS and … Search Index (Solr) DB (RDS) Content (S3) Alfresco Cluster

28 How does Alfresco “in the cloud” differ ? Architecture

29 How does Alfresco “in the cloud” differ ? … with Tenant (aka. Network switching) Unlike MT core, cloud allows Tenant switching User has primary tenant Can be invited to secondary tenants We split Tenant ctx from Auth ctx (see TenantUtil) Share + APIs support tenant switching via cloud extensions for: Share / Surf WebDAV protocol SharePoint protocol Core Repo APIs – including the new “public API”

30 How does Alfresco “in the cloud” differ ? Scaling – networks, users, sites, documents, … Hosted Core MT might be “100s” of tenants Cloud supports “100s of thousands” of tenants over 30000 companies signed up (DG) Generic improvements get pushed back to core code

31 Futures

32 Health warning – this slide is speculative Driven by both Enterprise and Cloud use-cases Scaling – scale & partition tiers, as needed SharePoint Protocol Refactor of MT dynamic models (+ CMIS 1.1) More dynamic Share / platform (per-tenant overrides) Public / Private / Hybrid – MT vs ST … What would you like to see on the list ?

33 Summary

34 MT Core Fully partitioned by tenant context What’s new in Alfresco 4.x ? Activiti, Solr, … + improvements & bug fixes How does Alfresco “in the cloud” differ ? Network switching Please try it out Download latest Community 4.2 … http://wiki.alfresco.com/wiki/Multi-Tenancy

35 Thank you … Questions & Feedback ? Photo credits: http://www.stonebalancing.com/


Download ppt "MT Internals … enabling multi-tenant SaaS “in the cloud” Jan Vonka."

Similar presentations


Ads by Google