SlideShare a Scribd company logo
Managing Your Camels in the Cloud
@christianposta
Principal Architect at Red Hat
6/29/16
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, others
โ€ขโ€ฏ Worked with large Microservices, web-scale, unicorn company
โ€ขโ€ฏ Blogger, speaker about DevOps, integration, and microservices
Do we need โ€œintegration?โ€
What kind of challenges are we going to run into?
How do we manage our integrations and microservices?
Weโ€™re off to do Microservices!
Infrastructure for scale
Organizational structure
Identify a useful domain model with boundaries
Transformation Challenges
Domain Complexity
โ€ขโ€ฏ 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
Managing your camels in the cloud with CI/CD
โ€ขโ€ฏ Where we went wrong
โ€ขโ€ฏ Architectural concepts for scaling
โ€ขโ€ฏ Domain Driven Design, CQRS,
Event Sourcing
โ€ขโ€ฏ Monolith->Microservices hands-on
โ€ขโ€ฏ WildFly Swarm, Spring Boot,
Apache Camel, Apache Kafka,
Debezium, Docker, Kubernetes,
OpenShift
SOA to Microservices: modernization with microservices and containers
Thursday, 3:30p-4:30p room 2022
Do we need integration?
โ€ขโ€ฏ 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
โ€ขโ€ฏ Dynamic routing
โ€ขโ€ฏ Powerful testing/mocking framework
โ€ขโ€ฏ Circuit breakers, fallbacks, automatic retries, back-off
โ€ขโ€ฏ Idempotent consumers
โ€ขโ€ฏ Backpressure mechanisms
โ€ขโ€ฏ Beautiful REST DSL with built in Swagger support
Camel for microservices!
Managing your camels in the cloud with CI/CD
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
โ€ขโ€ฏ How to run them all locally?
โ€ขโ€ฏ How to integrate them?
โ€ขโ€ฏ How to package them (dependency management)
โ€ขโ€ฏ How to test?
โ€ขโ€ฏ Vagrant? VirtualBox? VMs?
โ€ขโ€ฏ Specify configuration
โ€ขโ€ฏ Process isolation
โ€ขโ€ฏ Service discovery
Problems developing microservices
Managing your camels in the cloud with CI/CD
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
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
Microservices Platform on Kubernetes/OpenShift
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
Questions, Discussion, Demo!

More Related Content

What's hot (20)

PPTX
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
ย 
PPTX
Microservices Journey Fall 2017
Christian Posta
ย 
PPTX
The Hardest Part of Microservices: Calling Your Services
Christian Posta
ย 
PDF
Java one kubernetes, jenkins and microservices
Christian Posta
ย 
PPTX
A microservices journey - Round 2
Christian Posta
ย 
PDF
Fuse integration-services
Christian Posta
ย 
PPTX
Atlanta Microservices Day: Istio Service Mesh
Christian Posta
ย 
PPTX
The hardest part of microservices: your data
Christian Posta
ย 
PDF
Microservices Journey NYC
Christian Posta
ย 
PPTX
Microservices with Apache Camel, Docker and Fabric8 v2
Christian Posta
ย 
PDF
The Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
Ambassador Labs
ย 
PDF
Lowering the risk of monolith to microservices
Christian Posta
ย 
PDF
Simplify integrations-final-pdf
Christian Posta
ย 
PDF
Cloud Native Camel Riding
Christian Posta
ย 
PDF
An eventful tour from enterprise integration to serverless and functions
Christian Posta
ย 
PPTX
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
Christian Posta
ย 
PPTX
Microservices and Integration: what's next with Istio service mesh
Christian Posta
ย 
PDF
Camel oneactivemq posta-final
Christian Posta
ย 
PDF
How would ESBs look like, if they were done today.
Markus Eisele
ย 
PPTX
Making sense of microservices, service mesh, and serverless
Christian Posta
ย 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
ย 
Microservices Journey Fall 2017
Christian Posta
ย 
The Hardest Part of Microservices: Calling Your Services
Christian Posta
ย 
Java one kubernetes, jenkins and microservices
Christian Posta
ย 
A microservices journey - Round 2
Christian Posta
ย 
Fuse integration-services
Christian Posta
ย 
Atlanta Microservices Day: Istio Service Mesh
Christian Posta
ย 
The hardest part of microservices: your data
Christian Posta
ย 
Microservices Journey NYC
Christian Posta
ย 
Microservices with Apache Camel, Docker and Fabric8 v2
Christian Posta
ย 
The Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
Ambassador Labs
ย 
Lowering the risk of monolith to microservices
Christian Posta
ย 
Simplify integrations-final-pdf
Christian Posta
ย 
Cloud Native Camel Riding
Christian Posta
ย 
An eventful tour from enterprise integration to serverless and functions
Christian Posta
ย 
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
Christian Posta
ย 
Microservices and Integration: what's next with Istio service mesh
Christian Posta
ย 
Camel oneactivemq posta-final
Christian Posta
ย 
How would ESBs look like, if they were done today.
Markus Eisele
ย 
Making sense of microservices, service mesh, and serverless
Christian Posta
ย 

Viewers also liked (17)

PDF
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
ย 
PPTX
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
ย 
PDF
Chicago Microservices Integration Talk
Christian Posta
ย 
PDF
Microservices, DevOps, and Containers with OpenShift and Fabric8
Christian Posta
ย 
PPTX
Integrating Microservices with Apache Camel
Christian Posta
ย 
PPTX
ApacheCon EU 2016 - Apache Camel the integration library
Claus Ibsen
ย 
PDF
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Christian Posta
ย 
PPTX
Why real integration developers ride Camels
Christian Posta
ย 
ODP
Developing Microservices with Apache Camel
Claus Ibsen
ย 
ODP
Build a PaaS with OpenShift Origin
Steven Pousty
ย 
PPTX
OpenShift Enterprise 3.1 vs kubernetes
Samuel Terburg
ย 
PDF
fabric8 ... and Docker, Kubernetes & OpenShift
roland.huss
ย 
PDF
CI / CD with fabric8
James Rawlings
ย 
PPTX
Open source: Top issues in the top enterprise packages
Rogue Wave Software
ย 
DOCX
Camel model
HAMIR SINGH
ย 
PDF
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
Kai Wรคhner
ย 
PPTX
Enterprise messaging with jms
Sridhar Reddy
ย 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
ย 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
ย 
Chicago Microservices Integration Talk
Christian Posta
ย 
Microservices, DevOps, and Containers with OpenShift and Fabric8
Christian Posta
ย 
Integrating Microservices with Apache Camel
Christian Posta
ย 
ApacheCon EU 2016 - Apache Camel the integration library
Claus Ibsen
ย 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Christian Posta
ย 
Why real integration developers ride Camels
Christian Posta
ย 
Developing Microservices with Apache Camel
Claus Ibsen
ย 
Build a PaaS with OpenShift Origin
Steven Pousty
ย 
OpenShift Enterprise 3.1 vs kubernetes
Samuel Terburg
ย 
fabric8 ... and Docker, Kubernetes & OpenShift
roland.huss
ย 
CI / CD with fabric8
James Rawlings
ย 
Open source: Top issues in the top enterprise packages
Rogue Wave Software
ย 
Camel model
HAMIR SINGH
ย 
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
Kai Wรคhner
ย 
Enterprise messaging with jms
Sridhar Reddy
ย 
Ad

Similar to Managing your camels in the cloud with CI/CD (20)

PPTX
Integration in the age of DevOps
Albert Wong
ย 
PDF
Agile integration workshop Atlanta
Jeremy Davis
ย 
PDF
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
ย 
PDF
Solving Enterprise Integration with Apache Camel
Christian Posta
ย 
PPTX
Camel riders in the cloud
Claus Ibsen
ย 
PDF
Agile Integration Workshop
Judy Breedlove
ย 
PDF
Agile integration workshop Seattle
Judy Breedlove
ย 
PDF
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
Claus Ibsen
ย 
PDF
Camel Riders in the Cloud
Red Hat Developers
ย 
PDF
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
Josรฉ Romรกn Martรญn Gil
ย 
PDF
Integration in the Age of DevOps
Brian Ashburn
ย 
PPTX
Integrating microservices with apache camel on kubernetes
Claus Ibsen
ย 
PDF
Enterprise Integration Patterns with Apache Camel
Ioan Eugen Stan
ย 
PPT
Simplify your integrations with Apache Camel
Kenneth Peeples
ย 
PPT
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
ย 
PDF
Camel on Cloud by Christina Lin
Tadayoshi Sato
ย 
PDF
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
Claus Ibsen
ย 
PPTX
Microservices deck
Raja Chattopadhyay
ย 
PDF
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Claus Ibsen
ย 
PDF
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
ย 
Integration in the age of DevOps
Albert Wong
ย 
Agile integration workshop Atlanta
Jeremy Davis
ย 
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
ย 
Solving Enterprise Integration with Apache Camel
Christian Posta
ย 
Camel riders in the cloud
Claus Ibsen
ย 
Agile Integration Workshop
Judy Breedlove
ย 
Agile integration workshop Seattle
Judy Breedlove
ย 
JEEConf 2018 - Camel microservices with Spring Boot and Kubernetes
Claus Ibsen
ย 
Camel Riders in the Cloud
Red Hat Developers
ย 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
Josรฉ Romรกn Martรญn Gil
ย 
Integration in the Age of DevOps
Brian Ashburn
ย 
Integrating microservices with apache camel on kubernetes
Claus Ibsen
ย 
Enterprise Integration Patterns with Apache Camel
Ioan Eugen Stan
ย 
Simplify your integrations with Apache Camel
Kenneth Peeples
ย 
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
ย 
Camel on Cloud by Christina Lin
Tadayoshi Sato
ย 
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
Claus Ibsen
ย 
Microservices deck
Raja Chattopadhyay
ย 
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Claus Ibsen
ย 
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
ย 
Ad

More from Christian Posta (20)

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

Recently uploaded (20)

PDF
AI Image Enhancer: Revolutionizing Visual Qualityโ€
docmasoom
ย 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
ย 
PPTX
ChessBase 18.02 Crack + Serial Key Free Download
cracked shares
ย 
PPTX
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
ย 
PDF
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
ย 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
ย 
PDF
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
ย 
PDF
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
PPTX
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
ย 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
PDF
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
ย 
PDF
How AI in Healthcare Apps Can Help You Enhance Patient Care?
Lilly Gracia
ย 
PPTX
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
PDF
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
PPTX
Processing with Claim Management Automation Solutions
Insurance Tech Services
ย 
PPTX
Online Contractor Induction and Safety Induction Training Software
SHEQ Network Limited
ย 
PDF
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
ย 
AI Image Enhancer: Revolutionizing Visual Qualityโ€
docmasoom
ย 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
ย 
ChessBase 18.02 Crack + Serial Key Free Download
cracked shares
ย 
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
ย 
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
ย 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
ย 
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
ย 
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
ย 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
ย 
How AI in Healthcare Apps Can Help You Enhance Patient Care?
Lilly Gracia
ย 
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
Processing with Claim Management Automation Solutions
Insurance Tech Services
ย 
Online Contractor Induction and Safety Induction Training Software
SHEQ Network Limited
ย 
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
ย 

Managing your camels in the cloud with CI/CD

  • 1. Managing Your Camels in the Cloud @christianposta Principal Architect at Red Hat 6/29/16
  • 2. Christian Posta Principal Middleware Architect @ Red Hat Twitter: @christianposta Blog: http://blog.christianposta.com Email: [email protected] โ€ขโ€ฏ โ€œMicroservices for Java developersโ€ (6/2016) โ€ขโ€ฏ Committer Apache Camel, ActiveMQ, Fabric8, others โ€ขโ€ฏ Worked with large Microservices, web-scale, unicorn company โ€ขโ€ฏ Blogger, speaker about DevOps, integration, and microservices
  • 3. Do we need โ€œintegration?โ€ What kind of challenges are we going to run into? How do we manage our integrations and microservices? Weโ€™re off to do Microservices!
  • 4. Infrastructure for scale Organizational structure Identify a useful domain model with boundaries Transformation Challenges
  • 5. Domain Complexity โ€ขโ€ฏ 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
  • 7. โ€ขโ€ฏ Where we went wrong โ€ขโ€ฏ Architectural concepts for scaling โ€ขโ€ฏ Domain Driven Design, CQRS, Event Sourcing โ€ขโ€ฏ Monolith->Microservices hands-on โ€ขโ€ฏ WildFly Swarm, Spring Boot, Apache Camel, Apache Kafka, Debezium, Docker, Kubernetes, OpenShift SOA to Microservices: modernization with microservices and containers Thursday, 3:30p-4:30p room 2022
  • 8. Do we need integration? โ€ขโ€ฏ REST, RPC โ€ขโ€ฏ Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka, etc) โ€ขโ€ฏ Legacy (SOAP, mainframe, file processing, proprietary) โ€ขโ€ฏ Managed file processing โ€ขโ€ฏ Streaming โ€ขโ€ฏ Message transformation โ€ขโ€ฏ EIPs
  • 9. Do we need integraton?
  • 11. โ€ขโ€ฏ 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
  • 12. โ€ขโ€ฏ Dynamic routing โ€ขโ€ฏ Powerful testing/mocking framework โ€ขโ€ฏ Circuit breakers, fallbacks, automatic retries, back-off โ€ขโ€ฏ Idempotent consumers โ€ขโ€ฏ Backpressure mechanisms โ€ขโ€ฏ Beautiful REST DSL with built in Swagger support Camel for microservices!
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. โ€ขโ€ฏ How to run them all locally? โ€ขโ€ฏ How to integrate them? โ€ขโ€ฏ How to package them (dependency management) โ€ขโ€ฏ How to test? โ€ขโ€ฏ Vagrant? VirtualBox? VMs? โ€ขโ€ฏ Specify configuration โ€ขโ€ฏ Process isolation โ€ขโ€ฏ Service discovery Problems developing microservices
  • 20. 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
  • 22. โ€ขโ€ฏ 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
  • 23. โ€ขโ€ฏ 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
  • 27. Microservices Platform on Kubernetes/OpenShift
  • 30. Christian Posta Principal Middleware Specialist/Architect Twitter: @christianposta Blog: http://blog.christianposta.com Email: [email protected] Questions, Discussion, Demo!