fuse integration-services
TRANSCRIPT
Christian Posta Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: [email protected]
• 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
Ifchangeishappeningontheoutsidefasterthanontheinsidetheendisinsight.
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
Callitwhatyouwant;SOA,microservices–it’salljustdistributedsystems
Christian Posta – Red Hat
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
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
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
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
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
Christian Posta Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: [email protected]
Questions and
Discussion