Architektur

Microservice, wie hast du’s mit den Standards?

Microservices sind feingranulare, monothematische Dienste, aus denen robuste, skalierbare und widerstandsfähige Applikationen komponiert werden können. Jeder Microservice ist auf das Wesentlichste reduziert und klein genug, um einfach ausgetauscht oder entsorgt werden zu können [1]. Um Deployments einfach zu halten, folgen viele Frameworks dem container-less Deployment-Modell. Dafür setzen sie auf eigene Mechanismen, womit sie jedoch nicht mehr mit Java-Standards konform sind, was die Portabilität und Wiederverwendbarkeit einschränkt. Es gibt aber auch Alternativen. In diesem Artikel wird eine Auswahl der verfügbaren Frameworks hinsichtlich ihrer Standard-Konformität betrachtet und ein alternativer Ansatz – das Inkstand Framework – vorgestellt, das ausschließlich auf Java-EE-Standards setzt.

Software-Architektur: Die Schönheit liegt im Inneren

In unserer täglichen Arbeit beim Programmieren haben wir mit komplexen Strukturen zu tun. Ein normales Softwaresystem von 250.000 Zeilen Code hat bereits um die 3.000 Klassen. Diese Klassen arbeiten auf die eine oder andere Weise zusammen, um die gewünschte Funktionalität zu realisieren. In diesen vernetzten Strukturen dürfen wir Fehler beheben und neue Funktionalität hinzufügen.

Event Sourcing für reaktive Anwendungen

Unter Event Sourcing versteht man einen Architekturstil, in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden.

Event-driven-Architekturen mit Java: Vor- und Nachteile von Kafka und Kinesis

Event-driven-Architekturen sind kein neues Architektur-Pattern, haben aber – unter anderem durch das Reactive Manifesto – wieder mehr Aufmerksamkeit erfahren. Der Erfolg von LinkedIn, die stetig wachsende Verbreitung von elastischen Ansätzen in der Cloud und immer stärker zunehmende Datenmengen lassen diese Form der Architektur wieder interessanter werden. Doch wie genau kann so etwas mit modernen Komponenten implementiert werden?

Der wahre Grund für den Erfolg von Microservices

Über das Für und Wider von Microservices wird nach wie vor lebhaft diskutiert. Während manche dem neuen Architekturstil eher zurückhaltend und abwartend gegenüberstehen, werfen sich ihm andere mit offenen Armen entgegen. Vor allem für letztere hat Christian Posta, Middleware-Spezialist und Architekt bei Red Hat, aktuell einen Tipp parat: Demnach geht es bei der erfolgreichen Arbeit mit Microservices in erster Linie nicht um bestimmte Technologien wie Docker, Kubernetes oder SpringBoot.

Interaktivität erleben mit Enterprise Applications

Egal, ob Web oder Desktop, mit einer passenden Architektur kann man Applikationen bauen, die echte Zusammenarbeit ermöglichen. In einer 360-Grad-Rundumsicht betrifft das die Zusammenarbeit mit Kunden, mit Experten, mit Teamkollegen und mit Hilfskräften. In seiner Session auf der W-JAX 2014 zeigt Dierk König (Canoo Engineering AG) anhand konkreter Anwendungsbeispiele, welche Architekturen für die interaktiven Methoden geeignet sind und welche Möglichkeiten sie bieten.

IT Pros in der DevOps-Welt: „Wohl niemand würde drei Hotelzimmer buchen und nur eines nutzen“

Auf der DevOpsCon in Berlin, die 2015 zum ersten Mal stattfand, hat sich Rainer Stropek (software architects) mit „IT Pros in der Saas- und Paas-Welt“ beschäftigt. Admins sind heute nicht mehr nur mit unternehmenseigenen Datenbanken, dem Patchen von Kabeln und dem Verschalten von Netzwerken beschäftigt, sondern müssen laufend die Preis- und Angebotsdynamiken der Cloud mit im Blick haben, um je nach Business-Modell passende Architekturen zu bauen. Im Interview mit Sebastian Meyen, klärt Rainer Stropek auf über die neue Rolle des IT-Pro.

Stefan Tilkov antwortet auf Martin Fowler: Brauchst du Microservices, bau dir Microservices!

Vor kurzem hat sich Martin Fowler in der aktuellen Diskussion um Microservices zu Wort gemeldet, indem er das negative Bild von monolithischen Software-Architekturen zurechtrückt und die großen Systeme als ersten Ausgangspunkt von Microservices empfiehlt. Nun widerspricht Stefan Tilkov: Monolithen seien gerade kein geeigneter Ansatz für den Bau von Microservices. Werden sie zerlegt, sieht das Ergebnis meist anders aus, als von den Entwicklern erhofft.

Wider die Microservices: Monolithe als Fundament

Microservices sind zur Zeit in aller Munde: Vielstimmig werden sie als optimale Lösung gefeiert, um monolithische Architekturen zu überwinden. Doch mitunter sind auch gegenteilige Meinungen zu vernehmen. Martin Fowler, Urgestein der Softwareentwicklung, hat nun – basierend auf den Überlegungen zahlreicher Kollegen – zumindest eine kleine Lanze für die Monolithen gebrochen.

Project Avatar: Mehr als nur Node.js auf der JVM – Enterprise Java written in JavaScript!

Leichtgewichtige, asynchrone und eventgetriebene Architekturen sind derzeit angesagter denn je, der Server stellt lediglich die Ressourcen per (REST-/Push-)Services zur Verfügung und ein großer Teil der Logik wird in HTML5-Clients per JavaScript implementiert. Die Livedemo von Niko Köbler (Qualitects Group) zeigt, wie eine vollständige Java-EE-Applikation auf einem Java-EE-Server ganz ohne Java-Code erstellt werden kann, nur mit dem Einsatz von JavaScript.

Die Gefahren des Spaghetti-Code

Was kann passieren, wenn man sich auf sogenannten „Spaghetti-Code“ einlassen muss, um betriebsnotwendige Systeme am Laufen zu halten? Wir werfen einen Blick auf Toyotas Spaghetti-Code-Debakel und sehen uns an, wie die schlechten Angewohnheiten von Programmierern als vererbter Code den Kern des Problems ausmachen.

Microservices – weder Micro noch Service?

Passend zur DevOpsWeek zeigen wir eine Session von der letztjährigen W-JAX zu Microservices. Eberhard Wolff stellt zunächst vor, worum es bei der Zerlegung von Anwendungen in kleine Services wirklich geht und welches Architekturparadigma diesem Prozess zugrunde liegt. Wie klein sollen die Microservices aber eigentlich werden? Und welchen Nutzen bringen sie?

Microservices für komplexe Anwendungen

Die Microservice-Architektur, in der Anwendungen als ein Set von kleinen, genau fokussierten und unabhängig zu deployenden Services strukturiert werden, wird zunehmend beliebter. In seiner Keynote auf der JAX London zeigte Chris Richardson (Java Champion und Gründer von CloudFoundry) anhand von praktischen Beispielen, wie genau Anwendungen in solche Microservices zerlegt werden können und wie dadurch sowohl die Deployability als auch die Skalierbarkeit gesteigert wird.

OSGi enRoute: Ein neues Framework für OSGi-Anwendungen

Als wir im Jahr 1998 mit den Arbeiten an den OSGi-Spezifikationen begannen, hatten wir die Gelegenheit, ein Weltklasseframework für kleine Netzwerkgateways zu schaffen – das aktuelle Raspberry Pi ist im Vergleich dazu extrem leistungsfähig. Heute, sechszehn Jahre später, ist OSGi die führende Modularitätslösung für Java-Anwendungen auf dem Markt. Es ist eine Technologie, die wir für unabdingbar für die Entwicklung anspruchsvoller Java-Anwendungen halten. Dennoch zeigen diverse Blogs, dass einige falsche Annahmen über OSGi im Umlauf sind.

Language Engineering für Business-Anwendungen

Auf der letzten JAX London sprach Markus Völter (itemis AG) in seiner Keynote über Language-Oriented Business Applications. Dabei handelt es sich um das Modell einer Entwicklungsumgebung, in der Business User individuelle Software-Lösungen erstellen können. Im Video zeigt Markus Völter, wie und warum sprachorientierte Business-Anwendungen sinnvollerweise zum Einsatz kommen.