SlideShare a Scribd company logo
CLOUD NATIVE CAMEL RIDING WITH
KUBERNETES AND OPENSHIFT
@christianposta
17 June 2016
If	change	is	happening	on	the	outside		
faster	than	on	the	inside	the	end	is	in	sight.	
Jack Welch, former CEO, GE
Company listed on Standard & Poors life expectancy
Do we need “integration?”
What kind of challenges are we going to run into?
Where do Containers fit into this?
WE’RE OFF TO DO MICROSERVICES!
Christian Posta
Principal Middleware Architect @ Red Hat
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
•  “Microservices for Java developers” (6/2016)
•  Committer Apache Camel, ActiveMQ, Fabric8
•  Worked with large Microservices, web-scale,
unicorn company
•  Blogger, speaker about DevOps, integration,
and microservices
•  Single, self-contained,
autonomous
•  Isolated and Resilient to
faults
•  Faster software delivery
•  Own their own data
•  Easier to understand
individually
•  Scalability
•  Right technology for the
problem
•  Test individual services
•  Individual deployments
MICROSERVICES
Infrastructure for scale
Organizational structure
Identify a useful domain model with boundaries
TRANSFORMATION CHALLENGES
Microservices with Apache Camel, DDD, and Kubernetes
DOMAIN COMPLEXITY IS REAL
•  Break things into smaller,
understandable models
•  Surround a model and its
“context” with a boundary
•  Implement the model in
code or get a new model
•  Explicitly map between
different contexts
•  Model transactional
boundaries as aggregates
Book checkout / purchase Title Search
Recommendations
Weekly reporting
Microservices with Apache Camel, DDD, and Kubernetes
DO WE NEED INTEGRATON?
•  REST, RPC
•  Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka,
etc)
•  Legacy (SOAP, mainframe, file processing,
proprietary)
•  Managed file processing
•  Streaming
•  Message transformation
•  EIPs
DO WE NEED INTEGRATON?
REAL DEVELOPERS RIDE CAMELS!
•  Small Java library
•  Very popular (200+ components for “dumb pipes”)
•  Powerful EIPs (routing, transformation, error handling)
•  Distributed-systems swiss-army knife!
•  Declarative DSL
•  Embeddable into any JVM (EAP, Karaf, Tomcat,
Spring Boot, Dropwizard, Wildfly Swarm, no container,
etc)
APACHE CAMEL
INTEGRATION HEAVY LIFTING:
APACHE CAMEL
•  Automatic retries, back-off algorithms
•  Dynamic routing
•  Powerful testing/mocking framework
•  Circuit breakers, fallbacks
•  Idempotent consumers
•  Backpressure mechanisms
•  Beautiful REST DSL with built in Swagger support
CAMEL FOR RESILIENT
MICROSERVICES
Microservices with Apache Camel, DDD, and Kubernetes
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	
rest().post(“/order/socks”)	
	.description(“New Order for pair of socks”)	
	.consumes(“application/json”)	
	.route()	
	 	.to(“activemq:topic:newOrder”)	
	 .log(“received new order ${body.orderId}”)	
.to(“ibatis:storeOrder?statementType=Insert”);	
}	
	
EXPOSE REST END POINT
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	
from(“jms:topic:foo”)	
	.hystrix()	
	 	.to(“http://fooservice/”)	
	.onFallback()	
	 	.transform().constant(“fallback foo!”)	
	.end()	
	
}	
CIRCUIT BREAKER/FALLBACK
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	
from(“jms:topic:foo”)	
	.idempotentConsumer(header(“fooMessageId”),	
	 	memoryCache)	
	.to(“http://fooservice/”)	
	.log(“got response ${body}”);	
		
}	
IDEMPOTENT CONSUMER
Microservices with Apache Camel, DDD, and Kubernetes
•  How to run them all locally?
•  How to package them (dependency
management)
•  How to test?
•  Vagrant? VirtualBox? VMs?
•  Specify configuration
•  Process isolation
•  Service discovery
•  Multiple versions?
PROBLEMS DEVELOPING
MICROSERVICES
LINUX CONTAINERS
RED HAT OPENSHIFT
•  Developer focused workflow
•  Enterprise ready, supported
•  Higher level abstraction above containers for delivering
technology and business value
•  Build/deployment triggers
•  Software Defined Networking (SDN)
•  Docker native format/packaging
•  CLI/Web based tooling
FUSE INTEGRATION SERVICES
https://docs.openshift.com/enterprise/3.1/using_images/xpaas_images/fuse.html
•  Set of tools for integration developers
•  Package your Fuse/Camel services as Docker
images
•  Run locally on CDK (container development kit)
•  Manage them with Kubernetes/OpenShift
•  Flat class loader JVMs
•  Supports Spring, CDI, Blueprint
•  Plugs-in to your existing build/release ecosystem
(Jenkins/Maven/Nexus/Gitlab,etc)
FUSE INTEGRATION SERVICES
•  How to run them all locally?
•  How to package them
•  How to test?
•  Vagrant? VirtualBox? VMs?
•  Specify configuration
•  Process isolation
•  Service discovery
•  Multiple versions?
PROBLEMS DEVELOPING
MICROSERVICES: SOLVED
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
MICROSERVICES PLATFORM ON
KUBERNETES/OPENSHIFT
Microservices with Apache Camel, DDD, and Kubernetes
Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
Questions, Discussion, Demo!

More Related Content

PDF
Design patterns for microservice architecture
PPTX
Microservice intro
PPTX
Introduction to spring boot
PDF
Microservice With Spring Boot and Spring Cloud
PDF
Microservices with Java, Spring Boot and Spring Cloud
PDF
Quick and Solid - Baremetal on OpenStack | Rico Lin
PDF
Load balancing and Service in Kubernetes
PPTX
Understanding Cross-site Request Forgery
Design patterns for microservice architecture
Microservice intro
Introduction to spring boot
Microservice With Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Quick and Solid - Baremetal on OpenStack | Rico Lin
Load balancing and Service in Kubernetes
Understanding Cross-site Request Forgery

What's hot (20)

PDF
Spring boot jpa
PPTX
Spring boot
PPTX
Introduction to openshift
PDF
Microservices architecture
PPT
Maven Overview
PDF
Camel Day Italia 2021 - Camel K
PPTX
Spring Boot
PPTX
PDF
Spring Native and Spring AOT
PDF
Why Microservice
PDF
Introduction to GitHub Actions
PDF
spring-boot-fr.pdf
PDF
Practical White Hat Hacker Training - Passive Information Gathering(OSINT)
PPTX
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
PDF
Open shift 4 infra deep dive
PPTX
Ansible presentation
PPTX
MSA ( Microservices Architecture ) 발표 자료 다운로드
PPTX
Springboot Microservices
PPTX
Spring mvc
PDF
Async Messaging in CQRS: Part 1 - Masstransit + DDD Intro
Spring boot jpa
Spring boot
Introduction to openshift
Microservices architecture
Maven Overview
Camel Day Italia 2021 - Camel K
Spring Boot
Spring Native and Spring AOT
Why Microservice
Introduction to GitHub Actions
spring-boot-fr.pdf
Practical White Hat Hacker Training - Passive Information Gathering(OSINT)
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Open shift 4 infra deep dive
Ansible presentation
MSA ( Microservices Architecture ) 발표 자료 다운로드
Springboot Microservices
Spring mvc
Async Messaging in CQRS: Part 1 - Masstransit + DDD Intro
Ad

Viewers also liked (20)

PDF
SOA to Microservices
PPTX
The hardest part of microservices: your data
PDF
Microservices and APIs
PDF
Microservices Journey NYC
PPTX
A Microservice Journey
PPTX
Why real integration developers ride Camels
PPTX
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
PPTX
DevNexus 2015
PDF
Fuse integration-services
ODP
Developing Microservices with Apache Camel
PDF
Microservices, DevOps, and Containers with OpenShift and Fabric8
PDF
Microservices with Spring Cloud, Netflix OSS and Kubernetes
PDF
Managing your camels in the cloud with CI/CD
PPTX
Microservices with Apache Camel, Docker and Fabric8 v2
PPTX
Integrating Microservices with Apache Camel
PPTX
Real world #microservices with Apache Camel, Fabric8, and OpenShift
PDF
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
PDF
Cloud Native Camel Riding
PDF
Chicago Microservices Integration Talk
PDF
Java one kubernetes, jenkins and microservices
SOA to Microservices
The hardest part of microservices: your data
Microservices and APIs
Microservices Journey NYC
A Microservice Journey
Why real integration developers ride Camels
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
DevNexus 2015
Fuse integration-services
Developing Microservices with Apache Camel
Microservices, DevOps, and Containers with OpenShift and Fabric8
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Managing your camels in the cloud with CI/CD
Microservices with Apache Camel, Docker and Fabric8 v2
Integrating Microservices with Apache Camel
Real world #microservices with Apache Camel, Fabric8, and OpenShift
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Cloud Native Camel Riding
Chicago Microservices Integration Talk
Java one kubernetes, jenkins and microservices
Ad

Similar to Microservices with Apache Camel, DDD, and Kubernetes (20)

PPTX
A microservices journey - Round 2
PPTX
Bluemix paas 기반 saas 개발 사례
PPTX
Integration in the age of DevOps
PDF
EIP In Practice
PDF
Cold box hierarchical mvc
PPTX
Microservices Journey Summer 2017
PPTX
Accelerate DevOps/Microservices and Kubernetes
PDF
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
PDF
Contributors Guide to the Jakarta EE 10 Galaxy
PDF
Revamp your monolith with Hierarchical MVC at CFSummit 2018
PDF
Integration in the Age of DevOps
PDF
Introduction To Apache Mesos
PDF
TS 4839 - Enterprise Integration Patterns in Practice
PDF
Stay productive while slicing up the monolith
PDF
Java EE microservices architecture - evolving the monolith
PDF
Stay productive while slicing up the monolith
PDF
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
PDF
What’s new in Java SE, EE, ME, Embedded world & new Strategy
PDF
Nine Neins - where Java EE will never take you
PDF
An introduction to Node.js
A microservices journey - Round 2
Bluemix paas 기반 saas 개발 사례
Integration in the age of DevOps
EIP In Practice
Cold box hierarchical mvc
Microservices Journey Summer 2017
Accelerate DevOps/Microservices and Kubernetes
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
Contributors Guide to the Jakarta EE 10 Galaxy
Revamp your monolith with Hierarchical MVC at CFSummit 2018
Integration in the Age of DevOps
Introduction To Apache Mesos
TS 4839 - Enterprise Integration Patterns in Practice
Stay productive while slicing up the monolith
Java EE microservices architecture - evolving the monolith
Stay productive while slicing up the monolith
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
What’s new in Java SE, EE, ME, Embedded world & new Strategy
Nine Neins - where Java EE will never take you
An introduction to Node.js

More from Christian Posta (20)

PDF
What Istio Got Wrong: Learnings from the last seven years of service mesh
PDF
Move Auth, Policy, and Resilience to the Platform
PDF
Comparing Sidecar-less Service Mesh from Cilium and Istio
PDF
Understanding Wireguard, TLS and Workload Identity
PDF
Compliance and Zero Trust Ambient Mesh
PDF
Cilium + Istio with Gloo Mesh
PPT
Multi-cluster service mesh with GlooMesh
PPTX
Multicluster Kubernetes and Service Mesh Patterns
PPTX
Cloud-Native Application Debugging with Envoy and Service Mesh
PPTX
Kubernetes Ingress to Service Mesh (and beyond!)
PPTX
The Truth About the Service Mesh Data Plane
PPTX
Deep Dive: Building external auth plugins for Gloo Enterprise
PPTX
Role of edge gateways in relation to service mesh adoption
PPTX
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
PPTX
Chaos Debugging for Microservices
PPTX
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
PPTX
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
PPTX
Intro Istio and what's new Istio 1.1
PPTX
API Gateways are going through an identity crisis
PPTX
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
What Istio Got Wrong: Learnings from the last seven years of service mesh
Move Auth, Policy, and Resilience to the Platform
Comparing Sidecar-less Service Mesh from Cilium and Istio
Understanding Wireguard, TLS and Workload Identity
Compliance and Zero Trust Ambient Mesh
Cilium + Istio with Gloo Mesh
Multi-cluster service mesh with GlooMesh
Multicluster Kubernetes and Service Mesh Patterns
Cloud-Native Application Debugging with Envoy and Service Mesh
Kubernetes Ingress to Service Mesh (and beyond!)
The Truth About the Service Mesh Data Plane
Deep Dive: Building external auth plugins for Gloo Enterprise
Role of edge gateways in relation to service mesh adoption
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Chaos Debugging for Microservices
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Intro Istio and what's new Istio 1.1
API Gateways are going through an identity crisis
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
L1 - Introduction to python Backend.pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPT
Introduction Database Management System for Course Database
2025 Textile ERP Trends: SAP, Odoo & Oracle
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Odoo Companies in India – Driving Business Transformation.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How Creative Agencies Leverage Project Management Software.pdf
Transform Your Business with a Software ERP System
CHAPTER 2 - PM Management and IT Context
Online Work Permit System for Fast Permit Processing
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
System and Network Administration Chapter 2
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
L1 - Introduction to python Backend.pptx
How to Choose the Right IT Partner for Your Business in Malaysia
Which alternative to Crystal Reports is best for small or large businesses.pdf
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms I-SECS-1021-03
Introduction Database Management System for Course Database

Microservices with Apache Camel, DDD, and Kubernetes

  • 1. CLOUD NATIVE CAMEL RIDING WITH KUBERNETES AND OPENSHIFT @christianposta 17 June 2016
  • 3. Do we need “integration?” What kind of challenges are we going to run into? Where do Containers fit into this? WE’RE OFF TO DO MICROSERVICES!
  • 4. Christian Posta Principal Middleware Architect @ Red Hat Twitter: @christianposta Blog: http://blog.christianposta.com Email: christian@redhat.com •  “Microservices for Java developers” (6/2016) •  Committer Apache Camel, ActiveMQ, Fabric8 •  Worked with large Microservices, web-scale, unicorn company •  Blogger, speaker about DevOps, integration, and microservices
  • 5. •  Single, self-contained, autonomous •  Isolated and Resilient to faults •  Faster software delivery •  Own their own data •  Easier to understand individually •  Scalability •  Right technology for the problem •  Test individual services •  Individual deployments MICROSERVICES
  • 6. Infrastructure for scale Organizational structure Identify a useful domain model with boundaries TRANSFORMATION CHALLENGES
  • 8. DOMAIN COMPLEXITY IS REAL •  Break things into smaller, understandable models •  Surround a model and its “context” with a boundary •  Implement the model in code or get a new model •  Explicitly map between different contexts •  Model transactional boundaries as aggregates
  • 9. Book checkout / purchase Title Search Recommendations Weekly reporting
  • 11. DO WE NEED INTEGRATON? •  REST, RPC •  Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka, etc) •  Legacy (SOAP, mainframe, file processing, proprietary) •  Managed file processing •  Streaming •  Message transformation •  EIPs
  • 12. DO WE NEED INTEGRATON?
  • 14. •  Small Java library •  Very popular (200+ components for “dumb pipes”) •  Powerful EIPs (routing, transformation, error handling) •  Distributed-systems swiss-army knife! •  Declarative DSL •  Embeddable into any JVM (EAP, Karaf, Tomcat, Spring Boot, Dropwizard, Wildfly Swarm, no container, etc) APACHE CAMEL
  • 16. •  Automatic retries, back-off algorithms •  Dynamic routing •  Powerful testing/mocking framework •  Circuit breakers, fallbacks •  Idempotent consumers •  Backpressure mechanisms •  Beautiful REST DSL with built in Swagger support CAMEL FOR RESILIENT MICROSERVICES
  • 18. public class OrderProcessorRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { rest().post(“/order/socks”) .description(“New Order for pair of socks”) .consumes(“application/json”) .route() .to(“activemq:topic:newOrder”) .log(“received new order ${body.orderId}”) .to(“ibatis:storeOrder?statementType=Insert”); } EXPOSE REST END POINT
  • 19. public class OrderProcessorRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from(“jms:topic:foo”) .hystrix() .to(“http://fooservice/”) .onFallback() .transform().constant(“fallback foo!”) .end() } CIRCUIT BREAKER/FALLBACK
  • 20. public class OrderProcessorRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from(“jms:topic:foo”) .idempotentConsumer(header(“fooMessageId”), memoryCache) .to(“http://fooservice/”) .log(“got response ${body}”); } IDEMPOTENT CONSUMER
  • 22. •  How to run them all locally? •  How to package them (dependency management) •  How to test? •  Vagrant? VirtualBox? VMs? •  Specify configuration •  Process isolation •  Service discovery •  Multiple versions? PROBLEMS DEVELOPING MICROSERVICES
  • 24. RED HAT OPENSHIFT •  Developer focused workflow •  Enterprise ready, supported •  Higher level abstraction above containers for delivering technology and business value •  Build/deployment triggers •  Software Defined Networking (SDN) •  Docker native format/packaging •  CLI/Web based tooling
  • 26. •  Set of tools for integration developers •  Package your Fuse/Camel services as Docker images •  Run locally on CDK (container development kit) •  Manage them with Kubernetes/OpenShift •  Flat class loader JVMs •  Supports Spring, CDI, Blueprint •  Plugs-in to your existing build/release ecosystem (Jenkins/Maven/Nexus/Gitlab,etc) FUSE INTEGRATION SERVICES
  • 27. •  How to run them all locally? •  How to package them •  How to test? •  Vagrant? VirtualBox? VMs? •  Specify configuration •  Process isolation •  Service discovery •  Multiple versions? PROBLEMS DEVELOPING MICROSERVICES: SOLVED
  • 33. Christian Posta Principal Middleware Specialist/Architect Twitter: @christianposta Blog: http://blog.christianposta.com Email: christian@redhat.com Questions, Discussion, Demo!