The slide deck used in the Apache Camel / Syndesis Seminar at Red Hat, K.K., Ebisu --
https://jcug-oss.connpass.com/event/99168/
Uploaded with permission of Christina Lin
2. RED HAT CONSULTING2
TIME TABLE
18:30-19:15
CAMEL ON CLOUD
19:15 - 19: 30
BREAK
19:30 - 20: 00
SYNDESIS INTRO
20:00 - 20:30
IDEA BRAINSTORMING
ONE Minute
Each
20:30-21:00
IDEA JUDGE
6. 6
THREE PILLARS OF AGILE INTEGRATION
Key foundational capabilities needed by today’s enterprises
DISTRIBUTED
INTEGRATION
❏ Lightweight
❏ Pattern Based
❏ Event Oriented
❏ Community Sourced
MICROSERVICES
CONTAINERS
❏ Cloud Native Solutions
❏ Lean Artifacts
❏ Individually Deployable
❏ Container Based Scaling
and High Availability
APIs
❏ Well Defned
❏ Reusable
❏ Well Managed
End-points
❏ Ecosystem Leverage
FLEXIBILITY SCALABILITY RE-USABILITY
7. AGILE INTEGRATION ARCHITECTURE
Core Layer
External Applications
Network Gateway Layer
Containers
ContainerOrchestration(OpenShift)
7
Composite
Layer Service Interactions
Cloud Native
App (Runtime 1)
Enterprise Integration Patterns
Business Rules
Anti
Corruption
Layer
Containerized App
(Lift and Shift EAP)
SecurityServices(RHSSO)
DataServices(DataGrid)
Traditional
App (EAP)
VMs
APIManagement(3scale)
Policies Access Control Proxy Routing
Service Composition Events Mesh
DevOps Automation / Continuous Integration / Continuous Delivery (Ansible)
8. CONTAINERIZED. CLOUD DEPLOYMENT.
CAMEL IN A NUTSHELL
CHOOSE RUNTIME
DEFINE INTEGRATION
LOGIC
FROM ?
TO ?
ROUTE ?
TRANSFORM ?
API ?
● Leverage Agile Integration to
build new services
● And to integrate with existing
services and data
● Integration can be a key platform
for all app dev projects
● As well as migrations from
existing ESB vendors
Connect - Mediate - Transform: Data, Services and Information
9. INSERT DESIGNATOR, IF NEEDED9
WHAT IS APACHE CAMEL?
Split
orders
Send
each order
to it’s
process service
Electronics
Others
Customer
Purchase
from("fle:work/cbr/input")
.split(xpath("//orders"))
.choice()
.when(xpath("/order:order/order:type = 'E'"))
.to("activemq:queue:electronic/us")
.otherwise()
.recipientList(simple("http4://otherservice"));
10. INSERT DESIGNATOR, IF NEEDED10
PATTERN BASED
Split
orders
Send
each order
to it’s
process service
Electronics
Others
Aggregat
or
Normaliz
er
Content Enricher
Resequencer
28. IS MY ORGANIZATION DOING INTEGRATION?
POINT-TO-POINT (P2P)
SERVICE BUS
BUSINESS-TO-BUSINESS
DIY INTEGRATION
LEGACY INTEGRATION
MICROSERVICES
API-FOCUSED
AUTOMATION
CLOUD-NATIVE
SELF-SERVICE
29. 29
TWO DIMENSIONS OF DISTRIBUTED INTEGRATION
DISTRIBUTED
INTEGRATION
FLEXIBILITY
WHERE INTEGRATION IS USED
Integration at the center or the edge of
your enterprise architecture.
WHO PERFORMS INTEGRATION
Unlocking integration capability for new
categories of integrators.
30. Fuse Standalone Fuse on OpenShift Fuse Online (iPaaS)
● Developer-focused
● Integration where you
need it
● “Classic” integration
THE NEXT GENERATION OF RED HAT FUSE
Aligned product components of Fuse 7.x
● Developer-focused
● Microservices ready
● Scale out / Container
● “Cloud native”
integration
● Ignite : Low-code UI/UX
● 100% cloud-based
● Integration through a
browser
● “Ad Hoc” Integration
32. INSERT DESIGNATOR, IF NEEDED32
Self-service Integration
Low code integration platform for everyone
Fuse Online
Integration
Connectors
Customizations
Self-service
Drag and drop integrations
Runtime debug and activity
trace
Built-in connectors
- AMQ
- Database
- Salesforce and
more...
Customize Connectors
- Highly customizable
connectors from
developers
API Client Service Setup
from Swagger Documents
Customize Connectors,
code, component injections
33. Ease of Use
Drag and drop, plus simple confgurations
Design
Confg
Run
Design your
integration quickly on
the fy for
continuously
Innovative solutions.
Less.development
time, quick POC and
faster blueprint???!!
Built-in connectors
for major resources.
Easy drag and drop
data format mapping.
Simple confguration
interface
Hybrid environment,
on the cloud or on
premise.
United and
standardized platform
for integration
solutions.
Enhance
collaboration
experience for both
business user and
Developers
34. Working with APIs
API centric integration.
API
Services
Providers
Fuse Online
Swagger
Documents
36. 36
KEY SUCCESS FACTORS FOR CLOUD-NATIVE INTEGRATION
DEVELOPMENT
Ability to drive complete lifecycle from developer toolchain
Focus on code, not image building and resource defnition
End-to-end automation supporting continuous delivery
MANAGEMENT
Centralized management and monitoring
Manual and automated management through API, CLI, UI
Domain-specifc introspection into container runtime
SECURITY
Images require secure stack from top to bottom
Scaling analysis and remediation of security vulnerabilities
Container image provenance and transparency
OPERATIONS
Normalizing operations across workloads
Availability, scalability, and resiliency
Leveraging advanced deployment options
Enabled by using Fuse on OpenShift
37. Tools for success
Development
● Full lifecycle IDE
support
● Built-in
Connector/Transformat
ion/EIP
● Intuitive API creation
● Easy-to-use Toolings
● Quickstart templates
● Built-in CI/CD
capability
● Immutable
software image
builds
● Lightweight,
optimized for
microservices
43. Benefts of FUSE on OpenShift
Development
● Full lifecycle IDE support : create, test, build, deploy
● Quickstart templates for common integration scenarios allows
developers new to the platform to get up and running quickly.
● App packaging optimized for containerized environment ideal for
microservices architecture.
● Container builds integrated into development toolchain with options
to build from source or binary, aligning with current tools and
development workfow in use today.
● Tap into the power of the platform with easy-to-use extensions such
as injection of dynamic confguration values.
● Automated build triggers and pipeline support give users a
continuous integration and deployment environment out-of-the-box.
● Developers can focus on writing code and providing value to the
business rather than worrying about creating docker based images
and docker confguration fles for each application they create.
Management
● Insight into integration workload using centralized monitoring of integration activities based on ElasticSearch
and Kibana.
● Manual or automated administration of the runtime environment is a breeze leveraging administrative CLI,
API, and UI.
● Integration-specifc management, monitoring and debugging puts users in complete control of their
integration workloads running inside a container.
Operations
● Build on an environment that can seamlessly scale from 1s to 100s of integration containers using point-and-
click UI or automatable management controls.
● Virtualize integration services to provide location independence and automatic failover.
● Platform that automatically detects and recovers failed integration containers.
● Take advantage of advanced deployment options built into the platform such as rolling upgrade, canary, and
blue-green deployments.
Security
● Integration containers are built on the most secure container runtime on the planet based on RHEL.
● Services are independent and isolated, providing complete separation of integration execution.
● Network isolation provides additional security by restricting service visibility based on user-defned
partitions.
● Confdential storage of protected information such as passwords and keys.
● Red Hat scans and reports on container security via Red Hat Container Catalog. Freshness scores are public,
providing peace of mind. Red Hat patches security issues at the OS, JVM, and middleware level.Flexibility
● Runtime built on best-of-breed open source technologies
(Kubernetes, Linux Containers) provides an open, fexible foundation
for all service development.
● Container-native toolchain and ability to containerize existing
workloads (lift and shift) provide ideal platform for greenfeld,
brownfeld, and transitional workloads.
● Container-native, integrated middleware portfolio allows developers
to choose the right tool for the job on a single platform.
● Polyglot environment gives teams the fexibility to implement
services using the language of their choice.
https://docs.google.com/document/d/18g4nmGJpV2aU8Ve0das04Hy_ZV2by9rs10k6wGOa_V4/edit
44. CHANGES FOR USERS
● No More Fabric v1
● Major upgrade: from Karaf 2.4 to 4.2.x
● Most Karaf Shell commands renamed
● Extensive JMX MBean Changes
● Base bundles have changed
○ User defned features may need updating to pick up right
bundles.
○ Recompile needed to pick up new versions of imported
packages
45. NEW FEATURES
● OSGi R6 support (vs OSGi r5 in Karaf 2.4.x)
● Requires Java 8
● More lightweight: Blueprint not needed
● Maven plugin to generate minimal Karaf servers.
● Shell improvements
● Undertow web provider
● Narayana TX Manager
● log4j, log4j2, and logback supported
● Typed confg fles
46. NO EMBEDDED AMQ BROKER
● No AMQ Broker == Lighterweight Karaf Server
● Faster startup
● Easier to troubleshoot AMQ issues
● Blueprint used to confgure connection factories
47. IMPLEMENTATION RECOMMENDATIONS
● Dependency Injection
● Camel XML DSL Support
● More dynamic service
injection model
● Can lead to service timeouts
● Faster startup
● Camel Java DSL
● Better for Pure OSGi fans
● More static service injection
modals
SCRBLUEPRINT
48. Undertow
● Undertow is the default web container
● Jetty only supported as an HTTP client
● Does not affect:
○ Simple Wars
○ Servlets
● Affects
○ Customized jetty xml confgurations
○ Bundles using Jetty specifc APIs like some of their WebSocket
apis.
49. Narayana
● New TX manager abstraction layer
● Existing JMS/JDBC connection factories need to be reconfgured.
52. UNDERTOW/CXF CONSUMERS
● Added support for the native EAP undertow server on consumer
endpoints for:
○ camel-undertow
○ camel-cxf
● Fuse EAP 6.x fat WAR workaround:.
○ Should switch to 'skinny' WAR deployments
55. MIGRATING TO FUSE 7 EAP
● Apps typically do not need a recompile
● Users need to follow the EAP 7.1 migration guide
● CXF workarounds should be removed
● wildfy-maven-plugin : port 9999 -> 9990
● BOM updates recommended
57. ● Custom fat jar layouts
● Secured endpoints
● API to expose JMX endpoints
● Support for transaction manager confguration
● Camel health checks exposed to actuator
● Camel Component Customizers
SPRING BOOT 1.5 / CAMEL
58. STANDALONE
● Actually Supported in 6.3 but not promoted.
● Existing Examples just needs:
○ -Dfabric8.skip
○ Runnable jar is in target dir
61. SUPPORTED SPRING BOOT COMPONENTS
● Spring Boot Web (Undertow)
● Actuator
● JTA/Narayana starter
● AMQ starter
● JDBC starter
● Security + Keycloak
● Camel Component Starters: https://goo.gl/CLiJ8x
62. UNDERTOW
● Undertow is our recommended Web Container
● Just a dependency change is need in the POM
● No Application changes should be needed
● Tomcat/JWS support is being sorted out
64. SECURITY
● KeyCloak is Integration with Spring Security:
https://goo.gl/DesZmg
● Use camel-servlet with spring-web
65. IMPLEMENTATION RECOMMENDATIONS
● Spring Boot
Developers
● More fexible and re-
usable EIP
development.
● IDE Tooling Support
● Older Spring Shops
XML DSLJava DSL
Read more: http://goo.gl/F9TUJ3