Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
An easier way to integrate
microservices!
Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
•  Committer on Apache Camel, Apache ActiveMQ, Fabric8
•  Spent lot of time working with one of the largest Microservices, web-
scale, unicorn companies
•  Blogger / speaker about DevOps, open-source, integration, and
microservices
Cloud Native Architectures
If	change	is	happening	on	the	outside		
faster	than	on	the	inside	the	end	is	in	sight.	
Jack Welch, former CEO, GE
Cloud Native Architectures
S&P company life expectancy
•  Trying to incorporate new technology?
•  Trying to copy what others are doing?
•  Tactical automation?
•  Created a “DevOps” team?
•  Exploring cloud services?
•  Build/deploy automation?
•  OpenSource?
•  Piecemeal integration?
How are you keeping up with change?
Cloud Native Architectures
Cloud Native Architectures
•  Faster software delivery
•  Own database (data)
•  Faster innovation
•  Scalability
•  Right technology for the
problem
•  Test individual services
•  Isolation
•  Individual deployments
Poll:	are	you	doing	microservices?	
Yes	
No	
Not	sure	
Cloud Native Architectures
Call	it	what	you	want;	SOA,	microservices	–		
it’s	all	just	distributed	systems	
Christian Posta – Red Hat
Cloud Native Architectures
Cloud Native Architectures
Cloud Native Architectures
Fallacies of distributed computing
•  Reliable networking
•  Latency is zero
•  Bandwidth is infinite
•  Network is secure
•  Topology doesn’t change
•  Single administrator
•  Transport cost is zero
•  Network is homogenous
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Cloud Native Architectures
Scalable, fault tolerant
Cloud Native Architectures
Do we need integration?
Cloud Native Architectures
Do we need integration?
Cloud Native Architectures
Evolution loop
Cloud Native Architectures
Yes; we need reliable integration!
•  REST, RPC
•  Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka, etc)
•  Legacy (SOAP, mainframe, file processing, proprietary)
•  Managed file processing
•  Streaming
•  Message transformation
•  EIPs
Cloud Native Architectures
Apache Camel to the rescue!
•  Small Java library
•  Distributed-system swiss-army knife!
•  Powerful EIPs
•  Declarative DSL
•  Embeddable into any JVM (EAP, Karaf, Tomcat, Spring
Boot, Dropwizard, Wildfly Swarm, no container, etc)
•  Very popular (200+ components for “dumb pipes”)
Cloud Native Architectures
Apache Camel to the rescue!
•  Automatic retries, backoff algorithms
•  Dynamic routing
•  Powerful testing/mocking framework
•  Circuit breakers
•  Backpressure mechanisms
•  Beautiful REST DSL with built in Swagger support
Cloud Native Architectures
Cloud Native Architectures
Typical problems developing microservices
•  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?
Cloud Native Architectures
Shared infrastructure platforms headaches
•  Different teams
•  Different rates of change
•  VM sprawl
•  Configuration drift
•  Isolation / multi-tenancy
•  Performance
•  Real-time vs batch
•  Compliance
•  Security
•  Technology choices
Cloud Native Architectures
Reasonable solutions
•  Automate, automate, automate
•  Duct tape, shoe string, bungee cords
•  Rely on templates, versioning, scm
•  Fuse Fabric
Cloud Native Architectures
Immutable infrastructure/deploys
•  “we’ll just put it back in Ansible”
•  Avoid chucking binaries / configs together and hope!
•  Cattle vs Pets
•  Don’t change it; replace it
•  System created fully from automation; avoid drift
•  Eliminate manual configuration/intervention
Cloud Native Architectures
Fuse Integration Services for OpenShift
•  Set of tools for integration developers
•  Build/package your Fuse/Camel services as Docker
images
•  Run locally on CDK
•  Deploy on top of OpenShift
•  Plugs-in to your existing build/release ecosystem
(Jenkins/Maven/Nexus/Gitlab,etc)
Cloud Native Architectures
Fuse Integration Services for OpenShift
•  Manage them with Kubernetes/OpenShift
•  Flat-class loaders
•  Take advantage of existing investment into Karaf with
additional options like “just enough app server”
deployments
•  Supports Spring, CDI, Blueprint
Cloud Native Architectures
Cloud Native Architectures
Using FIS on Red Hat CDK
•  Small VM run locally by developers
•  Full access to Docker, Kubernetes, OpenShift
•  Deploy your suite of microservices with ease!
•  Uses Vagrant/VirtualBox
•  Getting Started on Windows! http://bit.ly/1U5xU4z
Cloud Native Architectures
Docker and Kubernetes
•  Virtualized, isolated, containerized apps
•  Lightweight packaging model (similar to git diffs)
•  Immutability built in
•  Cluster management
•  start/stop/liveness/health, service discovery, dns,
routing
•  Deploy applications using “reconciliation of state” vs
step-by-step scripting
Cloud Native Architectures
OpenShift
Higher level constructs on top of lower level abstractions
A PaaS built on native Docker/Kubernetes
Adds enterprise-necessary features
security
users/groups/permissions/quotas
source-to-image builds
autoscaling
deployment config
software defined networking out of the box
Cloud Native Architectures
Typical problems developing microservices
•  How to run them all locally?
•  How to package them
•  How to test?
•  Vagrant? VirtualBox? VMs?
•  Specify configuration
•  Process isolation
•  Service discovery
•  Multiple versions?
Cloud Native Architectures
Cloud Native Architectures
5 min demo
Cloud Native Architectures
Cloud Native Architectures
What’s included in FIS?
•  Docker base images
•  Source to Image base images
•  Archetypes for new-project creation
•  Maven plugins
•  AMQ discovery (within OpenShift) plugin
•  HawtIO based camel tooling for web-based JVM/Camel
introspection/visualization
Cloud Native Architectures
10 min demo
Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
Questions
and
Discussion

More Related Content

Fuse integration-services

  • 1. An easier way to integrate microservices!
  • 2. Christian Posta Principal Middleware Specialist/Architect Twitter: @christianposta Blog: http://blog.christianposta.com Email: christian@redhat.com •  Committer on Apache Camel, Apache ActiveMQ, Fabric8 •  Spent lot of time working with one of the largest Microservices, web- scale, unicorn companies •  Blogger / speaker about DevOps, open-source, integration, and microservices Cloud Native Architectures
  • 4. •  Trying to incorporate new technology? •  Trying to copy what others are doing? •  Tactical automation? •  Created a “DevOps” team? •  Exploring cloud services? •  Build/deploy automation? •  OpenSource? •  Piecemeal integration? How are you keeping up with change? Cloud Native Architectures
  • 5. Cloud Native Architectures •  Faster software delivery •  Own database (data) •  Faster innovation •  Scalability •  Right technology for the problem •  Test individual services •  Isolation •  Individual deployments
  • 9. Cloud Native Architectures Fallacies of distributed computing •  Reliable networking •  Latency is zero •  Bandwidth is infinite •  Network is secure •  Topology doesn’t change •  Single administrator •  Transport cost is zero •  Network is homogenous https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  • 11. Cloud Native Architectures Do we need integration?
  • 12. Cloud Native Architectures Do we need integration?
  • 14. Cloud Native Architectures Yes; we need reliable integration! •  REST, RPC •  Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka, etc) •  Legacy (SOAP, mainframe, file processing, proprietary) •  Managed file processing •  Streaming •  Message transformation •  EIPs
  • 15. Cloud Native Architectures Apache Camel to the rescue! •  Small Java library •  Distributed-system swiss-army knife! •  Powerful EIPs •  Declarative DSL •  Embeddable into any JVM (EAP, Karaf, Tomcat, Spring Boot, Dropwizard, Wildfly Swarm, no container, etc) •  Very popular (200+ components for “dumb pipes”)
  • 16. Cloud Native Architectures Apache Camel to the rescue! •  Automatic retries, backoff algorithms •  Dynamic routing •  Powerful testing/mocking framework •  Circuit breakers •  Backpressure mechanisms •  Beautiful REST DSL with built in Swagger support
  • 18. Cloud Native Architectures Typical problems developing microservices •  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?
  • 19. Cloud Native Architectures Shared infrastructure platforms headaches •  Different teams •  Different rates of change •  VM sprawl •  Configuration drift •  Isolation / multi-tenancy •  Performance •  Real-time vs batch •  Compliance •  Security •  Technology choices
  • 20. Cloud Native Architectures Reasonable solutions •  Automate, automate, automate •  Duct tape, shoe string, bungee cords •  Rely on templates, versioning, scm •  Fuse Fabric
  • 21. Cloud Native Architectures Immutable infrastructure/deploys •  “we’ll just put it back in Ansible” •  Avoid chucking binaries / configs together and hope! •  Cattle vs Pets •  Don’t change it; replace it •  System created fully from automation; avoid drift •  Eliminate manual configuration/intervention
  • 22. Cloud Native Architectures Fuse Integration Services for OpenShift •  Set of tools for integration developers •  Build/package your Fuse/Camel services as Docker images •  Run locally on CDK •  Deploy on top of OpenShift •  Plugs-in to your existing build/release ecosystem (Jenkins/Maven/Nexus/Gitlab,etc)
  • 23. Cloud Native Architectures Fuse Integration Services for OpenShift •  Manage them with Kubernetes/OpenShift •  Flat-class loaders •  Take advantage of existing investment into Karaf with additional options like “just enough app server” deployments •  Supports Spring, CDI, Blueprint
  • 25. Cloud Native Architectures Using FIS on Red Hat CDK •  Small VM run locally by developers •  Full access to Docker, Kubernetes, OpenShift •  Deploy your suite of microservices with ease! •  Uses Vagrant/VirtualBox •  Getting Started on Windows! http://bit.ly/1U5xU4z
  • 26. Cloud Native Architectures Docker and Kubernetes •  Virtualized, isolated, containerized apps •  Lightweight packaging model (similar to git diffs) •  Immutability built in •  Cluster management •  start/stop/liveness/health, service discovery, dns, routing •  Deploy applications using “reconciliation of state” vs step-by-step scripting
  • 27. Cloud Native Architectures OpenShift Higher level constructs on top of lower level abstractions A PaaS built on native Docker/Kubernetes Adds enterprise-necessary features security users/groups/permissions/quotas source-to-image builds autoscaling deployment config software defined networking out of the box
  • 28. Cloud Native Architectures Typical problems developing microservices •  How to run them all locally? •  How to package them •  How to test? •  Vagrant? VirtualBox? VMs? •  Specify configuration •  Process isolation •  Service discovery •  Multiple versions?
  • 32. Cloud Native Architectures What’s included in FIS? •  Docker base images •  Source to Image base images •  Archetypes for new-project creation •  Maven plugins •  AMQ discovery (within OpenShift) plugin •  HawtIO based camel tooling for web-based JVM/Camel introspection/visualization
  • 34. Christian Posta Principal Middleware Specialist/Architect Twitter: @christianposta Blog: http://blog.christianposta.com Email: christian@redhat.com Questions and Discussion