Formen der agilen Integration - eine Auslegeordnung

Blogserie | Agile Integration | #1

Autor: Thomas Stuber

Traditionelle, zentrale Integrationslösungen führen zu organisatorischen Bottlenecks und verschenken die Vorteile von modernen Architekturkonzepten wie Microservices oder Cloud-nativen Entwicklungen. Benötigt werden daher innovative Ansätze, welche eine dezentrale Integration durch die DevOps Teams ermöglichen (siehe Blogbeitrag Rethink your integration strategy). Doch welche Formen stehen zur Verfügung? Und welche eignen sich für Ihre Bedürfnisse? In diesem Blog geben wir einen Überblick, welche Formen für eine agile Integration genutzt werden können und welche zu Ihren Bedürfnissen passen.

Vereinfacht lassen sich die Technologien und Konzepte, welche für eine agile Integration verwendet werden können, wie folgt aufteilen (in Anlehnung an Gartner [1]):

  • Integration Platform as a Service (iPaaS)

    Typischerweise Cloud-hosted Integrationsplattformen, welche meist Low- oder No-Code Anwendungen anbieten. Diese bieten eine einfache Nutzung, welche auch “Citizen Integratoren” anspricht.

  • Distributed Integration Plattform (DIP)

    Eine DIP wird durch ein Plattform Team selbst bereitgestellt. Die Nutzer der DIP entwickeln Integrations-Logik, welche als Microservices gepackt und als Container deployed werden.

  • Integrationsframework

    Ein Integrationsframework erlaubt es, Integrationen direkt in der eigenen Applikation zu implementieren, ohne einen zusätzlichen Container zu deployen. Oftmals werden diese Frameworks auch bei DIPs zur Umsetzung verwendet.

Für jede der genannten Formen gibt es eine Vielzahl an Produkten am Markt. Eine klare Abgrenzung zwischen diesen ist nicht immer gegeben. Oftmals verschmelzen die Funktionalitäten ineinander. Es ist natürlich auch möglich, diese Formen in einem hybriden Modus zu verwenden - ganz individuell und abhängig von den Bedürfnissen und der Strategie des Unternehmens.

Werden die Formen der agilen Integration nach Komplexität zur Umsetzung und Betrieb sowie nach Einsatzflexibilität betrachtet, so gibt es folgende Auslegeordnung:

1_Formen der Agilen Integration - eine Auslegeordnung_Abbildung_DE.png
Abbildung 1: Formen der agilen Integration

iPaaS - Schnelle und Business-nahe Integration

Eine iPaaS bietet den Vorteil, dass diese nicht selbst betrieben werden muss. Ebenfalls ermöglicht sie den Usern meist eine einfache und schnelle Nutzung via GUI. So werden auch Citizen Integratoren bedient; also Personen, welche keine Softwareentwickler sind. Entsprechend wird hier über No-Code oder Low-Code Ansätze integriert. Vorgefertigte Adapter ermöglichen das Anbinden einer Vielzahl von Anwendungen, Systemen oder Datentypen. Gerade im Cloud-Umfeld gibt es eine breite Auswahl, bekannte Beispiele sind Dell Boomi oder Microsoft Azure Integration Services. 
In der Praxis haben solche iPaaS Lösungen jedoch häufig schnell Limitierungen. Oftmals sind die Integrationsprobleme so vielfältig und speziell, dass die einfachen Adapter von iPaaS Lösungen nicht alle Fälle abdecken können (beispielsweise die Anbindung an Event-Streaming-Systeme). Können Erweiterungen selbst hinzugefügt werden, ist wieder ein Entwicklungsteam nötig, um die Erweiterungen zu programmieren. Daher eignen sich iPaaS Lösungen unserer Ansicht nach eher für Firmen mit einer überschaubaren Integrationskomplexität oder mit stark standardisierten (Cloud)-Schnittstellen. Allenfalls auch als Ergänzung zu einer bestehenden DIP, sofern sich ein dualer Betrieb wirtschaftlich lohnt.

DIP - Integration nach DevOps Philosophie

Auf einer DIP hingegen werden Integrationen typischerweise als Code entwickelt. Dadurch besteht viel mehr Kontrolle und Flexibilität bei der Umsetzung gegenüber einer iPaaS. Ebenso ermöglicht es den DevOps Teams die Integrationen analog der DevOps Philosophie und den agilen Methoden angepasst zu bauen und zu betreiben. Die DIP stellt zudem die nötigen Grundlagen bereit, welche die Teams zur Umsetzung nützen können (z.B. Libraries, Monitoring, Dokumentation) oder auch unterstützende Infrastruktur für die gängigen Integrationspattern (z.B. Streaming, Messaging oder API Management). Präferiert werden die Integrationen in einer DIP mittels einem Integrationsframework entwickelt. Dadurch erreicht man eine höhere Standardisierung und profitiert zudem von der breiten und spezialisierten Funktionspalette des Frameworks. Unserer Erfahrung nach haben Entwickler, welche bereits mit Microservices arbeiten, einen natürlichen und sehr schnellen Zugang zu einer DIP. Red Hat Fuse on OpenShift oder MuleSoft Anypoint Platform (Private Cloud Edition) sind übrigens entsprechende Beispiele einer solchen Plattform.
Die Kehrseite einer DIP ist, dass die Entwicklungsteams einiges Know-how zur Entwicklung von Integrations-Microservices aufbauen müssen und moderne Arbeitsweisen nach agilen Methoden verstehen sollten. Hinzu kommt, dass der Aufwand zum Betrieb einer DIP deutlich höher ist als die Nutzung einer iPaaS.

Integrationsframework - Integration in der Applikation

Integrationsframeworks sind Libraries, welche essentielle Integrationsmuster out of the box anbieten. Diese Frameworks kann man entweder innerhalb einer Anwendung einbetten, oder für den Bau von dedizierten Integrations-Anwendungen (Microservices) verwenden (DIP). Integrationsframeworks bieten eine eigene Domain Specific Language (DSL) an, mit welcher die Integrationsaufgaben effizient umgesetzt werden können. Des Weiteren halten sie eine Vielzahl von Adapter bereit, um die gängigen Anwendungsschnittstellen (REST, SOAP) und Datentypen (JSON, XML) zu integrieren. Bekannte Beispiele für Integrationsframeworks sind Spring Integration oder Apache Camel.
Integrationsframeworks sind aus Sicht des Entwicklerteams spannende Werkzeuge, die viel Flexibilität bieten und auch bestens zu den gängigen agilen Entwicklungsmethoden passen. Werden Integrationsframeworks ohne eine DIP verwendet, fehlen typischerweise Aspekte wie beispielsweise Governance und Operations (z.B. Monitoring). Es besteht das Risiko eines gewissen “Wildwuchs”. Folglich werden weitere Aufwände nötig, um diesem Problem entgegenzutreten.

Empfehlung

In diesem Blog haben wir eine Übersicht geschaffen, welche Technologien und Konzepte für die Umsetzung einer agilen Integration genutzt werden können und haben die Vor- und Nachteile beleuchtet. Zusammengefasst empfehlen wir aufgrund unserer Erfahrungen folgende Einsatzszenarien:

  • Wir sehen iPaaS Lösungen eher für leichtgewichtige (Cloud) Integrationen mit Firmen ohne eigene Software-Entwicklungsteam.
  • Eine DIP hingegen eignet sich sehr gut für grössere Unternehmen mit moderner Ausrichtung und agiler Softwareentwicklung nach DevOps.
  • Integrationsframeworks (ohne die Verwendung einer DIP) sollten wohl überlegt sein und eignen sich bei Unternehmungen mit technisch versierten Teams.

“Die” Lösung gibt es aber auch hier nicht. Schlussendlich kommt es auf die konkreten Problemstellungen respektive auf die Bedürfnisse einer Unternehmung an.

 

Quelle

  1. Gartner (10 March 2021): Choosing Application Integration Platform Technology

 

Blogserie:

#1 | Formen der agilen Integration - eine Auslegeordnung

#2 | 5 Learnings zur agilen Integration (comming soon)

#3 | Integration as a Microservice (comming soon)

#4 | Kontrollierte Risiken: Agile Integration erfordert automatisierte Tests (comming soon)

#5 | Agile Integration mit Red Hat leicht gemacht (comming soon)

 

Ihr ipt-Experte

Ich freue mich auf Ihre Kontaktaufnahme