Red Hat Middleware Engineering No Coding Required · 2018-05-17 · Red Hat Middleware Engineering Saturn 2018. #MicroAdventures. Open Source: Freedom, Community, Sharing Evolution

Post on 22-May-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

No Coding RequiredBuilding a Kubernetes Native iPaaS

@KurtStam, PhDRed Hat Middleware Engineering

Saturn 2018

#MicroAdventures

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)

iPaaS = PaaS + Integration

Inherits all the characteristics from a PaaS and addsIntegration capabilities

The Red Hat PaaS consists of:

Docker Containers

OpenShift (Kubernetes Implementation)

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)

Syndesis iPaaS

Integration capabilities leveraging over 200 Apache Components.

Syndesis Connectors add DataShape In/OutCreate an integration from templatesPublish the integration (as Pod)

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

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.

12

Syndesis Model

Syndesis Infrastructure using Ambassador Pattern

14

Syndesis Meta

15

Syndesis Rest - JsonDB

16

Custom Application Controller: Integration

17

Integration Pod using Adapter Pattern

Demo: Twitter Search to Database

Twitter Keyword:

#SATURN18

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

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.

Comments? Questions?

@KurtStam, PhDRed Hat Middleware Engineering

Saturn 2018

23

Developer Extensions (code)

● Connectors

● Custom JDBC Drivers

● Steps

○ Camel Routes

○ Action Beans

● Community of Extensions at:

○ https://github.com/syndesisio/syndesis-extensions

24

Citizen Integrator Extensions (Swagger)

● Swagger API Connector imports○ OAuth 2 Support

top related