Achim Nierbeck | inovex
Integration in der Cloud mit
Camel, Karaf und Cellar
Agenda
• Vorstellung
• Cloud? Integration? Cluster?
• Protagonisten - Eine Vorstellung
• Integration + Cloud
• Demo
• ... don't Panic!
Vorstellung
• Achim Nierbeck
• inovex GmbH
– Pforzheim, Karlsruhe, München Köln
• @anierbeck
• open source
– Apache Karaf PMC
– Apache Kalumet PMC
– OPS4j Pax Web Project Lead
Integration? Cluster? Cloud?
Situation
• wie kommen die
Daten an ihr Ziel
• woher kommen die
Daten
• welche Daten
Image: © Nevit Dilmen found at Wikimedia commons
Integration ?
Integration mit Camel
Apache Camel is messaging
technology glue with routing. It joins
together messaging start and end
points allowing the transference of
messages from different sources to
different destinations. For example:
JMS->JSON
HTTP->JMS
or funneling
FTP->JMS, HTTP->JMS
JMS=>JSON
Quelle: Universal Business Adapter (IBM)
http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel
EAI - Enterprise Application Integration
• Gregor Hohpe und
Bobby Woolfe
• Martin Fowler: „the
missing piece“ zu Patterns
of Enterprise Application
Architecture
Die Protagonisten
• Apache Camel
– Eines der am weitesten verbreiteten EAI
Frameworks
• Apache Karaf
– Leichtgewichtiger OSGi Container
– perfekte Laufzeitumgebung für Camel
• Apache Karaf-Cellar
– Karaf Cluster Lösung --> Cloud Lösung
Camel Architektur
Message Routing
Apache Karaf
Karaf - Overview
Apache Karaf - Cellar
Karaf Cellar – Node Kommunikation
Karaf Cellar - Überblick
Karaf Cellar - Farming
Maven Repo
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Karaf Cellar - Farming
Maven Repo
Feature
install
xxx
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Karaf Cellar - Farming
Maven Repo
Replicate
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Karaf Cellar - Farming
Maven Repo
Feature
install
xxx
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Karaf Cellar - Farming
Maven Repo
Feature
install
zzz
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Karaf Cellar - Farming
Maven Repo
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Replicate
Karaf Cellar - Farming
Maven Repo
Node 1
Whitelist:
- xxx
- yyy
Blacklist:
- zzz
Node 2
Whitelist:
- xxx
- zzz
Blacklist:
- yyy
Integration in der Cloud
Apache Karaf-Cellar
Apache Karaf
Apache Camel
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
to(s3://bucket/object)
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
to(cxf:endpoint)
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
from(cxf:endpoint).to(jms:queue)
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
from(twitter://xxx).bean(filterBean).to(hdfs://storage)
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP:
from(jms).convertTo(String.class).
to(hazelcast:seda:queue)
Cloud Integration
© twitter.com
Privat Node
Data
S3
EC-Node 1
EC-Node 3
EC-Node 2
HDFS
EIP: from(hazelcast:seda:queue).
to(hdfs:storage)
DEMO
Privat Node
S3
EC-Node 2EIP:
EC-Node 1
from(file).to(cxf)
from(cxf)
.to(hazelcast:
seda:
queue)
from(seda:x).to(blobstore)
Browse
... don't Panic
• Bring dein Handtuch mit
• http://camel.apache.org
• http://karaf.apache.org
• http://karaf.apache.org/index/subprojects/cellar.html
• Showcase:
https://github.com/inovex/camel-cloud-integartion-jax2013/
• Fragen immer jederzeit auf den Mailinglisten
• … am Inovex Stand

Jax2013 came-karaf-cellar-inovex

  • 1.
    Achim Nierbeck |inovex Integration in der Cloud mit Camel, Karaf und Cellar
  • 2.
    Agenda • Vorstellung • Cloud?Integration? Cluster? • Protagonisten - Eine Vorstellung • Integration + Cloud • Demo • ... don't Panic!
  • 3.
    Vorstellung • Achim Nierbeck •inovex GmbH – Pforzheim, Karlsruhe, München Köln • @anierbeck • open source – Apache Karaf PMC – Apache Kalumet PMC – OPS4j Pax Web Project Lead
  • 4.
    Integration? Cluster? Cloud? Situation •wie kommen die Daten an ihr Ziel • woher kommen die Daten • welche Daten Image: © Nevit Dilmen found at Wikimedia commons
  • 5.
  • 6.
    Integration mit Camel ApacheCamel is messaging technology glue with routing. It joins together messaging start and end points allowing the transference of messages from different sources to different destinations. For example: JMS->JSON HTTP->JMS or funneling FTP->JMS, HTTP->JMS JMS=>JSON Quelle: Universal Business Adapter (IBM) http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel
  • 7.
    EAI - EnterpriseApplication Integration • Gregor Hohpe und Bobby Woolfe • Martin Fowler: „the missing piece“ zu Patterns of Enterprise Application Architecture
  • 8.
    Die Protagonisten • ApacheCamel – Eines der am weitesten verbreiteten EAI Frameworks • Apache Karaf – Leichtgewichtiger OSGi Container – perfekte Laufzeitumgebung für Camel • Apache Karaf-Cellar – Karaf Cluster Lösung --> Cloud Lösung
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Karaf Cellar –Node Kommunikation
  • 15.
    Karaf Cellar -Überblick
  • 16.
    Karaf Cellar -Farming Maven Repo Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 17.
    Karaf Cellar -Farming Maven Repo Feature install xxx Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 18.
    Karaf Cellar -Farming Maven Repo Replicate Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 19.
    Karaf Cellar -Farming Maven Repo Feature install xxx Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 20.
    Karaf Cellar -Farming Maven Repo Feature install zzz Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 21.
    Karaf Cellar -Farming Maven Repo Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy Replicate
  • 22.
    Karaf Cellar -Farming Maven Repo Node 1 Whitelist: - xxx - yyy Blacklist: - zzz Node 2 Whitelist: - xxx - zzz Blacklist: - yyy
  • 23.
    Integration in derCloud Apache Karaf-Cellar Apache Karaf Apache Camel
  • 24.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP:
  • 25.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: to(s3://bucket/object)
  • 26.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: to(cxf:endpoint)
  • 27.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: from(cxf:endpoint).to(jms:queue)
  • 28.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: from(twitter://xxx).bean(filterBean).to(hdfs://storage)
  • 29.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: from(jms).convertTo(String.class). to(hazelcast:seda:queue)
  • 30.
    Cloud Integration © twitter.com PrivatNode Data S3 EC-Node 1 EC-Node 3 EC-Node 2 HDFS EIP: from(hazelcast:seda:queue). to(hdfs:storage)
  • 31.
    DEMO Privat Node S3 EC-Node 2EIP: EC-Node1 from(file).to(cxf) from(cxf) .to(hazelcast: seda: queue) from(seda:x).to(blobstore) Browse
  • 32.
    ... don't Panic •Bring dein Handtuch mit • http://camel.apache.org • http://karaf.apache.org • http://karaf.apache.org/index/subprojects/cellar.html • Showcase: https://github.com/inovex/camel-cloud-integartion-jax2013/ • Fragen immer jederzeit auf den Mailinglisten • … am Inovex Stand