Download - Cloud Native Camel Riding
![Page 1: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/1.jpg)
Cloud native Camel riding with Kubernetes and OpenShift
![Page 2: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/2.jpg)
Christian Posta Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: [email protected]
• Committer on Apache Camel, Apache ActiveMQ, Fabric8
• Worked with largest Microservices, web-scale, unicorn companies
• Blogger, speaker about DevOps, integration, and microservices
• Currently writing “Microservices for Java developers” for
O’Reilly (June 2016)
Cloud Native Architectures
![Page 3: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/3.jpg)
Cloud Native Architectures
![Page 4: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/4.jpg)
Ifchangeishappeningontheoutsidefasterthanontheinsidetheendisinsight.
Jack Welch, former CEO, GE
Cloud Native Architectures
S&P company life expectancy
![Page 5: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/5.jpg)
Cloud Native Architectures
Source: Dave Gray, The Connected Company
![Page 6: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/6.jpg)
Source: Dave Gray, The Connected Company
![Page 7: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/7.jpg)
• Trying to incorporate new technology? • Trying to copy what others (Netflix, Amazon) 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
![Page 8: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/8.jpg)
Cloud Native Architectures
• Faster software delivery • Own database (data) • Faster innovation • Scalability • Right technology for the
problem • Test individual services • Isolation • Individual deployments
![Page 9: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/9.jpg)
Microservices helps solve the problem of “how do we decouple our services and teams to move quickly at scale to deliver business value”
Cloud Native Architectures
![Page 10: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/10.jpg)
Microservices Envy: http://www.thoughtworks.com/radar/techniques/microservice-envy
You’re not going to do microservices http://christianposta.com/blog/not-gonna-happen
![Page 11: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/11.jpg)
• If my services are isolated at the process level, I’m doing #microservices
I’m doing microservices if…
• If I use REST/Thrift/ProtoBuf instead of SOAP, I’m doing #microservices
• If I use JSON, I’m doing #microservices • If I use Docker / SpringBoot / Dropwizard /
embedded Jetty, I’m doing #microservices
![Page 12: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/12.jpg)
PeopletrytocopyNet7lix,buttheycanonlycopywhattheysee.Theycopytheresults,nottheprocess.
Adrian Cockcroft, former Chief Cloud Architect, Netflix
![Page 13: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/13.jpg)
![Page 14: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/14.jpg)
Callitwhatyouwant;SOA,microservices–it’salljustdistributedsystems
Christian Posta – Red Hat
Cloud Native Architectures
![Page 15: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/15.jpg)
Cloud Native Architectures
![Page 16: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/16.jpg)
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
![Page 17: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/17.jpg)
Cloud Native Architectures
If we have to take into account the network, do we still need integration?
![Page 18: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/18.jpg)
Cloud Native Architectures
We’ll just do reactive, event-driven distributed systems… still need integration?
![Page 19: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/19.jpg)
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
![Page 20: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/20.jpg)
Heavy Lifting: Camel for Microservices
![Page 21: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/21.jpg)
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”)
![Page 22: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/22.jpg)
Real developers ride Camels!
![Page 23: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/23.jpg)
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
![Page 24: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/24.jpg)
• “Smart endpoints, dumb pipes” • Endpoint does one thing well • Metadata used for further routing • Really “dynamic” with rules engine (eg,
Drools/BRMS)
Dynamic Routing
![Page 25: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/25.jpg)
REST DSL
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”); }}
![Page 26: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/26.jpg)
• Throttle EIP • http://camel.apache.org/throttler.html
• Blocking SEDA Queue • from(“seda:name?size=100&blockWhenFull=true)
• Configure jetty/netty to use blocking acceptor queues • https://wiki.eclipse.org/Jetty/Howto/High_Load
• Using Exception handling/retry and DLQ logic when getting flow controlled • http://camel.apache.org/error-handling-in-camel.html
Backpressure with Camel
![Page 27: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/27.jpg)
Circuit breaker
public class OrderProcessorRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from(“direct:someinterface”) .loadbalance()
.circuitBreaker(3, 20000L, MyException.class).to(“ibatis:storeOrder?statementType=Insert”);
}}
![Page 28: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/28.jpg)
Cloud Native Architectures
Quick Demo?
![Page 29: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/29.jpg)
Cloud Native Architectures
![Page 30: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/30.jpg)
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?
![Page 31: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/31.jpg)
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
![Page 32: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/32.jpg)
Cloud Native Architectures
Reasonable solutions
• Automate, automate, automate
• Duct tape, shoe string, bungee cords
• Rely on templates, versioning, scm
• Fuse Fabric
![Page 33: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/33.jpg)
![Page 34: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/34.jpg)
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
![Page 35: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/35.jpg)
Docker / Linux Containers
![Page 36: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/36.jpg)
![Page 37: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/37.jpg)
Kubernetes
![Page 38: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/38.jpg)
![Page 39: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/39.jpg)
• Developer focused workflow • Enterprise ready • 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
OpenShift
![Page 40: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/40.jpg)
Red Hat OpenShift
Public PaaS Service
On-premise or Private PaaS Software
Open Source PaaS Project
![Page 41: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/41.jpg)
![Page 42: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/42.jpg)
Cloud Native Architectures
![Page 43: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/43.jpg)
RED HAT JBOSS FUSE
Development and tooling
Develop, test, debug, refine, deploy
JBoss Developer Studio
Web services framework Web services standards, SOAP, XML/
HTTP, RESTful HTTP
Integration framework Transformation, mediation, enterprise
integration patterns
Management and monitoring
System and web services metrics,
automated discovery, container status, automatic updates
JBoss Operations Network
+ JBoss Fabric Management
Console (hawtio)
Apache CXF Apache Camel
Reliable Messaging JMS/STOMP/NMS/MQTT, publishing-subscribe/point-2-point, store and forward
Apache ActiveMQ
Container Life cycle management, resource management, dynamic deployment,
security and provisioning
Apache Karaf + Fuse Fabric
RED HAT ENTERPRISE LINUX Windows, UNIX, and other Linux
![Page 44: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/44.jpg)
44
Enterprise Service Bus?
![Page 45: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/45.jpg)
![Page 46: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/46.jpg)
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)
![Page 47: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/47.jpg)
Cloud Native Architectures
Fuse Integration Services for OpenShift
• Manage them with Kubernetes/OpenShift
• Flat class loader JVMs
• Take advantage of existing investment into Karaf with
additional options like “just enough app server”
deployments
• Supports Spring, CDI, Blueprint
![Page 48: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/48.jpg)
Cloud Native Architectures
![Page 49: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/49.jpg)
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
![Page 50: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/50.jpg)
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?
![Page 51: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/51.jpg)
Cloud Native Architectures
![Page 52: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/52.jpg)
Cloud Native Architectures
![Page 53: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/53.jpg)
Cloud Native Architectures
5 min demo
![Page 54: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/54.jpg)
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
![Page 55: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/55.jpg)
Cloud Native Architectures
Quick Demo?
![Page 56: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/56.jpg)
• Trying to incorporate new technology? • Trying to copy what others (Netflix, Amazon) 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
![Page 57: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/57.jpg)
• 100% open source, ASL 2.0 • Technology agnostic (java, nodejs, python,
golang, etc) • Built upon decades of industry practices • 1-click automation • Cloud native (on premise, public cloud, hybrid) • Complex build/deploy pipelines (human
workflows, approvals, chatops, etc) • Comprehensive integration inside/outside the
platform
What if you could do all of this right now with an open-source platform?
![Page 58: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/58.jpg)
![Page 59: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/59.jpg)
![Page 60: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/60.jpg)
• Docker native, built on top of Kubernetes API • Out of the box CI/CD, management UI • Logging, Metrics • ChatOps • API Management • iPaaS/Integration • Chaos Monkey • Lots and lots of tooling/libraries to make
developing cloud-native applications easier
http://fabric8.io
![Page 61: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/61.jpg)
![Page 62: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/62.jpg)
![Page 63: Cloud Native Camel Riding](https://reader034.vdocuments.mx/reader034/viewer/2022042600/5876fd771a28abf3398b6a5f/html5/thumbnails/63.jpg)
Christian Posta Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: [email protected]
Questions and
Discussion