SlideShare a Scribd company logo
1 of 44
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Using Mongo with Adobe AEM Communities
Kevin Nennig | Corporate Technical Instructor
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ADOBE TRAINING
Adobe Media Optimizer
Adobe
Social
Adobe Target
Adobe Audience
Manager
Adobe Experience
Manager
Adobe
Campaign
Adobe
Analytics
Adobe
Primetime
2
Adobe Marketing Cloud Solution
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ADOBE TRAINING
Adobe Media Optimizer
Adobe
Social
Adobe Target
Adobe Audience
Manager
Adobe Experience
Manager
Adobe
Campaign
Adobe
Analytics
Adobe
Primetime
3
Adobe Marketing Cloud Solution
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Modules
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Modules
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Using Mongo in AEM
Persistence of entire
database
User generated content only
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Using Mongo in AEM
Persistence of entire
database
User generated content only
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why use Mongo for AEM Communities?
• Flexible JSON document model
• Efficient searching with indexing
• Built in replication for high availability
• Scaleable
• High concurrent writes
• Reduces operational overhead
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Lets have a social opinion!
• http://mongosv.kevinnennig.com
• AEM Community with Mongo common store (MSRP)
• “Mongo Opinions” is based upon Yahoo Answers
• Sign up and give your opinion to a few questions!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Communities 6.1
10
Publish farms are
preferred
1
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Content Replication
11
AEM Publish Farm
AEM Author
Dispatcher
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Content Replication
12
AEM Publish Farm
AEM Author
Dispatcher
• Recommended approach
• Performance
• Scalability on read access
• Failover
• What about UGC?
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Communities 6.1
13
Publish farms are
preferred
1
Replicating UGC
isn’t good enough
2
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Replication of UGC (earlier versions of AEM)
1
AEM
Publish
AEM
Publish
Comment, rating,
forum post
2 Stored in repository
and in Replication Outbox
3 Check and
fetch Outbox
content
4 Workflow-based
moderation and
spam check
AEM
Author
Replication to
all publish
Internal Network DMZ
5
5
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Replication of UGC (earlier versions of AEM)
• Everything has to go through
author
• UGC is not immediately
available everywhere
• Slow
1
AEM
Publish
AEM
Publish
Comment, rating,
forum post
2 Stored in repository
and in Replication Outbox
3 Check and
fetch Outbox
content
4 Workflow-based
moderation and
spam check
AEM
Author
Replication to
all publish
Internal Network DMZ
5
5
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Communities 6.1
16
Publish farms are
preferred
1
Replicating UGC
isn’t good enough
2
Need to be Fast and
consistent
3
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 17
The Solution:
Common Store for UGC
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Implementing the Common Store
18
• Social Resource Provider (SRP)
• An API that abstracts the storage
• Implemented three different ways
• MongoMK JCR SRP (JSRP)
• Adobe SRP (ASRP)
• Mongo SRP (MSRP)
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
JSRP: JCR Social Resource Provider
19
19
19
AEM Author
• Publish instances are clustered with
MongoMK
• Default storage mechanism
• Easy to setup UGC
• UGC is only available on publish
instances
• Publish Farm is not utilized
MongoMK
AEM
Publish 3
AEM
Publish 2
AEM
Publish 1
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ASRP: Adobe Social Resource Provider
20
AEM
Publish
Farm
Adobe Social
Cloud
AEM Author
• Recommended for managed
UGC
• No setup needed
• Integrates with Adobe Social
Analytics Pipeline and
Moderation
• Fast
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
MSRP: Mongo Social Resource Provider
21
AEM Author
AEM
Publish
Farm
• Recommended for on prem UGC
• Required to setup a mongo
replset and solr cloud
• Fast and scaleable
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What’s stored in the Common Store?
22
• Contextual
• Comments
• Reviews
• Ratings
• Votes/Likes
Adobe Social Cloud
MongoMK
• Standalone
• Forums
• Calendars
• File Sharing
• Activities
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What isn’t stored in the Common Store?
23
• External user accounts
• External groups
• Community website
Adobe Social Cloud
MongoMK
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What isn’t stored in the Common Store?
24
• External user accounts
• External groups
• Community website
Adobe Social Cloud
MongoMK
Replicated among publish instances
but not author
Replicated from the author instance
to publish farm
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Comparing SRP
25
Adobe
Social
Cloud
MongoMK
Social Resource
Provider
JSRP ASRP MSRP
Microkernel MongoMK TarMK TarMK
Site Content
Repository
Publish Server Publish Server Publish Server
UGC Repository Publish Server Adobe Social
Cloud
MongoDB
When it should be Default storage. Not recommended
for production, only development.
Customers using the
ASC or who do not
Requirements of
data being on prem
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Dispatcher
26
UGC is dynamic content.
Can it work with Dispatcher?
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Dispatcher
27
AEM Publish Farm
AEM Author
Dispatcher
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Dispatcher
28
AEM Publish Farm Dispatcher
User
info
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance increase using Mongo SRP
29
 “Mixed transactions” test case:
 Based on customer data
 Reverse Replication
 JSP components (deprecated in 6.0)
 CRX2
 2 node active/passive cluster
 5 transactions per second
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance increase using Mongo SRP
30
 “Mixed transactions” test case:
 Based on customer data
 Reverse Replication
 JSP components (deprecated in 6.0)
 CRX2
 2 node active/passive cluster
 5 transactions per second
 Mongo SRP
 SCF components
 MSRP
 4 node farm
 Dispatcher
 100 tps per instance
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 31
Setting up MSRP
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
MSRP: Mongo Social Resource Provider
32
AEM Author
27019
2701827017
aem
AEM Publish Farm
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
MSRP: Mongo Social Resource Provider
33
AEM Author
27019
2701827017
aem
Database: msrp-communities
Collection: collection1
AEM Publish Farm
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
34
 Start Mongo Servers
mongoServer1$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath
db --replSet aem --port 27017
mongoServer2$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath
db --replSet aem --port 27018
mongoServer3$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath
db --replSet aem --port 27019
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
35
 Create the Replica Set
 Connect to the mongodb you want to be Primary
$ mongo nennig-osx.local:27017
>
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
36
 Initialize the Replica Set
> rs.initiate()
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "nennig-osx.local:27017",
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
aem:PRIMARY> rs.conf()
{
"_id" : "aem",
"members" : [
{
"_id" : 0,
"host" : "nennig-osx.local:27017"
}
]
}
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
37
 Initialize the Replica Set
> rs.initiate()
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "nennig-osx.local:27017",
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
aem:PRIMARY> rs.conf()
{
"_id" : "aem",
"members" : [
{
"_id" : 0,
"host" : "nennig-osx.local:27017"
}
]
}
You can also use:
rs.status()
This will show the current status of each server
including who’s PRIMARY/SECONDARY
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
38
 Add members
aem:PRIMARY> rs.add(“nennig-osx.local:27018”)
{ "ok" : 1 }
aem:PRIMARY> rs.add(“nennig-osx.local:27019”)
{ "ok" : 1 }
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starting a replset Mongo
39
aem:PRIMARY> rs.conf()
{
"_id" : "aem",
"version" : 3,
"members" : [
{
"_id" : 0,
"host" : "nennig-osx.local:27017"
},
{
"_id" : 1,
"host" : "nennig-osx.local:27018"
},
{
"_id" : 2,
"host" : "nennig-osx.local:27019"
}
]
}
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Start the Solr Server
40
 Download config files from the AEM server
 Start the Solr Server with the conf files on port 8983
solrServer$ java –jar start.jar
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Configure the Social Resource Provider on AEM
41
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 42
Demo
http://mongosv.kevinnennig.com
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 43
Q&AKevin Nennig
nennig@adobe.com
Slideshare: http://www.slideshare.net/KevinNennig/aem-communities-61-mongosv-15
Community Topologies: https://docs.adobe.com/docs/en/aem/6-1/deploy/communities/topologies.html
MSRP: https://docs.adobe.com/docs/en/aem/6-1/administer/communities/srp/msrp.html
http://mongosv.kevinnennig.com
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities

More Related Content

What's hot

Rational Team Concert Process Customization - What you can and cannot do
Rational Team Concert Process Customization - What you can and cannot doRational Team Concert Process Customization - What you can and cannot do
Rational Team Concert Process Customization - What you can and cannot doRalph Schoon
 
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...Amazon Web Services
 
Ozone: An Object Store in HDFS
Ozone: An Object Store in HDFSOzone: An Object Store in HDFS
Ozone: An Object Store in HDFSDataWorks Summit
 
Top Open Source Licenses Explained
Top Open Source Licenses ExplainedTop Open Source Licenses Explained
Top Open Source Licenses ExplainedWhiteSource
 
Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning MuleSoft
 
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...Amazon Web Services Korea
 
Incident Response on AWS - A Practical Look.pdf
Incident Response on AWS - A Practical Look.pdfIncident Response on AWS - A Practical Look.pdf
Incident Response on AWS - A Practical Look.pdfAmazon Web Services
 
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformApache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformrhatr
 
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideSQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideLars Platzdasch
 
ABD317_Building Your First Big Data Application on AWS - ABD317
ABD317_Building Your First Big Data Application on AWS - ABD317ABD317_Building Your First Big Data Application on AWS - ABD317
ABD317_Building Your First Big Data Application on AWS - ABD317Amazon Web Services
 
Azure Service Bus Queue API for Scala
Azure Service Bus Queue API for ScalaAzure Service Bus Queue API for Scala
Azure Service Bus Queue API for ScalaBraja Krishna Das
 
223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to Containers223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to ContainersTrevor Dolby
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...Amazon Web Services Korea
 
SMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaSMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaAmazon Web Services
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsShanky Gupta
 
Listening sample task form completion
Listening sample task   form completionListening sample task   form completion
Listening sample task form completionNguyễn Trung
 
Best Practices for Encrypting Data on AWS
Best Practices for Encrypting Data on AWSBest Practices for Encrypting Data on AWS
Best Practices for Encrypting Data on AWSAmazon Web Services
 

What's hot (20)

Rational Team Concert Process Customization - What you can and cannot do
Rational Team Concert Process Customization - What you can and cannot doRational Team Concert Process Customization - What you can and cannot do
Rational Team Concert Process Customization - What you can and cannot do
 
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...
Introducing AWS DataSync - Simplify, automate, and accelerate online data tra...
 
Ozone: An Object Store in HDFS
Ozone: An Object Store in HDFSOzone: An Object Store in HDFS
Ozone: An Object Store in HDFS
 
Top Open Source Licenses Explained
Top Open Source Licenses ExplainedTop Open Source Licenses Explained
Top Open Source Licenses Explained
 
Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning
 
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...
2019 의료IT의 미래 : 서울대학병원 정밀의학 데이터 플랫폼 도입 사례 - 김경환 실장, 서울대학병원 / 전제민 교육부문 이사, AWS...
 
BUDDY White Paper
BUDDY White PaperBUDDY White Paper
BUDDY White Paper
 
Incident Response on AWS - A Practical Look.pdf
Incident Response on AWS - A Practical Look.pdfIncident Response on AWS - A Practical Look.pdf
Incident Response on AWS - A Practical Look.pdf
 
Get to Know AtoM's Codebase
Get to Know AtoM's CodebaseGet to Know AtoM's Codebase
Get to Know AtoM's Codebase
 
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformApache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
 
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideSQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
 
ABD317_Building Your First Big Data Application on AWS - ABD317
ABD317_Building Your First Big Data Application on AWS - ABD317ABD317_Building Your First Big Data Application on AWS - ABD317
ABD317_Building Your First Big Data Application on AWS - ABD317
 
Azure Service Bus Queue API for Scala
Azure Service Bus Queue API for ScalaAzure Service Bus Queue API for Scala
Azure Service Bus Queue API for Scala
 
223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to Containers223: Modernization and Migrating from the ESB to Containers
223: Modernization and Migrating from the ESB to Containers
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
 
SMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS LambdaSMC303 Real-time Data Processing Using AWS Lambda
SMC303 Real-time Data Processing Using AWS Lambda
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and Permissions
 
Deep Dive on AWS CloudFormation
Deep Dive on AWS CloudFormationDeep Dive on AWS CloudFormation
Deep Dive on AWS CloudFormation
 
Listening sample task form completion
Listening sample task   form completionListening sample task   form completion
Listening sample task form completion
 
Best Practices for Encrypting Data on AWS
Best Practices for Encrypting Data on AWSBest Practices for Encrypting Data on AWS
Best Practices for Encrypting Data on AWS
 

Viewers also liked

Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB MongoDB
 
Introducing Mongo DB and setting up Adobe AEM6 with mongo
Introducing Mongo DB and setting up Adobe AEM6 with mongoIntroducing Mongo DB and setting up Adobe AEM6 with mongo
Introducing Mongo DB and setting up Adobe AEM6 with mongoYash Mody
 
AEM Communities 6.1 - MongoSV '15
AEM Communities 6.1 - MongoSV '15AEM Communities 6.1 - MongoSV '15
AEM Communities 6.1 - MongoSV '15Kevin Nennig
 
AEM WITH MONGODB
AEM WITH MONGODBAEM WITH MONGODB
AEM WITH MONGODBNate Nelson
 
Data replication in Sling
Data replication in SlingData replication in Sling
Data replication in SlingTommaso Teofili
 
Barrett_Rubin essay
Barrett_Rubin essayBarrett_Rubin essay
Barrett_Rubin essayBill Barrett
 
Barboza rizo tarea_secion6
Barboza rizo tarea_secion6Barboza rizo tarea_secion6
Barboza rizo tarea_secion6dianahbetzabehb
 
Anti Corruption
Anti CorruptionAnti Corruption
Anti CorruptionMayowa Oni
 
Maximise Your Content Marketing Investment
Maximise Your Content Marketing InvestmentMaximise Your Content Marketing Investment
Maximise Your Content Marketing InvestmentLEWIS
 
Diabetes and its oral complication
Diabetes and its oral complicationDiabetes and its oral complication
Diabetes and its oral complicationDr. Monali Prajapati
 
Ht media found its beginning in 1924 when its flagship newspaper
Ht media found its beginning in 1924 when its flagship newspaperHt media found its beginning in 1924 when its flagship newspaper
Ht media found its beginning in 1924 when its flagship newspaperKratika Jain
 
Deepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jspDeepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jspDEEPAK KHETAWAT
 
Adobe Audience Manager Readiness Playbook
Adobe Audience Manager Readiness PlaybookAdobe Audience Manager Readiness Playbook
Adobe Audience Manager Readiness PlaybookChristophe Lauer
 
Introduction to Fraud
Introduction to FraudIntroduction to Fraud
Introduction to FraudMayowa Oni
 
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014Adobe DMP - Générer de l'engagement - eCommerce Paris 2014
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014Christophe Lauer
 
ConnectIn Italia 2016: Keynote speech
ConnectIn Italia 2016: Keynote speechConnectIn Italia 2016: Keynote speech
ConnectIn Italia 2016: Keynote speechLinkedIn Italia
 

Viewers also liked (19)

Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Introducing Mongo DB and setting up Adobe AEM6 with mongo
Introducing Mongo DB and setting up Adobe AEM6 with mongoIntroducing Mongo DB and setting up Adobe AEM6 with mongo
Introducing Mongo DB and setting up Adobe AEM6 with mongo
 
AEM Communities 6.1 - MongoSV '15
AEM Communities 6.1 - MongoSV '15AEM Communities 6.1 - MongoSV '15
AEM Communities 6.1 - MongoSV '15
 
AEM WITH MONGODB
AEM WITH MONGODBAEM WITH MONGODB
AEM WITH MONGODB
 
Data replication in Sling
Data replication in SlingData replication in Sling
Data replication in Sling
 
Resume
ResumeResume
Resume
 
Barrett_Rubin essay
Barrett_Rubin essayBarrett_Rubin essay
Barrett_Rubin essay
 
Barboza rizo tarea_secion6
Barboza rizo tarea_secion6Barboza rizo tarea_secion6
Barboza rizo tarea_secion6
 
Anti Corruption
Anti CorruptionAnti Corruption
Anti Corruption
 
A fazer
A fazerA fazer
A fazer
 
Maximise Your Content Marketing Investment
Maximise Your Content Marketing InvestmentMaximise Your Content Marketing Investment
Maximise Your Content Marketing Investment
 
Aem best practices
Aem best practicesAem best practices
Aem best practices
 
Diabetes and its oral complication
Diabetes and its oral complicationDiabetes and its oral complication
Diabetes and its oral complication
 
Ht media found its beginning in 1924 when its flagship newspaper
Ht media found its beginning in 1924 when its flagship newspaperHt media found its beginning in 1924 when its flagship newspaper
Ht media found its beginning in 1924 when its flagship newspaper
 
Deepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jspDeepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jsp
 
Adobe Audience Manager Readiness Playbook
Adobe Audience Manager Readiness PlaybookAdobe Audience Manager Readiness Playbook
Adobe Audience Manager Readiness Playbook
 
Introduction to Fraud
Introduction to FraudIntroduction to Fraud
Introduction to Fraud
 
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014Adobe DMP - Générer de l'engagement - eCommerce Paris 2014
Adobe DMP - Générer de l'engagement - eCommerce Paris 2014
 
ConnectIn Italia 2016: Keynote speech
ConnectIn Italia 2016: Keynote speechConnectIn Italia 2016: Keynote speech
ConnectIn Italia 2016: Keynote speech
 

Similar to MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities

Aem hub oak 0.2 full
Aem hub oak 0.2 fullAem hub oak 0.2 full
Aem hub oak 0.2 fullMichael Marth
 
New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthNew Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthAEM HUB
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016AdobeMarketingCloud
 
AEM - Key Learning from Escalations
AEM - Key Learning from EscalationsAEM - Key Learning from Escalations
AEM - Key Learning from EscalationsKanika Gera
 
Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for DevelopersBuilding Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for Developersarumsey
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdam Pazik
 
AEM target Integration
AEM target IntegrationAEM target Integration
AEM target IntegrationKanika Gera
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringMichael Dawson
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features OverviewSoftware AG
 
AEM DataLayer IMMERSE 2017 Presentation by Dan Klco
AEM DataLayer IMMERSE 2017 Presentation by Dan KlcoAEM DataLayer IMMERSE 2017 Presentation by Dan Klco
AEM DataLayer IMMERSE 2017 Presentation by Dan KlcoDaniel Klco
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon Web Services
 
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing CloudIMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing CloudAdobeMarketingCloud
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon Web Services
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon Web Services
 
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...AEM HUB
 

Similar to MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities (20)

Aem hub oak 0.2 full
Aem hub oak 0.2 fullAem hub oak 0.2 full
Aem hub oak 0.2 full
 
S903 palla
S903 pallaS903 palla
S903 palla
 
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Cont...EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
 
AEM Evernote Sync
AEM Evernote SyncAEM Evernote Sync
AEM Evernote Sync
 
New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael MarthNew Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael Marth
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016
 
AEM - Key Learning from Escalations
AEM - Key Learning from EscalationsAEM - Key Learning from Escalations
AEM - Key Learning from Escalations
 
Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for DevelopersBuilding Mobile Apps: A PhoneGap Enterprise Introduction for Developers
Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud Deployments
 
AEM target Integration
AEM target IntegrationAEM target Integration
AEM target Integration
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features Overview
 
What's new in designer
What's new in designerWhat's new in designer
What's new in designer
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
AEM DataLayer IMMERSE 2017 Presentation by Dan Klco
AEM DataLayer IMMERSE 2017 Presentation by Dan KlcoAEM DataLayer IMMERSE 2017 Presentation by Dan Klco
AEM DataLayer IMMERSE 2017 Presentation by Dan Klco
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
 
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing CloudIMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
 
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities

  • 1. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Using Mongo with Adobe AEM Communities Kevin Nennig | Corporate Technical Instructor
  • 2. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. ADOBE TRAINING Adobe Media Optimizer Adobe Social Adobe Target Adobe Audience Manager Adobe Experience Manager Adobe Campaign Adobe Analytics Adobe Primetime 2 Adobe Marketing Cloud Solution
  • 3. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. ADOBE TRAINING Adobe Media Optimizer Adobe Social Adobe Target Adobe Audience Manager Adobe Experience Manager Adobe Campaign Adobe Analytics Adobe Primetime 3 Adobe Marketing Cloud Solution
  • 4. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM Modules
  • 5. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM Modules
  • 6. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Using Mongo in AEM Persistence of entire database User generated content only
  • 7. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Using Mongo in AEM Persistence of entire database User generated content only
  • 8. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Why use Mongo for AEM Communities? • Flexible JSON document model • Efficient searching with indexing • Built in replication for high availability • Scaleable • High concurrent writes • Reduces operational overhead
  • 9. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Lets have a social opinion! • http://mongosv.kevinnennig.com • AEM Community with Mongo common store (MSRP) • “Mongo Opinions” is based upon Yahoo Answers • Sign up and give your opinion to a few questions!
  • 10. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Communities 6.1 10 Publish farms are preferred 1 http://mongosv.kevinnennig.com
  • 11. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Content Replication 11 AEM Publish Farm AEM Author Dispatcher
  • 12. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Content Replication 12 AEM Publish Farm AEM Author Dispatcher • Recommended approach • Performance • Scalability on read access • Failover • What about UGC?
  • 13. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Communities 6.1 13 Publish farms are preferred 1 Replicating UGC isn’t good enough 2 http://mongosv.kevinnennig.com
  • 14. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM Replication of UGC (earlier versions of AEM) 1 AEM Publish AEM Publish Comment, rating, forum post 2 Stored in repository and in Replication Outbox 3 Check and fetch Outbox content 4 Workflow-based moderation and spam check AEM Author Replication to all publish Internal Network DMZ 5 5
  • 15. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM Replication of UGC (earlier versions of AEM) • Everything has to go through author • UGC is not immediately available everywhere • Slow 1 AEM Publish AEM Publish Comment, rating, forum post 2 Stored in repository and in Replication Outbox 3 Check and fetch Outbox content 4 Workflow-based moderation and spam check AEM Author Replication to all publish Internal Network DMZ 5 5
  • 16. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Communities 6.1 16 Publish farms are preferred 1 Replicating UGC isn’t good enough 2 Need to be Fast and consistent 3 http://mongosv.kevinnennig.com
  • 17. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 17 The Solution: Common Store for UGC http://mongosv.kevinnennig.com
  • 18. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Implementing the Common Store 18 • Social Resource Provider (SRP) • An API that abstracts the storage • Implemented three different ways • MongoMK JCR SRP (JSRP) • Adobe SRP (ASRP) • Mongo SRP (MSRP)
  • 19. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. JSRP: JCR Social Resource Provider 19 19 19 AEM Author • Publish instances are clustered with MongoMK • Default storage mechanism • Easy to setup UGC • UGC is only available on publish instances • Publish Farm is not utilized MongoMK AEM Publish 3 AEM Publish 2 AEM Publish 1
  • 20. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. ASRP: Adobe Social Resource Provider 20 AEM Publish Farm Adobe Social Cloud AEM Author • Recommended for managed UGC • No setup needed • Integrates with Adobe Social Analytics Pipeline and Moderation • Fast
  • 21. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. MSRP: Mongo Social Resource Provider 21 AEM Author AEM Publish Farm • Recommended for on prem UGC • Required to setup a mongo replset and solr cloud • Fast and scaleable
  • 22. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. What’s stored in the Common Store? 22 • Contextual • Comments • Reviews • Ratings • Votes/Likes Adobe Social Cloud MongoMK • Standalone • Forums • Calendars • File Sharing • Activities
  • 23. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. What isn’t stored in the Common Store? 23 • External user accounts • External groups • Community website Adobe Social Cloud MongoMK
  • 24. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. What isn’t stored in the Common Store? 24 • External user accounts • External groups • Community website Adobe Social Cloud MongoMK Replicated among publish instances but not author Replicated from the author instance to publish farm
  • 25. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Comparing SRP 25 Adobe Social Cloud MongoMK Social Resource Provider JSRP ASRP MSRP Microkernel MongoMK TarMK TarMK Site Content Repository Publish Server Publish Server Publish Server UGC Repository Publish Server Adobe Social Cloud MongoDB When it should be Default storage. Not recommended for production, only development. Customers using the ASC or who do not Requirements of data being on prem
  • 26. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Dispatcher 26 UGC is dynamic content. Can it work with Dispatcher? http://mongosv.kevinnennig.com
  • 27. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Dispatcher 27 AEM Publish Farm AEM Author Dispatcher
  • 28. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Dispatcher 28 AEM Publish Farm Dispatcher User info
  • 29. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance increase using Mongo SRP 29  “Mixed transactions” test case:  Based on customer data  Reverse Replication  JSP components (deprecated in 6.0)  CRX2  2 node active/passive cluster  5 transactions per second
  • 30. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance increase using Mongo SRP 30  “Mixed transactions” test case:  Based on customer data  Reverse Replication  JSP components (deprecated in 6.0)  CRX2  2 node active/passive cluster  5 transactions per second  Mongo SRP  SCF components  MSRP  4 node farm  Dispatcher  100 tps per instance
  • 31. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 31 Setting up MSRP http://mongosv.kevinnennig.com
  • 32. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. MSRP: Mongo Social Resource Provider 32 AEM Author 27019 2701827017 aem AEM Publish Farm
  • 33. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. MSRP: Mongo Social Resource Provider 33 AEM Author 27019 2701827017 aem Database: msrp-communities Collection: collection1 AEM Publish Farm
  • 34. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 34  Start Mongo Servers mongoServer1$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath db --replSet aem --port 27017 mongoServer2$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath db --replSet aem --port 27018 mongoServer3$ mongod --bind_ip nennig-osx.local --logpath logs/mongo.log --dbpath db --replSet aem --port 27019
  • 35. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 35  Create the Replica Set  Connect to the mongodb you want to be Primary $ mongo nennig-osx.local:27017 >
  • 36. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 36  Initialize the Replica Set > rs.initiate() { "info2" : "no configuration explicitly specified -- making one", "me" : "nennig-osx.local:27017", "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 } aem:PRIMARY> rs.conf() { "_id" : "aem", "members" : [ { "_id" : 0, "host" : "nennig-osx.local:27017" } ] }
  • 37. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 37  Initialize the Replica Set > rs.initiate() { "info2" : "no configuration explicitly specified -- making one", "me" : "nennig-osx.local:27017", "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 } aem:PRIMARY> rs.conf() { "_id" : "aem", "members" : [ { "_id" : 0, "host" : "nennig-osx.local:27017" } ] } You can also use: rs.status() This will show the current status of each server including who’s PRIMARY/SECONDARY
  • 38. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 38  Add members aem:PRIMARY> rs.add(“nennig-osx.local:27018”) { "ok" : 1 } aem:PRIMARY> rs.add(“nennig-osx.local:27019”) { "ok" : 1 }
  • 39. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Starting a replset Mongo 39 aem:PRIMARY> rs.conf() { "_id" : "aem", "version" : 3, "members" : [ { "_id" : 0, "host" : "nennig-osx.local:27017" }, { "_id" : 1, "host" : "nennig-osx.local:27018" }, { "_id" : 2, "host" : "nennig-osx.local:27019" } ] }
  • 40. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Start the Solr Server 40  Download config files from the AEM server  Start the Solr Server with the conf files on port 8983 solrServer$ java –jar start.jar
  • 41. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Configure the Social Resource Provider on AEM 41
  • 42. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 42 Demo http://mongosv.kevinnennig.com
  • 43. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 43 Q&AKevin Nennig nennig@adobe.com Slideshare: http://www.slideshare.net/KevinNennig/aem-communities-61-mongosv-15 Community Topologies: https://docs.adobe.com/docs/en/aem/6-1/deploy/communities/topologies.html MSRP: https://docs.adobe.com/docs/en/aem/6-1/administer/communities/srp/msrp.html http://mongosv.kevinnennig.com

Editor's Notes

  1. Hello everyone and welcome to this presentation on using Mongo with AEM Communities My name is Kevin Nennig and I’m a Corporate Technical Instructor for Adobe. I’ve been working with Adobe Experience Manager for almost 2 years My job gives me a lot of opportunities to work with new companies looking to implement our AEM. One of the topics a lot of clients want to hear about is the Communities feature of AEM The Current release of AEM is 6.1 and with the release comes an updated Communities Module. In this communities module, 2 out of the 3 implementations use Mongo as the data storage mechanism. In this presentation we will discuss each of these options and understand why Mongo is a good solution for AEM.
  2. The Adobe Marketing Cloud is a service for digital marketers, advertisers, and publishers that works in conjunction with the Adobe Creative Cloud. The Adobe Marketing Cloud consists of these capabilities : 1. A scalable, secure and open platform to host data & content 2. A multi-channel analytics and decision capability 3. Optimization to increase visitor acquisition, improve conversion and maximize the value of audiences These capabilities are enabled through the following 8 solutions… (name and describe them) The focus of today’s course is on _______.
  3. AEM is the main focus of this presentation. AEM is a comprehensive content management system for building websites, mobile apps, and forms. It makes it easier to manage marketing content and digital assets
  4. Within AEM there are 5 main modules – Sites, Assets, Apps, Forms, Communities.
  5. This presentation is focused on AEM communities 6.1 It allows up to build thriving communities and inspire engaging conversations across audiences from customers to employees to partners.
  6. Within AEM, there are two different scenarios to use Mongo You can use Mongo at the Microkernel layer to persist all of AEM’s DB to Mongo OR you can use Mongo to store only User Generated Content for a company’s online communities
  7. Within AEM, there are two different scenarios to use Mongo You can use Mongo at the Microkernel layer to persist all of AEM’s DB to Mongo OR you can use Mongo to store only User Generated Content for a company’s online communities
  8. The are a few reasons why Mongo works well with storing data for AEM. First off, flexible JSON document model – this is actually what AEM’s persistence microkernel layer is based upon efficient searching with indexing - Compared to other noSQL solutions Built in replication for high availability – Mongo uses replica sets which allow the primary MongoDB to replicate to secondaries for redundancy of the data layer Scaleable – Mongo allows for both horizontal and vertical scaling High concurrent writes - which is good for high traffic on a community site reduces operational overhead — AEM doesn’t have to worry about persistence
  9. Anyone in the audience that wants to participate can go to this website This Communities website uses MSRP or Mongo Social resource provider to store all user generated content Feel free to answer
  10. When we start to talk about AEM Communities, there are 3 things that we need to consider, 1 – This allows for content to be served up in the fastest manner possible.
  11. This is a basic AEM deployment. Your author server is your internal server where you manage all of your content. The publish farm is your publish instances that hold published content of your website. Since AEM builds your pages dynamically for every request, there is a static webserver we call a dispatcher in from of your publish farm The dispatcher caches your static content so that your site is faster
  12. This is a basic AEM deployment. Your author server is your internal server where you manage all of your content. The publish farm is your publish instances that hold published content of your website. Since AEM builds your pages dynamically for every request, there is a static webserver we call a dispatcher in from of your publish farm The dispatcher caches your static content so that your site is faster
  13. The second idea that was considered was replicating content wasn’t good enough for last scale solutions 2 – replicating content backwards allows for publish instances to be out of sync for short periods of time
  14. This concept allow transfer of content from the publish server to the author for review, moderation, and spam check without opening the firewall from the DMZ to the author server.
  15. This concept allow transfer of content from the publish server to the author for review, moderation, and spam check without opening the firewall from the DMZ to the author server.
  16. The third idea is that read/write had to be fast for a large scale of transitions and there cannot be data collisions 3 – When dealing with large community site that have hundreds of transactions per second
  17. Create a common store for user generated content. Where all UGC created is stored in a central repository and is only accessed on request. Where the website itself is still on the publish instance and only the UGC on the current page is needed for rendering
  18. The Social Resource provider is the solution for the common store This allows for us to have multiple solutions to store UGC depending on a company’s requirements JSRP - uses clustering to have a common database among publish instances where all content can be stored ASRP – Managed and hosted by Adobe MSRP – A mongo replset is used for on prem deployment
  19. JCR Social Resource Provider. New in 6.1 Default configuration for Communities UGC persisted in publisher JCR repository. Cluster assumed if multiple publishers. Suitable for customers who can run a publish cluster on MongoMK or RdbmsMK UGC not available on author Uses Oak indices. Querying necessary for communities. Sort by date, helpfulness, number of votes. Can’t avoid queries. All of our SRPs have good/flexible querying No more bucketing. With Oak, buckets aren’t necessary, and it made indexing simpler without them, so we are eliminating them. Migration required for all SRPs Open Source tool will be available to export and import to *SRP
  20. The Adobe Social Resource Provider. Publishers can be a farm. Point all of your instances, including author, at Adobe Social Cloud. All instances look at same copy of data. Shipped in AEM 6.0 UGC is persisted via a cloud service provided and supported by Adobe Integrates with the Adobe Social Analytics Pipeline and Moderation No need to invest in infrastructure to hold UGC
  21. The Mongo Social Resource Provider or MSRP. New in 6.1. A whole lot like the last picture, except UGC is persisted in a local and dedicated MongoDB and Solr. Suitable for a large volume of UGC Compatible with on-prem publish farm topologies The external solr server is used to create non-biased indexers between the publish instances and the Mongo UGC cloud
  22. Only the actualy UGC is stored in the Common store. Things such as:
  23. The other aspects of a community would be users, groups, and the actual site itself. Non of these are stored in the UGC,
  24. External users and groups should not be available on the internal author server And therefore are only replicated on the publish servers so users can gain the proper rights to the community site on any publish server The Community site itself is managed on the author instance and then replicated to the publish farm just like any normal piece of content
  25. External users and groups should not be available on the internal author server And therefore are only replicated on the publish servers so users can gain the proper rights to the community site on any publish server The Community site itself is managed on the author instance and then replicated to the publish farm just like any normal piece of content ASC – Adobe Social Cloud
  26. The next question concerning UGC is the dispatcher….
  27. If we recall, the dispatcher is used to cache static content from our dynamic AEM instances. Which means that UGC specific information can’t be stored on the dispatcher, which means community pages pose a problem
  28. If we recall, the dispatcher is used to cache static content from our dynamic AEM instances. Which means that UGC specific information can’t be stored on the dispatcher, which means community pages pose a problem
  29. Utilizing Mongo as the common store, we can see how much performance increases for User Generated content As a benchmark we found that reverse replication allows for about 5 transactions per second, no matter how many active nodes Where when we use Mongo SRP, we find that we can massively increase transactions by 20x per instance. Which means transactions are linearly scaleable by the amount of AEM publish nodes in the front end.
  30. Utilizing Mongo as the common store, we can see how much performance increases for User Generated content As a benchmark we found that reverse replication allows for about 5 transactions per second, no matter how many active nodes Where when we use Mongo SRP, we find that we can massively increase transactions by 20x per instance. Which means transactions are linearly scaleable by the amount of AEM publish nodes in the front end.
  31. If a customer wants to utilize the fastness of a publish farm and wants to have an on prem solution, MSRP is the best solution for the UGC. Lets see how we can set one up
  32. The collection used for UGC is called msrp-communities, which can be configured. The solr cloud I’m using the default collection collection1 for indexing
  33. The collection used for UGC is called msrp-communities, which can be configured. The solr cloud I’m using the default collection collection1 for indexing
  34. We first need to start 3 separate mongo instances listening for an aem replica set
  35. Then we need to connect to the mongo instance we want to become our primary
  36. We then can initialize our replica set and check to make sure it’s configured correctly Once the replica set has been initialized your prompt will change to show the current replica set and the current servers state
  37. We then can initialize our replica set and check to make sure it’s configured correctly Once the replica set has been initialized your prompt will change to show the current replica set and the current servers state
  38. Once our replica set, aem, is setup we can add the other two mongo instances as members. Remember the least amount of configuration for a replica set requires 3 mongo members
  39. We then want to check the configurations to make sure all 3 mongo instances are added to the replset
  40. There are 2 Solr config files that need to be added to the solr configuration before starting These can be obtained from any AEM instance in the communities section Once copied, you can start the solr server on the default port 8983
  41. Once the mongo replica set and solr server is up and running, The SRP configuration needs to be setup on every AEM server that will be using the UGC We can see an example of that configuration here Notice that we are going to persist UGC to a collection called msrp-communities
  42. Let’s take a moment to see a demo in action!
  43. Let’s take a moment to see a demo in action!