1 / 30

MT Internals (enabling multi-tenant SaaS “ in the cloud ” )

MT Internals (enabling multi-tenant SaaS “ in the cloud ” ). Jan Vonka Core Repository - Cloud / Hybrid Services. 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 ?

wtanya
Download Presentation

MT Internals (enabling multi-tenant SaaS “ in the cloud ” )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MT Internals(enabling multi-tenant SaaS “in the cloud”) • Jan Vonka • Core Repository - Cloud / Hybrid Services

  2. 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)

  3. MT Overview

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

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

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

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

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

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

  10. 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

  11. MT Core

  12. 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

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

  14. MT Core • MT implementation – create tenant • When creating a tenant, we “bootstrap” the data … • create tenant-specific stores (x5) • Live store (workspace://SpacesStore) • Version2 store • Archive store • User store • System store • add to “alf_tenant” table • Tenant Domain, Enabled/Disabled, Content Root (if not co-mingled)

  15. 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

  16. 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)

  17. MT Core • See: node-services-context.xml • <bean id="multiTNodeServiceInterceptor" class="org.alfresco.repo.tenant.MultiTNodeServiceInterceptor"> • <property name="tenantService"> • <ref bean="tenantService" /> • </property> • </bean> • <bean id="mtAwareNodeService" class="org.springframework.aop.framework.ProxyFactoryBean" > • <property name="targetName"> • <value>dbNodeService</value> • </property> • <property name="proxyInterfaces"> • <list> • <value>org.alfresco.service.cmr.repository.NodeService</value> • </list> • </property> • <property name="interceptorNames"> • <list> • <value>multiTNodeServiceInterceptor</value> • </list> • </property> • </bean> • <bean id="dbNodeService" class="org.alfresco.repo.node.db.DbNodeServiceImpl" init-method="init" > • <!-- … more here … -> • </bean>

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

  19. What’s new in Alfresco v4.x ?

  20. 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

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

  22. How does Alfresco “in the cloud” differ ?

  23. How does Alfresco “in the cloud” differ ? • MT Core 4.x except hosted on AWS and … Alfresco Cluster DB (RDS) Content (S3) Search Index (Solr)

  24. 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”

  25. 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 • eg. 15000 companies signed up in first 3 months • Generic improvements get pushed back to core code

  26. Futures

  27. Futures • 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 ?

  28. Summary

  29. Summary • 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

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

More Related