Top Banner
No Coding Required Building a Kubernetes Native iPaaS @KurtStam, PhD Red Hat Middleware Engineering Saturn 2018
24

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

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Red Hat Middleware Engineering No Coding Required · 2018-05-17 · Red Hat Middleware Engineering Saturn 2018. #MicroAdventures. Open Source: Freedom, Community, Sharing Evolution

No Coding RequiredBuilding a Kubernetes Native iPaaS

@KurtStam, PhDRed Hat Middleware Engineering

Saturn 2018

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

#MicroAdventures

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

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)

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

iPaaS = PaaS + Integration

Inherits all the characteristics from a PaaS and addsIntegration capabilities

The Red Hat PaaS consists of:

Docker Containers

OpenShift (Kubernetes Implementation)

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

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)

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

Syndesis iPaaS

Integration capabilities leveraging over 200 Apache Components.

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

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

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

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

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.

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

12

Syndesis Model

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

Syndesis Infrastructure using Ambassador Pattern

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

14

Syndesis Meta

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

15

Syndesis Rest - JsonDB

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

16

Custom Application Controller: Integration

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

17

Integration Pod using Adapter Pattern

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

Demo: Twitter Search to Database

Twitter Keyword:

#SATURN18

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

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

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

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.

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

Comments? Questions?

@KurtStam, PhDRed Hat Middleware Engineering

Saturn 2018

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

23

Developer Extensions (code)

● Connectors

● Custom JDBC Drivers

● Steps

○ Camel Routes

○ Action Beans

● Community of Extensions at:

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

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

24

Citizen Integrator Extensions (Swagger)

● Swagger API Connector imports○ OAuth 2 Support