SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
APACHE SLING & FRIENDS TECH MEETUP
BERLIN, 26-28 SEPTEMBER 2016
Can we run the whole Web on Apache Sling?
Bertrand Delacretaz & Chetan Mehrotra
@bdelacretaz - @chetanmeh
Sling committers and PMC members
CQ/AEM core team members, Adobe
slides revision 2016-09-26
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
The Whole Web ??2
Are you guys crazy?

(yes, but not that much)
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 3
Where’s Sling going? 

from
SERVERSto
SYSTEMS
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 4
httpd
mod_lua script
mod_proxy
haproxy
etcd -> config
MongoDB
processor selector
more pools…
more pools…
fileserver pool
slingshot pool
default pool
more pools…
etcd
monitoring / metrics
REDDR - Resource Driven Dynamic Routing

Sling resource/script resolution drives routing
1 2
3
4
1
2
3
4
Request to Sling Processor Selector
Response with a single word: fileserver
+Header: Sling-Processor-Role:fileserver
haproxy routes to fileserver pool
Rebuild haproxy config on changes
Sling
instances
announce
themselves
to etcd:

-IP address

-Port

-Role



Pools are
actually
haproxy
“backends”
fun!
client

request
port 80
port 81
Sling-Processor-Role
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 5
REDDRREsource-Driven Dynamic Routing
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 6
REDDR routing to fileserver instances pool
httpd
mod_lua script
mod_proxy
haproxy
etcd -> config
processor selector
fileserver pool1 2
3
4
0
1
2
3
4
Request to Sling Processor Selector
Response with a single word: fileserver
+Header: Sling-Processor-Role:fileserver
haproxy routes to fileserver pool
0 Client request
.routing script engine +

select based on resource
type and parent types.

Default servlets and 

scripts disabled.
Select backend pool based
on Sling-Processor-Role

header, using haproxy “acl”
generated from etcd
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 7
Dynamic Registration of Sling Instances

regenerate haproxy config based on etc data
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 8
haproxy
etcd -> config
more pools…
more pools…
fileserver pool
slingshot pool
default pool
more pools…
etcd
haproxy config is rebuilt via event-driven
confd + reload.sh script
Sling instances announce themselves to etcd:

-IP address

-Port

-Role
Dynamic wiring of Sling instances
in the haproxy pools
1
2
1
2
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 9
Building customised Sling Docker images

with just a provisioning model + trivial Dockerfile
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 10
base/pom.xml
base/src/main/docker/Dockerfile
base/src/main/docker/slingroot/announce.sh
base/src/main/docker/slingroot/start.sh
base/src/main/docker/slingroot/wait-for-it.sh
default-processor/pom.xml
default-processor/src/main/docker/Dockerfile
default-processor/src/main/provisioning/composum-browser.txt
default-processor/src/main/provisioning/default-processor.txt
default-processor/src/main/provisioning/launchpad.txt
default-processor/src/main/provisioning/…
Base and default-processor images
FROM ch.x42.at16.base
COPY ${project.build.finalName}.jar /opt/sling/launchpad.jar
Dockerfile for default-processor
Custom
Sling Docker im
ages
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 11
DYNAMIC CLUSTER DEMO
A Big Sling Cluster…on my laptop
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 12
httpd
mod_lua script
mod_proxy
haproxy
etcd -> config
MongoDB
processor selector
more pools…
more pools…
fileserver pool
slingshot pool
default pool
more pools…
etcd
monitoring / metrics
REDDR - Resource Driven Dynamic Routing

Sling resource/script resolution drives routing
1 2
3
4
1
2
3
4
Request to Sling Processor Selector
Response with a single word: fileserver
+Header: Sling-Processor-Role:fileserver
haproxy routes to fileserver pool
Rebuild haproxy config on changes
Sling
instances
announce
themselves
to etcd:

-IP address

-Port

-Role



Pools are
actually
haproxy
“backends”
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 13
“Background Worker” Sling instance
minimal, disposable, focused
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Asset worker pool
default pool
MongoDB
ActiveMQ
5
2
1
3
4
1
2
3
4
Request to Sling Frontend server
Write to NodeStore
Add job to message queue
Pick up of job by one of the worker
5 Write back of Job result
Worker Profile
• Tailor made Sling instance
• Min required bundles
• Low footprint
• JCR API used mostly for CRUD
• No observation
• Disposable
• Take post processing load off
frontend servers
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 15
Repository Etiquette
be precise while talking to repository and thou shall not be troubled!
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Choose the right nodetype
Avoid nt:unstructured
• Orderable children
• Limits writes
Prefer oak:Unstructured
OAK-657
+ dashboard (nt:unstructured)
- role_observer - projects-outdoors
- role_editor - projects-editor
+ gadgets (nt:unstructured)
+ team
+ asset
+ dashboard (oak:Unstructured)
- role_observer - projects-outdoors
- role_editor - projects-editor
+ gadgets (oak:Unstructured)
+ team
+ asset
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Choose the right nodetype
Avoid nt:resource with
nt:file
• Referenceable
• 1 nt:resource = 1 entry in uuid index
• 1M Files = 1M entry in uuid index
Prefer oak:Resource
+ book.jpg (nt:file)
- jcr:createdBy - admin
+ jcr:content (nt:resource)
- jcr:lastModifiedBy - admin
- jcr:mimeType - image/jpeg
- jcr:uuid - "dafe0c9c-1872-4397"
OAK-4567
+ book.jpg (nt:file)
- jcr:createdBy - admin
+ jcr:content (oak:Resource)
- jcr:lastModifiedBy - admin
- jcr:mimeType - image/jpeg
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Query Precisely
• Use specific nodetype
• Relativize property names
wrt root of micro tree
• Include path restrictions
• Use union if nodetypes differ
SELECT *
FROM [nt:base] AS a
WHERE
a.[type] = 'image'
SELECT *
FROM [dam:Asset] AS a
WHERE ISDESCENDANTNODE([/content/dam])
AND a.[jcr:content/metadata/type] = 'image'
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Observe Precisely
▪ Observation costs resources
▪ Use JackrabbitEventFilter to filter on
▪ Multiple paths
▪ Nodetypes
▪ In works* filtering based on
▪ Property names
▪ Node names
*OAK-4796
JackrabbitEventFilter eventFilter
= new JackrabbitEventFilter()
.setAbsPath(paths[0])
.setNodeTypes(new String[]{"dam:Asset"})
.setEventTypes(Event.NODE_ADDED)
.setIsDeep(true);

eventFilter.setAdditionalPaths("/content/en");
JackrabbitObservationManager om =
(JackrabbitObservationManager)session.getWorkspace()
.getObservationManager();
om.addEventListener(this, eventFilter);
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Define your own types
▪ Nodetype/mixin are content annotation
▪ Repository uses them to
▪ Enforce structure
▪ Determine index rules
▪ Filter observation events
▪ Bundle Nodes* (new stuff!)
*OAK-1312
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Prefer Lucene Property Indexes
▪ Property Indexes
▪ Cause conflict in index data
▪ Causes commit root to be ‘/’
▪ Stored as nodes
▪ Good for sparse and full sync case
foo=bar bar=/a/b
Commit Root
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Prefer Lucene Property Indexes …
▪ Lucene Property Indexes
▪ Async indexing
▪ No impact on commit root
▪ Compact storage
▪ Multi restriction evaluation
▪ Are not they async?
▪ In works near real time indexing*
*OAK-4412
foo=bar
Commit Root
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
FUTURE PERFORMANCE-RELATED Oak FEATURES
work in progress!
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Mongo
Segment NSDocument NS
Sling
Segment NSDocument NS
Sling
Segment NS as Local Secondary Store
▪ Segment NS act a local copy
of remote repository like a
local git repo

▪ Updated via Observation

▪ Handles read call for “not so
recently modified” Nodes

▪ Reduces read latency

▪ Configured to store certain
path. Defaults to ‘/’ *OAK-4180
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016
Bundle Multiple JCR Node in one Document
*OAK-1312
+ book.jpg (nt:file)
+ jcr:content
- jcr:data
Bundling Pattern
+ jcr:system/documentstore/bundlor
+ nt:file
- pattern - [jcr:content]
{
"_id": "2:/test/book.jpg",
"_commitRoot": {"r1560bfe1650-0-1": "0"},
":pattern": {"r1560bfe1650-0-1": "["str:jcr:content"]"},
"jcr:primaryType": {"r1560bfe1650-0-1": ""nt:file""}
"jcr:content/jcr:data": {"r1560bfe1650-0-1": ""bar""},
}
▪ Store subtree aggregates of specific
nodes in same NodeDocument
▪ JCR Node to Mongo mapping
▪ 1 JCR Node = 1 Mongo Doc
▪ 1 dam:Asset ~ 20 JCR Node
▪ 1M Assets = 20M Mongo Doc
▪ Nodetype as content annotation hint
to optimize storage
▪ Benefits
▪ Lower size of _id index
▪ Less number of queries to read the micro
tree
Bundled NodeDocument
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 26
CODA
The Whole Web, really?
Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 27
CODA
Thank you for attending!
Chetan Mehrotra (@chetanmeh)
Bertrand Delacretaz (@bdelacretaz)
REDDR enables (extreme)
scaling driven by Sling
resource/script resolution.
Building customized Sling
instances is easy: provisioning
model + trivial Dockerfile.
From servers to systems! Precise and focused repository
types and operations improve
performance.

Weitere ähnliche Inhalte

Was ist angesagt?

2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOpsОмские ИТ-субботники
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsBen Hall
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Red Hat Developers
 
Docker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよDocker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよYusuke Kon
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network TroubleshootingOpen Source Consulting
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"OpenStack Korea Community
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewLei (Harry) Zhang
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageSATOSHI TAGOMORI
 
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례John Kim
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and futureHiroshi SHIBATA
 
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...Docker, Inc.
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Arun Gupta
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Paul Chao
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linuxchinkshady
 
Tutorial ceph-2
Tutorial ceph-2Tutorial ceph-2
Tutorial ceph-2Tommy Lee
 

Was ist angesagt? (20)

2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
JCR In 10 Minutes
JCR In 10 MinutesJCR In 10 Minutes
JCR In 10 Minutes
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!
 
Docker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよDocker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよ
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical View
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
 
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
 
Move Over, Rsync
Move Over, RsyncMove Over, Rsync
Move Over, Rsync
 
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
 
Everything as a code
Everything as a codeEverything as a code
Everything as a code
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux9 steps to install and configure postgre sql from source on linux
9 steps to install and configure postgre sql from source on linux
 
Tutorial ceph-2
Tutorial ceph-2Tutorial ceph-2
Tutorial ceph-2
 

Andere mochten auch

I will NOT attend your meeting - I'm an Open Source person
I will NOT attend your meeting - I'm an Open Source personI will NOT attend your meeting - I'm an Open Source person
I will NOT attend your meeting - I'm an Open Source personBertrand Delacretaz
 
Automated self-testing and health check of CQ and Sling instances
Automated self-testing and health check of CQ and Sling instancesAutomated self-testing and health check of CQ and Sling instances
Automated self-testing and health check of CQ and Sling instancesBertrand Delacretaz
 
Taming your CQ/AEM instances with the Apache Sling Health Checks
Taming your CQ/AEM instances with the Apache Sling Health ChecksTaming your CQ/AEM instances with the Apache Sling Health Checks
Taming your CQ/AEM instances with the Apache Sling Health ChecksBertrand Delacretaz
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Felix Meschberger
 
It's just a Web server - a plea for simplicity
It's just a Web server - a plea for simplicityIt's just a Web server - a plea for simplicity
It's just a Web server - a plea for simplicityBertrand Delacretaz
 
Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Bertrand Delacretaz
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRWoonsan Ko
 
Into the TarPit: A TarMK Deep Dive
Into the TarPit: A TarMK Deep DiveInto the TarPit: A TarMK Deep Dive
Into the TarPit: A TarMK Deep DiveMichael Dürig
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository Alkacon Software GmbH & Co. KG
 
The Zero Bullshit Architecture
The Zero Bullshit ArchitectureThe Zero Bullshit Architecture
The Zero Bullshit ArchitectureLars Trieloff
 
Apache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloudApache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloudRobert Munteanu
 

Andere mochten auch (15)

I will NOT attend your meeting - I'm an Open Source person
I will NOT attend your meeting - I'm an Open Source personI will NOT attend your meeting - I'm an Open Source person
I will NOT attend your meeting - I'm an Open Source person
 
Oak Lucene Indexes
Oak Lucene IndexesOak Lucene Indexes
Oak Lucene Indexes
 
Automated self-testing and health check of CQ and Sling instances
Automated self-testing and health check of CQ and Sling instancesAutomated self-testing and health check of CQ and Sling instances
Automated self-testing and health check of CQ and Sling instances
 
Taming your CQ/AEM instances with the Apache Sling Health Checks
Taming your CQ/AEM instances with the Apache Sling Health ChecksTaming your CQ/AEM instances with the Apache Sling Health Checks
Taming your CQ/AEM instances with the Apache Sling Health Checks
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM TechnologyEVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
 
It's just a Web server - a plea for simplicity
It's just a Web server - a plea for simplicityIt's just a Web server - a plea for simplicity
It's just a Web server - a plea for simplicity
 
Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCR
 
Into the TarPit: A TarMK Deep Dive
Into the TarPit: A TarMK Deep DiveInto the TarPit: A TarMK Deep Dive
Into the TarPit: A TarMK Deep Dive
 
JCR and ModeShape
JCR and ModeShapeJCR and ModeShape
JCR and ModeShape
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository
 
The Zero Bullshit Architecture
The Zero Bullshit ArchitectureThe Zero Bullshit Architecture
The Zero Bullshit Architecture
 
Introduction to JCR
Introduction to JCR Introduction to JCR
Introduction to JCR
 
Apache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloudApache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloud
 

Ähnlich wie Can we run the Whole Web on Apache Sling?

Spark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersSpark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersDatabricks
 
Running Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur KhanRunning Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur KhanDatabricks
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardwayDave Pitts
 
PUT is the new rename()
PUT is the new rename()PUT is the new rename()
PUT is the new rename()Steve Loughran
 
10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in productionParis Data Engineers !
 
MongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster TutorialMongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster TutorialJason Terpko
 
MongoDB – Sharded cluster tutorial - Percona Europe 2017
MongoDB – Sharded cluster tutorial - Percona Europe 2017MongoDB – Sharded cluster tutorial - Percona Europe 2017
MongoDB – Sharded cluster tutorial - Percona Europe 2017Antonios Giannopoulos
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationClaus Ibsen
 
apachecamelk-april2019-190409093034.pdf
apachecamelk-april2019-190409093034.pdfapachecamelk-april2019-190409093034.pdf
apachecamelk-april2019-190409093034.pdfssuserbb9f511
 
Building an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBuilding an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBertrand Delacretaz
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Claus Ibsen
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - CopenhagenClaus Ibsen
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsasync_io
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusClaus Ibsen
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09Chris Purrington
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Claus Ibsen
 
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...ScyllaDB
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - DeploymentFabio Akita
 

Ähnlich wie Can we run the Whole Web on Apache Sling? (20)

Spark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersSpark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production users
 
Running Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur KhanRunning Spark In Production in the Cloud is Not Easy with Nayur Khan
Running Spark In Production in the Cloud is Not Easy with Nayur Khan
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
PUT is the new rename()
PUT is the new rename()PUT is the new rename()
PUT is the new rename()
 
10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production10 things i wish i'd known before using spark in production
10 things i wish i'd known before using spark in production
 
Sharded cluster tutorial
Sharded cluster tutorialSharded cluster tutorial
Sharded cluster tutorial
 
MongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster TutorialMongoDB - Sharded Cluster Tutorial
MongoDB - Sharded Cluster Tutorial
 
MongoDB – Sharded cluster tutorial - Percona Europe 2017
MongoDB – Sharded cluster tutorial - Percona Europe 2017MongoDB – Sharded cluster tutorial - Percona Europe 2017
MongoDB – Sharded cluster tutorial - Percona Europe 2017
 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integrationSouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
 
apachecamelk-april2019-190409093034.pdf
apachecamelk-april2019-190409093034.pdfapachecamelk-april2019-190409093034.pdf
apachecamelk-april2019-190409093034.pdf
 
Building an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBuilding an Apache Sling Rendering Farm
Building an Apache Sling Rendering Farm
 
Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2Apache Camel K - Copenhagen v2
Apache Camel K - Copenhagen v2
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
MongoDB vs Scylla: Production Experience from Both Dev & Ops Standpoint at Nu...
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
 

Mehr von Bertrand Delacretaz

VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?Bertrand Delacretaz
 
Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Bertrand Delacretaz
 
Repoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationBertrand Delacretaz
 
The Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationBertrand Delacretaz
 
GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?Bertrand Delacretaz
 
How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...Bertrand Delacretaz
 
L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019Bertrand Delacretaz
 
Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Bertrand Delacretaz
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Bertrand Delacretaz
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesBertrand Delacretaz
 
State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018Bertrand Delacretaz
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Bertrand Delacretaz
 
Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Bertrand Delacretaz
 
They don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesThey don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesBertrand Delacretaz
 
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Bertrand Delacretaz
 
Project and Community Services the Apache Way
Project and Community Services the Apache WayProject and Community Services the Apache Way
Project and Community Services the Apache WayBertrand Delacretaz
 
La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017Bertrand Delacretaz
 
Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Bertrand Delacretaz
 
Who needs meetings? Asynchronous Decision Making to the rescue
Who needs meetings? Asynchronous Decision Making to the rescueWho needs meetings? Asynchronous Decision Making to the rescue
Who needs meetings? Asynchronous Decision Making to the rescueBertrand Delacretaz
 

Mehr von Bertrand Delacretaz (20)

VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?
 
Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity
 
Repoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initialization
 
The Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaboration
 
GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?
 
Open Source Changes the World!
Open Source Changes the World!Open Source Changes the World!
Open Source Changes the World!
 
How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...
 
L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019
 
Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
 
State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
 
Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)
 
They don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesThey don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenches
 
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
 
Project and Community Services the Apache Way
Project and Community Services the Apache WayProject and Community Services the Apache Way
Project and Community Services the Apache Way
 
La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017
 
Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017
 
Who needs meetings? Asynchronous Decision Making to the rescue
Who needs meetings? Asynchronous Decision Making to the rescueWho needs meetings? Asynchronous Decision Making to the rescue
Who needs meetings? Asynchronous Decision Making to the rescue
 

Kürzlich hochgeladen

PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxgalaxypingy
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolinonuriaiuzzolino1
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查ydyuyu
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"growthgrids
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasDigicorns Technologies
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptxAsmae Rabhi
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoilmeghakumariji156
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制pxcywzqs
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样ayvbos
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样ayvbos
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查ydyuyu
 

Kürzlich hochgeladen (20)

PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolino
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 

Can we run the Whole Web on Apache Sling?

  • 1. APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 Can we run the whole Web on Apache Sling? Bertrand Delacretaz & Chetan Mehrotra @bdelacretaz - @chetanmeh Sling committers and PMC members CQ/AEM core team members, Adobe slides revision 2016-09-26
  • 2. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 The Whole Web ??2 Are you guys crazy?
 (yes, but not that much)
  • 3. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 3 Where’s Sling going? 
 from SERVERSto SYSTEMS
  • 4. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 4 httpd mod_lua script mod_proxy haproxy etcd -> config MongoDB processor selector more pools… more pools… fileserver pool slingshot pool default pool more pools… etcd monitoring / metrics REDDR - Resource Driven Dynamic Routing
 Sling resource/script resolution drives routing 1 2 3 4 1 2 3 4 Request to Sling Processor Selector Response with a single word: fileserver +Header: Sling-Processor-Role:fileserver haproxy routes to fileserver pool Rebuild haproxy config on changes Sling instances announce themselves to etcd:
 -IP address
 -Port
 -Role
 
 Pools are actually haproxy “backends” fun! client
 request port 80 port 81 Sling-Processor-Role
  • 5. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 5 REDDRREsource-Driven Dynamic Routing
  • 6. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 6 REDDR routing to fileserver instances pool httpd mod_lua script mod_proxy haproxy etcd -> config processor selector fileserver pool1 2 3 4 0 1 2 3 4 Request to Sling Processor Selector Response with a single word: fileserver +Header: Sling-Processor-Role:fileserver haproxy routes to fileserver pool 0 Client request .routing script engine +
 select based on resource type and parent types.
 Default servlets and 
 scripts disabled. Select backend pool based on Sling-Processor-Role
 header, using haproxy “acl” generated from etcd
  • 7. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 7 Dynamic Registration of Sling Instances
 regenerate haproxy config based on etc data
  • 8. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 8 haproxy etcd -> config more pools… more pools… fileserver pool slingshot pool default pool more pools… etcd haproxy config is rebuilt via event-driven confd + reload.sh script Sling instances announce themselves to etcd:
 -IP address
 -Port
 -Role Dynamic wiring of Sling instances in the haproxy pools 1 2 1 2
  • 9. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 9 Building customised Sling Docker images
 with just a provisioning model + trivial Dockerfile
  • 10. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 10 base/pom.xml base/src/main/docker/Dockerfile base/src/main/docker/slingroot/announce.sh base/src/main/docker/slingroot/start.sh base/src/main/docker/slingroot/wait-for-it.sh default-processor/pom.xml default-processor/src/main/docker/Dockerfile default-processor/src/main/provisioning/composum-browser.txt default-processor/src/main/provisioning/default-processor.txt default-processor/src/main/provisioning/launchpad.txt default-processor/src/main/provisioning/… Base and default-processor images FROM ch.x42.at16.base COPY ${project.build.finalName}.jar /opt/sling/launchpad.jar Dockerfile for default-processor Custom Sling Docker im ages
  • 11. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 11 DYNAMIC CLUSTER DEMO A Big Sling Cluster…on my laptop
  • 12. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 12 httpd mod_lua script mod_proxy haproxy etcd -> config MongoDB processor selector more pools… more pools… fileserver pool slingshot pool default pool more pools… etcd monitoring / metrics REDDR - Resource Driven Dynamic Routing
 Sling resource/script resolution drives routing 1 2 3 4 1 2 3 4 Request to Sling Processor Selector Response with a single word: fileserver +Header: Sling-Processor-Role:fileserver haproxy routes to fileserver pool Rebuild haproxy config on changes Sling instances announce themselves to etcd:
 -IP address
 -Port
 -Role
 
 Pools are actually haproxy “backends”
  • 13. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 13 “Background Worker” Sling instance minimal, disposable, focused
  • 14. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Asset worker pool default pool MongoDB ActiveMQ 5 2 1 3 4 1 2 3 4 Request to Sling Frontend server Write to NodeStore Add job to message queue Pick up of job by one of the worker 5 Write back of Job result Worker Profile • Tailor made Sling instance • Min required bundles • Low footprint • JCR API used mostly for CRUD • No observation • Disposable • Take post processing load off frontend servers
  • 15. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 15 Repository Etiquette be precise while talking to repository and thou shall not be troubled!
  • 16. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Choose the right nodetype Avoid nt:unstructured • Orderable children • Limits writes Prefer oak:Unstructured OAK-657 + dashboard (nt:unstructured) - role_observer - projects-outdoors - role_editor - projects-editor + gadgets (nt:unstructured) + team + asset + dashboard (oak:Unstructured) - role_observer - projects-outdoors - role_editor - projects-editor + gadgets (oak:Unstructured) + team + asset
  • 17. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Choose the right nodetype Avoid nt:resource with nt:file • Referenceable • 1 nt:resource = 1 entry in uuid index • 1M Files = 1M entry in uuid index Prefer oak:Resource + book.jpg (nt:file) - jcr:createdBy - admin + jcr:content (nt:resource) - jcr:lastModifiedBy - admin - jcr:mimeType - image/jpeg - jcr:uuid - "dafe0c9c-1872-4397" OAK-4567 + book.jpg (nt:file) - jcr:createdBy - admin + jcr:content (oak:Resource) - jcr:lastModifiedBy - admin - jcr:mimeType - image/jpeg
  • 18. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Query Precisely • Use specific nodetype • Relativize property names wrt root of micro tree • Include path restrictions • Use union if nodetypes differ SELECT * FROM [nt:base] AS a WHERE a.[type] = 'image' SELECT * FROM [dam:Asset] AS a WHERE ISDESCENDANTNODE([/content/dam]) AND a.[jcr:content/metadata/type] = 'image'
  • 19. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Observe Precisely ▪ Observation costs resources ▪ Use JackrabbitEventFilter to filter on ▪ Multiple paths ▪ Nodetypes ▪ In works* filtering based on ▪ Property names ▪ Node names *OAK-4796 JackrabbitEventFilter eventFilter = new JackrabbitEventFilter() .setAbsPath(paths[0]) .setNodeTypes(new String[]{"dam:Asset"}) .setEventTypes(Event.NODE_ADDED) .setIsDeep(true);
 eventFilter.setAdditionalPaths("/content/en"); JackrabbitObservationManager om = (JackrabbitObservationManager)session.getWorkspace() .getObservationManager(); om.addEventListener(this, eventFilter);
  • 20. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Define your own types ▪ Nodetype/mixin are content annotation ▪ Repository uses them to ▪ Enforce structure ▪ Determine index rules ▪ Filter observation events ▪ Bundle Nodes* (new stuff!) *OAK-1312
  • 21. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Prefer Lucene Property Indexes ▪ Property Indexes ▪ Cause conflict in index data ▪ Causes commit root to be ‘/’ ▪ Stored as nodes ▪ Good for sparse and full sync case foo=bar bar=/a/b Commit Root
  • 22. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Prefer Lucene Property Indexes … ▪ Lucene Property Indexes ▪ Async indexing ▪ No impact on commit root ▪ Compact storage ▪ Multi restriction evaluation ▪ Are not they async? ▪ In works near real time indexing* *OAK-4412 foo=bar Commit Root
  • 23. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 FUTURE PERFORMANCE-RELATED Oak FEATURES work in progress!
  • 24. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Mongo Segment NSDocument NS Sling Segment NSDocument NS Sling Segment NS as Local Secondary Store ▪ Segment NS act a local copy of remote repository like a local git repo
 ▪ Updated via Observation
 ▪ Handles read call for “not so recently modified” Nodes
 ▪ Reduces read latency
 ▪ Configured to store certain path. Defaults to ‘/’ *OAK-4180
  • 25. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 Bundle Multiple JCR Node in one Document *OAK-1312 + book.jpg (nt:file) + jcr:content - jcr:data Bundling Pattern + jcr:system/documentstore/bundlor + nt:file - pattern - [jcr:content] { "_id": "2:/test/book.jpg", "_commitRoot": {"r1560bfe1650-0-1": "0"}, ":pattern": {"r1560bfe1650-0-1": "["str:jcr:content"]"}, "jcr:primaryType": {"r1560bfe1650-0-1": ""nt:file""} "jcr:content/jcr:data": {"r1560bfe1650-0-1": ""bar""}, } ▪ Store subtree aggregates of specific nodes in same NodeDocument ▪ JCR Node to Mongo mapping ▪ 1 JCR Node = 1 Mongo Doc ▪ 1 dam:Asset ~ 20 JCR Node ▪ 1M Assets = 20M Mongo Doc ▪ Nodetype as content annotation hint to optimize storage ▪ Benefits ▪ Lower size of _id index ▪ Less number of queries to read the micro tree Bundled NodeDocument
  • 26. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 26 CODA The Whole Web, really?
  • 27. Can we run the whole Web on Apache Sling? Bertrand Delacretaz, Chetan Mehrotra, adaptTo() 2016 27 CODA Thank you for attending! Chetan Mehrotra (@chetanmeh) Bertrand Delacretaz (@bdelacretaz) REDDR enables (extreme) scaling driven by Sling resource/script resolution. Building customized Sling instances is easy: provisioning model + trivial Dockerfile. From servers to systems! Precise and focused repository types and operations improve performance.