SLIDE 1 No Coding Required
Building a Kubernetes Native iPaaS @KurtStam, PhD
Red Hat Middleware Engineering
Saturn 2018
SLIDE 2
SLIDE 3
#MicroAdventures
SLIDE 4 Open Source: Freedom, Community, Sharing
Evolution of Open Source Middleware Internet:
- Middleware Infrastructure JEE/ESB (JBoss, Apache)
- End User Applications (Firefox)
Cloud:
- PaaS: Automation of Shipping and Deployment
○ (Containers + Kubernetes/OpenShift)
- iPaaS: - ‘Camel in the Cloud’ (Syndesis)
SLIDE 5
iPaaS = PaaS + Integration
Inherits all the characteristics from a PaaS and adds Integration capabilities The Red Hat PaaS consists of: Docker Containers OpenShift (Kubernetes Implementation)
SLIDE 6
SLIDE 7
SLIDE 8 Kubernetes Container Patterns
Kubernetes provides automated deployment, operations, and scaling of applications Patterns:
- Liveness and readiness probes
- ConfigMap & Secrets
- Graceful termination (rolling upgrade or node drain for maintenance)
SLIDE 9
Syndesis iPaaS
Integration capabilities leveraging over 200 Apache Components. Syndesis Connectors add DataShape In/Out Create an integration from templates Publish the integration (as Pod)
SLIDE 10
Syndesis target user: Engage users at all levels
Integration for the novice and the expert Novice users want a curated experience with a no-code toolchain Expert users want flexibility, drill-down, extensibility Bridge user populations, allowing experts to help novices
SLIDE 11
Syndesis Development Process
OpenShift and Camel are the upstream projects UX Driven to avoid Camel specifics leaking into the UI Each merged PR creates new Docker SnapShot builds to DockerHub Each developer has local MiniShift and we all share a common staging environment UI and Backend developer working simultaneously using JSON data graphs stored in database.
SLIDE 12 12
Syndesis Model
SLIDE 13
Syndesis Infrastructure using Ambassador Pattern
SLIDE 14 14
Syndesis Meta
SLIDE 15 15
Syndesis Rest - JsonDB
SLIDE 16 16
Custom Application Controller: Integration
SLIDE 17 17
Integration Pod using Adapter Pattern
SLIDE 18
SLIDE 19
Demo: Twitter Search to Database
Twitter Keyword:
#SATURN18
SLIDE 20
Lessons Learned (1)
MonoRepo: Easy to lose track of all pieces that go into the build. Java: JVM tends to consolidate services to reduce memory footprint - Tune and set limits Java. UX first worked quite well but UX was always the bottleneck Angular UI ‘template-based’ as much as possible
SLIDE 21 Lessons Learned (2)
Camel: We drove a lot of changes upstream into Camel to support extensibility Kubernetes Cloud changes everything - Makes it super easy to start but there is a learning curve to debug distributed issues. MiniShift: Each Developer their own MiniShift, allows for hooking up the
- debugger. Perfect for controlling the development environment.
SLIDE 22 Comments? Questions?
@KurtStam, PhD
Red Hat Middleware Engineering
Saturn 2018
SLIDE 23 23
Developer Extensions (code)
- Connectors
- Custom JDBC Drivers
- Steps
○ Camel Routes ○ Action Beans
- Community of Extensions at:
○ https://github.com/syndesisio/syndesis-extensions
SLIDE 24 24
Citizen Integrator Extensions (Swagger)
- Swagger API Connector imports
○
OAuth 2 Support