Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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...
Do we need “integration?”
What kind of challenges are we going to run into?
Where do Containers fit into this?
WE’RE OFF T...
Christian Posta
Principal Middleware Architect @ Red Hat
Twitter: @christianposta
Blog: http://blog.christianposta.com
Ema...
•  Single, self-contained,
autonomous
•  Isolated and Resilient to
faults
•  Faster software delivery
•  Own their own dat...
Infrastructure for scale
Organizational structure
Identify a useful domain model with boundaries
TRANSFORMATION CHALLENGES
DOMAIN COMPLEXITY IS REAL
•  Break things into smaller,
understandable models
•  Surround a model and its
“context” with a...
Book checkout / purchase Title Search
Recommendations
Weekly reporting
DO WE NEED INTEGRATON?
•  REST, RPC
•  Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka,
etc)
•  Legacy (SOAP, mainframe, file...
DO WE NEED INTEGRATON?
REAL DEVELOPERS RIDE CAMELS!
•  Small Java library
•  Very popular (200+ components for “dumb pipes”)
•  Powerful EIPs (routing, transformation, error ...
INTEGRATION HEAVY LIFTING:
APACHE CAMEL
•  Automatic retries, back-off algorithms
•  Dynamic routing
•  Powerful testing/mocking framework
•  Circuit breakers, fa...
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	...
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	...
public class OrderProcessorRouteBuilder extends RouteBuilder {	
	
@Override	
public void configure() throws Exception {	
	...
•  How to run them all locally?
•  How to package them (dependency
management)
•  How to test?
•  Vagrant? VirtualBox? VMs...
LINUX CONTAINERS
RED HAT OPENSHIFT
•  Developer focused workflow
•  Enterprise ready, supported
•  Higher level abstraction above container...
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 (con...
•  How to run them all locally?
•  How to package them
•  How to test?
•  Vagrant? VirtualBox? VMs?
•  Specify configurati...
MICROSERVICES PLATFORM ON
KUBERNETES/OPENSHIFT
Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Em...
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
Nächste SlideShare
Wird geladen in …5
×

Microservices with Apache Camel, DDD, and Kubernetes

Building microservices requires more than just infrastructure, but infrastructure does have a role. In this talk we look at microservices from an enterprise perspective and talk about DDD, Docker, Kubernetes and how established open-source projects in the integration space fits a microservices architecture

  • Als Erste(r) kommentieren

Microservices with Apache Camel, DDD, and Kubernetes

  1. 1. CLOUD NATIVE CAMEL RIDING WITH KUBERNETES AND OPENSHIFT @christianposta 17 June 2016
  2. 2. 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
  3. 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. 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. 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. 6. Infrastructure for scale Organizational structure Identify a useful domain model with boundaries TRANSFORMATION CHALLENGES
  7. 7. 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
  8. 8. Book checkout / purchase Title Search Recommendations Weekly reporting
  9. 9. 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
  10. 10. DO WE NEED INTEGRATON?
  11. 11. REAL DEVELOPERS RIDE CAMELS!
  12. 12. •  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
  13. 13. INTEGRATION HEAVY LIFTING: APACHE CAMEL
  14. 14. •  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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. •  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
  19. 19. LINUX CONTAINERS
  20. 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
  21. 21. FUSE INTEGRATION SERVICES https://docs.openshift.com/enterprise/3.1/using_images/xpaas_images/fuse.html
  22. 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. 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
  24. 24. MICROSERVICES PLATFORM ON KUBERNETES/OPENSHIFT
  25. 25. Christian Posta Principal Middleware Specialist/Architect Twitter: @christianposta Blog: http://blog.christianposta.com Email: christian@redhat.com Questions, Discussion, Demo!

×