Artikel

Einführung in Jenkins: Wie man einen Jenkins-Cluster aufbaut

Sobald der Deployment-Prozess mit Jenkins mehrere Stufen annimmt und zusätzlich noch automatisierte Tests in größeren Projekten dazukommen, muss man sich mit dem Thema Skalierung auseinandersetzen. Erschwerend kann hinzukommen, dass mehrere Teams mit Jenkins arbeiten und die fertigen Applikationen für mehrere Kunden in unterschiedlichen produktiven Umgebung bereitstellen sollen. Eine Möglichkeit, Jenkins zu skalieren, ist der Aufbau eines Jenkins-Clusters.

Service Mesh vs. Framework: Resilienz in verteilten Systemen mit Istio oder Hystrix

Je verteilter ein Software-System konzipiert wird, desto mehr sollte über Resilienz nachgedacht werden. Durch die Verteilung kann es immer wieder zu Fehlersituationen beim Aufruf der beteiligten Kommunikationspartner kommen. Um die Auswirkungen dieser Fehler möglichst gering zu halten oder eventuell ganz zu zu vermeiden, ist es mittlerweile üblich, mit den notwendigen Resilienz-Patterns zu arbeiten. Ob man sich besser via Service-Mesh-Werkzeug oder Framework um die Resilienz kümmert? Beide Ansätze haben etwas für sich.

Spring Boot vs. Eclipse MicroProfile: Microservices-Frameworks im Vergleich

Microservices werden im Java-Umfeld immer öfter mit Spring Boot gebaut. Wer aus dem Java-EE- bzw. Jakarta-EE-Lager kommt, hat mit dem Eclipse MicroProfile eine Alternative zur Hand. Wo liegen die Gemeinsamkeiten, wo die Unterschiede? Wir haben mit Tim Zöller, Entwickler bei der ilum:e informatik ag und Sprecher auf der JAX 2019, über den alten Gegensatz „Spring versus Java EE“ gesprochen. Kommt es im Zeichen der Microservices zu einer Neuauflage unter dem Banner „MicroProfile versus Spring Boot“?

Innovatives Machine Learning mit dem Apache-Kafka-Ökosystem

Machine Learning (ML) ermöglicht es Anwendungen, versteckte Erkenntnisse zu gewinnen, ohne explizit dafür programmiert worden zu sein, worauf sie bei der Erkenntnisfindung achten müssen. So können unstrukturierte Daten analysiert, Bild- und Spracherkennung verbessert und fundierte Entscheidungen getroffen werden. In diesem Artikel werden wir vor allem neue Trends und Innovationen rund um Apache Kafka und Machine Learning diskutieren.

5 Take-aways von der Serverless Architecture Con 2019: Fit fürs „serverlose“ Zeitalter

Das Thema Serverless steckt vielleicht nicht mehr in den Kinderschuhen, aber dennoch stehen wir noch ganz am Anfang einer großen Sache. Für die Entwicklerwelt stehen jedenfalls interessante Zeiten ins Haus, wenn man sich die Gespräche und Talks auf der diesjährigen Severless Architecture Conference 2019 noch einmal ins Gedächtnis zurückholt. Viel altes Wissen wird nun noch wichtiger, aber etliche Dinge, von denen man glaubte, sie wären für die Ewigkeit geschaffen, stehen auf dem Prüfstand. In unseren 5 Take-aways haben wir die interessantesten Erkenntnisse von der Konferenz zusammengefasst.

Unter der Haube von Amazon Corretto: So funktioniert die Java-Distribution von Amazon

Sowohl bei Kunden von Amazon Web Services (AWS) als auch innerhalb von Amazon findet sich eine große Community von Java-Entwicklern. Amazon unterstützt diese Community zukünftig mit Amazon Corretto, einer kostenlosen, plattformübergreifenden Distribution von OpenJDK. Dieser Artikel gibt einen Einblick in die Vorteile und die Details von Amazon Corretto, das derzeit für Java 8 und Java 11 zur Verfügung steht.

Die Jagd nach Performance: Ist Reactive Programming der richtige Weg?

Reactive Programming verspricht eine höhere Performance von Enterprise-Java-Anwendungen bei geringerem Speicherbedarf. Erreicht wird dieses Versprechen, indem blockierende Aufrufe vermieden werden. Blockierende Aufrufe führen im Betriebssystem immer zu Prozess- und damit zu Kontextwechseln. Solche Kontextwechsel haben einen hohen CPU- und Speicher-Overhead. Dieser Overhead wird durch weniger Kontextwechsel reduziert. Erkauft wird dieser Performancegewinn von Reactive Programming allerdings durch schlechtere Wartbarkeit der Software. Ist die höhere Performance aber diesen Preis wert, und was sind die Alternativen? Dieses Thema wollen wir uns einmal genauer anschauen.

Serverless Architecture Conference 2019 eröffnet: „Es geht um nichts weniger als die Zukunft der Softwareentwicklung“

Der Begriff Serverless ist, wie wir alle wissen, irreführend. Server gibt es nach wie vor – auch im Serverless-Paradigma. Doch was genau ist Serverless dann eigentlich? Dieser und weiteren Fragen gehen wir auf der gerade eröffneten Serverless Architecture Conference 2019 auf den Grund. Mit ersten Unklarheiten wurde im Eröffnungspanel mit Nikhil Barthwal, Niko Köbler, Sebastian Meyen, Ory Segal und Christian Weyer aufgeräumt.

Funktionale Java-Entwicklung: Unveränderliche Klassen mit der Bibliothek Immutables

In der funktionalen Programmierung sind unveränderliche Daten ein unverzichtbares Werkzeug. Und auch Java hat in der Vergangenheit das eine oder andere funktionale Konzept adaptiert. Eine native Unterstützung für Unveränderlichkeit fehlt jedoch nach wie vor. Mit Hilfe geeigneter Drittbibliotheken lässt sich aber einiges erreichen. In diesem Artikel wollen wir daher die Generierung von unveränderlichen Klassen mit Hilfe der Bibliothek Immutables vorstellen.

Buchtipp: Bad Programming Practices 101

Wer ein Lehrbuch sucht, das Designpatterns und andere „positive“ Aspekte der Informatik erklärt, findet schnell diverse Kandidaten. Apress – der Verlag lieferte einst Klassiker wie Ted Faisons Ausführungen zur eventorientierten Programmierung – legt mit „Bad Programming Practices 101“ nun ein Werk vor, das „das Böse im Coder“ zu wecken sucht.

FXGL Tutorial: Kollisionen hinzufügen mit JavaFX

Willkommen zum dritten Teil unseres FXGL-11-Tutorials! Nachdem wir unser Spiel mit Grafiken und Soundeffekten ausgestattet haben, werden wir uns in diesem Teil dem Hinzufügen von Kollisionen widmen. Hier können Sie den zweiten Teil des Tutorials nachholen, falls Sie das noch nicht gemacht haben sollten. Wie zuvor gilt, dass dieses Tutorial auf FXGL 11.0+ und Java 11+ ausgelegt ist.

Java 12 Tutorial: So funktionieren die neuen Switch Expressions

Java verharrte bislang beim switch-case-Konstrukt sehr bei den uralten Wurzeln aus der Anfangszeit der Programmiersprache und den Kompromissen im Sprachdesign, die C++-Entwicklern den Umstieg erleichtern sollten. Relikte wie das break und bei dessen Fehlen das Fall-Through waren wenig intuitiv und luden zu Fehlern ein. Zudem war man beim case recht eingeschränkt bei der Notation der Werte. Das alles ändert sich glücklicherweise mit Java 12. Dazu wurde die Syntax leicht modifiziert und erlaubt nun die Angabe einer Expression sowie mehrerer Werte beim case. Auf diese Weise lassen sich Fallunterscheidungen deutlich eleganter formulieren.