SlideShare uma empresa Scribd logo
1 de 22
1
PROVISIONING & AUTHORING
@GabrielWalt – Product Manager – Web Experience Management
2
PROVISIONING & AUTHORING
Presentation Topics
1 Authentication
• Best Practices
• Authentication Handler
• Login Module
2 Resource Provisioning
• Best Practices
• Blueprints
• From Actions & Workflows
3 Author Scalability
• Vertical
• Horizontal
3
PROVISIONING & AUTHORING
1 Authentication
• Best Practices
• Authentication Handler
• Login Module
4
PROVISIONING & AUTHORING
1 Authentication
Best Practices
Keep it Simple
• Don’t micro-manage access rights for individual users or on individual pages
• Use groups to assign access rights
• Structure content around groups
• Use Allow statements to specify group access rights
5
PROVISIONING & AUTHORING
1 Authentication
Authentication Handler
Implements the method by which visitors provide credentials.
It must implement:
• Request Credentials
• Extract Credentials
• Drop Credentials
Example of implementations:
• HTTP Basic
• Form based
• Token based
• OpenID
• SAML 2.0
6
PROVISIONING & AUTHORING
1 Authentication
Login Module
Implements the method by which the server verifies the credentials.
Steps to add Login Modules:
• OSGi fragment bundle (since 5.5)
• Edit repository.xml file & jaas.conf file
• Update your startup script
• Restart CQ
Example Login Modules:
• CRX
• LDAP
7
PROVISIONING & AUTHORING
1 Authentication
LDAP Login Module
Useful Features
• Creates the users in the repository
• Can assign users to groups from LDAP
• Has a cache (with timeout and size settings)
• Can sync all users or a list of them at once
• Callbacks can be registered on user and group creation
8
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Create a user
curl -u admin:admin -FcreateUser=
-FauthorizableId=myUserName
-Frep:password=myPassword
-Fmembership=myGroupName
-Fprofile/myPropertyName=myPropertyValue
http://localhost:4502/libs/granite/security/post/authorizables
Create a group
curl -u admin:admin –FcreateGroup=
-FauthorizableId=myGroupName
http://localhost:4502/libs/granite/security/post/authorizables
9
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Edit an existing user
$ curl -u admin:admin -Fprofile/myPropertyName=myPropertyValue
http://localhost:4502/home/users/m/myUserName.rw.html
Set a user’s group memberships (overwriting existing group memberships)
$ curl -u admin:admin -Fmembership=myGroupName1 -Fmembership=myGroupName2
http://localhost:4502/home/users/m/myUserName.rw.html
Add/Remove users to/from a group (not impacting other memberships)
$ curl -u admin:admin
-FaddMembers=myUserName1 -FaddMembers=myUserName2
-FremoveMembers=myUserName3 -FremoveMembers=myUserName4
http://localhost:4502/home/groups/m/myGroupName.rw.html
10
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Get current user’s information
$ curl -u admin:admin http://localhost:4502/libs/granite/security/currentuser.json
Delete a user or group
$ curl -u admin:admin –FdeleteAuthorizable=
http://localhost:4502/home/users/m/myUserName
11
PROVISIONING & AUTHORING
2 Resource Provisioning
• Best Practice
• Blueprints
• From Actions & Workflows
12
PROVISIONING & AUTHORING
2 Resource Provisioning
Best Practice
Keep it simple
• Keep number of templates low
• Keep number of components low
• Leverage CSS
• Build CSS-friendly markup
• Set smart classes on the pages
13
PROVISIONING & AUTHORING
2 Resource Provisioning
Blueprints
• Page structure ready to be provisioned
• Page structure can be customized (to some extent)
• A site owner can be defined (typically a group)
• Simple copy or LiveCopy is possible (for keeping pages in sync)
• A RolloutConfig can be added (to configure the components used for rendering)
14
PROVISIONING & AUTHORING
2 Resource Provisioning
From Actions & Workflows
Useful when resouces needs to be provisioned on demand.
Looking at the CQ 5.6+ New Community feature:
• Form for creating a new community
• Workflow for creating the content and setting ACL
15
PROVISIONING & AUTHORING
2 Resource Provisioning
New Community – deconstructing how it works:
1. New Community Form:
• Custom form component
• Configurable properties (livecopy & blueprint paths)
• Form action => forward.jsp
2. Forward.jsp
• Verifies values of submitted form
• Opens an admin session
• Creates a workflow node (below /etc/social/groups/)
• Adds to the workflow payload:
• form payload
• form properties
• current user id
16
PROVISIONING & AUTHORING
2 Resource Provisioning
New Community – deconstructing how it works:
3. Workflow launcher
• Has a workflow listening to node creations under /etc/social/groups/
4. “Create Community Live Copy” Workflow
• Creates a Live Copy from the master Community pages
• Activates the pages (which is probably not what you would do)
• Moves the workflow payload to the created parent page
17
PROVISIONING & AUTHORING
2 Resource Provisioning
6. “New Social Community Group” Workflow
• Creates admin group
• Adds original user to the admin group
• Sets ACL to the content for the admin group
New Community – deconstructing how it works:
5. Workflow launcher
• Has a workflow listening to page creation that has a payload
18
PROVISIONING & AUTHORING
3 Author Scalability
• Vertical
• Horizontal
19
PROVISIONING & AUTHORING
3 Author Scalability
Vertical Scalability
• Setup an Author Dispatcher
• Optimize Hardware
• Increase CPU, RAM & Disk speed
• Server load is affected by
• Image rendering & digital asset processing
• MSM Rollout
• Workflows
• Simple Editing
Sufficient for at least 50 editors editing content concurrently.
Approximation of # of logged-in users (of which only a fraction is editing concurrently!):
$ grep access.log
20
PROVISIONING & AUTHORING
3 Author Scalability
Horizontal Scalability
Sharding 1: Split different sites (or parts of sites) into separate author instances.
Publish instances are shared.
A
site 1
A
site 2
A
site 3
editing
editing
editing
P
P
P
replication
21
PROVISIONING & AUTHORING
3 Author Scalability
Horizontal Scalability
Sharding 2: Split different sites into separate author instances, but replicate to one
main author, e.g. for shared workflow processes.
A
site 1
A
site 2
A
site 3
editing
editing
editing
A
replication
P
replication
22
PROVISIONING & AUTHORING
Thank you!
@GabrielWalt – Product Manager – Web Experience Management

Mais conteúdo relacionado

Mais procurados

Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
DEEPAK KHETAWAT
 
New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0
Dima Maleev
 

Mais procurados (20)

Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
Sling Dynamic Include
Sling Dynamic IncludeSling Dynamic Include
Sling Dynamic Include
 
Plugins unplugged
Plugins unpluggedPlugins unplugged
Plugins unplugged
 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteEffectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniter
 
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIsExternalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEM
 
How we rest
How we restHow we rest
How we rest
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0
 
CQ 5.4 Deep-Dive
CQ 5.4 Deep-DiveCQ 5.4 Deep-Dive
CQ 5.4 Deep-Dive
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021 SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 

Semelhante a CQ Provisionning & Authoring

Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentry
Brock Noland
 
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.pptvdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
ssuserd4e7d6
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User Accounts
Raja Waseem Akhtar
 

Semelhante a CQ Provisionning & Authoring (20)

EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Necto 16 training 17 - administration
Necto 16 training 17 -  administrationNecto 16 training 17 -  administration
Necto 16 training 17 - administration
 
Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentry
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
 
359555069 aae-control room-usermanual
359555069 aae-control room-usermanual359555069 aae-control room-usermanual
359555069 aae-control room-usermanual
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
 
PowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal PresentationPowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal Presentation
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
Service management Dec 11
Service management Dec 11Service management Dec 11
Service management Dec 11
 
Service Management Dec 11
Service Management Dec 11Service Management Dec 11
Service Management Dec 11
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best Practices
 
Rest web services
Rest web servicesRest web services
Rest web services
 
Open shift deployment review getting ready for day 2 operations
Open shift deployment review   getting ready for day 2 operationsOpen shift deployment review   getting ready for day 2 operations
Open shift deployment review getting ready for day 2 operations
 
IAM Best Practices
IAM Best PracticesIAM Best Practices
IAM Best Practices
 
Moodle + Adobe Connect
Moodle + Adobe Connect Moodle + Adobe Connect
Moodle + Adobe Connect
 
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.pptvdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
 
Ruby on Rails Security Guide
Ruby on Rails Security GuideRuby on Rails Security Guide
Ruby on Rails Security Guide
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User Accounts
 
Enhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah EineckerEnhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah Einecker
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

CQ Provisionning & Authoring

  • 1. 1 PROVISIONING & AUTHORING @GabrielWalt – Product Manager – Web Experience Management
  • 2. 2 PROVISIONING & AUTHORING Presentation Topics 1 Authentication • Best Practices • Authentication Handler • Login Module 2 Resource Provisioning • Best Practices • Blueprints • From Actions & Workflows 3 Author Scalability • Vertical • Horizontal
  • 3. 3 PROVISIONING & AUTHORING 1 Authentication • Best Practices • Authentication Handler • Login Module
  • 4. 4 PROVISIONING & AUTHORING 1 Authentication Best Practices Keep it Simple • Don’t micro-manage access rights for individual users or on individual pages • Use groups to assign access rights • Structure content around groups • Use Allow statements to specify group access rights
  • 5. 5 PROVISIONING & AUTHORING 1 Authentication Authentication Handler Implements the method by which visitors provide credentials. It must implement: • Request Credentials • Extract Credentials • Drop Credentials Example of implementations: • HTTP Basic • Form based • Token based • OpenID • SAML 2.0
  • 6. 6 PROVISIONING & AUTHORING 1 Authentication Login Module Implements the method by which the server verifies the credentials. Steps to add Login Modules: • OSGi fragment bundle (since 5.5) • Edit repository.xml file & jaas.conf file • Update your startup script • Restart CQ Example Login Modules: • CRX • LDAP
  • 7. 7 PROVISIONING & AUTHORING 1 Authentication LDAP Login Module Useful Features • Creates the users in the repository • Can assign users to groups from LDAP • Has a cache (with timeout and size settings) • Can sync all users or a list of them at once • Callbacks can be registered on user and group creation
  • 8. 8 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Create a user curl -u admin:admin -FcreateUser= -FauthorizableId=myUserName -Frep:password=myPassword -Fmembership=myGroupName -Fprofile/myPropertyName=myPropertyValue http://localhost:4502/libs/granite/security/post/authorizables Create a group curl -u admin:admin –FcreateGroup= -FauthorizableId=myGroupName http://localhost:4502/libs/granite/security/post/authorizables
  • 9. 9 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Edit an existing user $ curl -u admin:admin -Fprofile/myPropertyName=myPropertyValue http://localhost:4502/home/users/m/myUserName.rw.html Set a user’s group memberships (overwriting existing group memberships) $ curl -u admin:admin -Fmembership=myGroupName1 -Fmembership=myGroupName2 http://localhost:4502/home/users/m/myUserName.rw.html Add/Remove users to/from a group (not impacting other memberships) $ curl -u admin:admin -FaddMembers=myUserName1 -FaddMembers=myUserName2 -FremoveMembers=myUserName3 -FremoveMembers=myUserName4 http://localhost:4502/home/groups/m/myGroupName.rw.html
  • 10. 10 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Get current user’s information $ curl -u admin:admin http://localhost:4502/libs/granite/security/currentuser.json Delete a user or group $ curl -u admin:admin –FdeleteAuthorizable= http://localhost:4502/home/users/m/myUserName
  • 11. 11 PROVISIONING & AUTHORING 2 Resource Provisioning • Best Practice • Blueprints • From Actions & Workflows
  • 12. 12 PROVISIONING & AUTHORING 2 Resource Provisioning Best Practice Keep it simple • Keep number of templates low • Keep number of components low • Leverage CSS • Build CSS-friendly markup • Set smart classes on the pages
  • 13. 13 PROVISIONING & AUTHORING 2 Resource Provisioning Blueprints • Page structure ready to be provisioned • Page structure can be customized (to some extent) • A site owner can be defined (typically a group) • Simple copy or LiveCopy is possible (for keeping pages in sync) • A RolloutConfig can be added (to configure the components used for rendering)
  • 14. 14 PROVISIONING & AUTHORING 2 Resource Provisioning From Actions & Workflows Useful when resouces needs to be provisioned on demand. Looking at the CQ 5.6+ New Community feature: • Form for creating a new community • Workflow for creating the content and setting ACL
  • 15. 15 PROVISIONING & AUTHORING 2 Resource Provisioning New Community – deconstructing how it works: 1. New Community Form: • Custom form component • Configurable properties (livecopy & blueprint paths) • Form action => forward.jsp 2. Forward.jsp • Verifies values of submitted form • Opens an admin session • Creates a workflow node (below /etc/social/groups/) • Adds to the workflow payload: • form payload • form properties • current user id
  • 16. 16 PROVISIONING & AUTHORING 2 Resource Provisioning New Community – deconstructing how it works: 3. Workflow launcher • Has a workflow listening to node creations under /etc/social/groups/ 4. “Create Community Live Copy” Workflow • Creates a Live Copy from the master Community pages • Activates the pages (which is probably not what you would do) • Moves the workflow payload to the created parent page
  • 17. 17 PROVISIONING & AUTHORING 2 Resource Provisioning 6. “New Social Community Group” Workflow • Creates admin group • Adds original user to the admin group • Sets ACL to the content for the admin group New Community – deconstructing how it works: 5. Workflow launcher • Has a workflow listening to page creation that has a payload
  • 18. 18 PROVISIONING & AUTHORING 3 Author Scalability • Vertical • Horizontal
  • 19. 19 PROVISIONING & AUTHORING 3 Author Scalability Vertical Scalability • Setup an Author Dispatcher • Optimize Hardware • Increase CPU, RAM & Disk speed • Server load is affected by • Image rendering & digital asset processing • MSM Rollout • Workflows • Simple Editing Sufficient for at least 50 editors editing content concurrently. Approximation of # of logged-in users (of which only a fraction is editing concurrently!): $ grep access.log
  • 20. 20 PROVISIONING & AUTHORING 3 Author Scalability Horizontal Scalability Sharding 1: Split different sites (or parts of sites) into separate author instances. Publish instances are shared. A site 1 A site 2 A site 3 editing editing editing P P P replication
  • 21. 21 PROVISIONING & AUTHORING 3 Author Scalability Horizontal Scalability Sharding 2: Split different sites into separate author instances, but replicate to one main author, e.g. for shared workflow processes. A site 1 A site 2 A site 3 editing editing editing A replication P replication
  • 22. 22 PROVISIONING & AUTHORING Thank you! @GabrielWalt – Product Manager – Web Experience Management