Kiosk-Artikel

Funktionsvielfalt vergrößern: Eigene Module für Ansible aufsetzen

Ansible von Red Hat hat sich in den letzten Jahren zu einem beliebten Konfigurationswerkzeug gemausert und spielt eine wichtige Rolle bei DevOps und Cloud-Computing. Der reiche Fundus an eingebauten Modulen begründet die umfangreiche Funktionalität. Dieser Artikel zeigt, wie Sie selbst Module aufsetzen können, um diese Funktionsvielfalt weiter zu vergrößern. Dabei kommt Python zu Einsatz.

Kubernetes-Security: Ein Leitfaden zur Absicherung von Containernetzwerken

Kubernetes ist nicht mehr wegzudenken und genießt einen hohen Stellenwert bei Endnutzern und Public-Cloud-Providern. Der Trend zum eigenen Kubernetes-Cluster bleibt auch von Angreifern nicht unbemerkt. Die Vielschichtigkeit der Technologie, angefangen vom Design der laufenden Applikationen über Container hin zur Clusterarchitektur, erlaubt eine Menge neuer Angriffsvektoren und Potenziale für Fehlkonfigurationen.

Zahlen, bitte! Payment in Webapplikationen mit der W3C Payment Request API Specification

PayPal, giropay, Kreditkarte, Lastschrift oder Rechnungskauf – jedes Bezahlverfahren ist in der User Journey unterschiedlich umgesetzt. Jeder Shop implementiert einen anderen Check-out-Prozess, der Bezahlvorgang wird teilweise zusätzlich durch involvierte Zahlungsdienstleister beeinflusst. Adress- und Bezahldaten müssen bei jedem Onlineshop separat eingegeben werden. Eine einheitliche User Experience im E-Commerce ist so unmöglich. Eine W3C Candidate Recommendation verspricht Abhilfe.

Tests an die Front: Testing-Methoden und -Technologien im Überblick

Test-driven Development ist keine Mode, sondern professionelle Entwicklung. Anders als der Zuckerguss einer Torte ist Qualität auch kein Attribut, das nachträglich ergänzt werden kann, sondern muss von Anfang an berücksichtigt werden. Dieser Artikel soll einen Überblick über die zum Erreichen dieser Qualität nötigen Testing-Methoden und -Technologien geben.

Funktionsvielfalt vergrößern: Eigene Module für Ansible aufsetzen

Ansible von Red Hat hat sich in den letzten Jahren zu einem beliebten Konfigurationswerkzeug gemausert und spielt eine wichtige Rolle bei DevOps und Cloud-Computing. Der reiche Fundus an eingebauten Modulen begründet die umfangreiche Funktionalität. Dieser Artikel zeigt, wie Sie selbst Module aufsetzen können, um diese Funktionsvielfalt weiter zu vergrößern. Dabei kommt Python zu Einsatz.

Fernsteuern = fern(zer)stören?! Ist die Industrie wirklich schon bereit für einen Anschluss ans Internet?

Auf der Hannover Messe Industrie drehte sich dieses Jahr alles um die sogenannte Industrie 4.0, aber das Thema köchelt ja schon länger. Anscheinend kann es den Managern gar nicht schnell genug damit gehen, ihre Produktionsanlagen zu vernetzen und zumindest indirekt mit dem Internet zu verbinden. Dabei hat schon Stuxnet [1] gezeigt, welche Folgen Angriffe auf Industriesteuerungen haben können. Und seitdem ist es nicht besser geworden.

Java Microservices: ab in die Cloud – Hochdynamische Anwendungen mit Containern und Service Meshes

Microservices-basierte Anwendungen in Java zu realisieren, ist dank Spring Boot und Eclipse MicroProfile denkbar einfach. Das gilt sowohl für die Implementierung der Services selbst als auch für die grundlegende Unterstützung notwendiger Querschnittsdienste wie Logging, Tracing und Security. Was aber, wenn zusätzliche Flexibilität bezüglich Skalierung und Plattform gefragt ist? Bevor es mit der Anwendung in die Cloud geht, müssen zunächst noch ein paar Hausaufgaben erledigt werden.

Ein Blick unter die Haube: Aufbau und Anwendung von Node.js

2009 war die Geburtsstunde von Node.js und seitdem hat sich viel getan. Die Geschichte der serverseitigen JavaScript-Plattform ist voller Licht und Schatten. Mittlerweile hat sich Node.js jedoch in der Webentwicklung etabliert und kommt als Standalone-Server, im Verbund mit anderen Technologien, als Basis für Desktopapplikationen oder zur Entwicklung von Kommandozeilenwerkzeugen zum Einsatz. Grund genug für uns, einen Blick unter die Haube der Plattform zu werfen und herauszufinden, wie Node.js aufgebaut ist und wie es sich verwenden lässt.

DDD-Artikelserie: Ubiquitous Language – Warum ist Sprache so wichtig?

Ein Element, das in der gesamten Domain-driven-Design-Literatur querschnittlich präsent ist, ist die Ubiquitous Language, die allgegenwärtige Sprache. Allgegenwärtig bezieht sich darauf, dass es sich hierbei um eine Sprache handelt, die von Softwareentwickler*innen und Fachexpert*innen gemeinsam gesprochen wird. Diese Sprache soll dann auch die Basis für die Entwicklung des Softwaremodells sein. Im Rahmen dieses Artikels gehen wir erst auf die Motivation für die Etablierung einer Ubiquitous Language ein, bevor schließlich das Potenzial und die Möglichkeiten für die Arbeit mit einer solchen Sprache vorgestellt werden. Weiterhin werden noch kurz die Vorgehensweisen zur Herleitung einer Ubiquitous Language erläutert.

O Resilience, where art thou? Resilienz in verteilten Systemen mit Istio oder Hystrix

Je verteilter ein Softwaresystem 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 vermeiden, ist es mittlerweile üblich, mit den notwendigen Resilienzpatterns 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.

Von Anfang bis Ende: Integrationstests und Ende-zu-Ende-Tests in der Praxis

Im vorigen Artikel der Serie haben wir uns mit Tests auf der Komponentenebene befasst. Diese befinden sich in der Testpyramide weit unten, laufen schnell durch und weisen einen hohen Isolationsgrad auf. Zudem stellen sie die breite Masse dar, und man sollte auf sie am allerwenigsten verzichten. Leider findet man mit ihrer Hilfe nicht alle potenziellen Fehler in einer Anwendung. Das liegt daran, dass eine typische Anwendung einen komplexen Zustand aufweist, der häufig in unterschiedlichen Komponenten materialisiert ist.

Go Buffalo: Auf dem Büffel durch die Weiten des Webs

Die Weiten des Webs lieben Go. Aber auf der Suche nach dem passenden Web-Framework kann man sich leicht verirren. Die Suche hat jetzt ein Ende, denn mit Buffalo lernt ihr das vollständigste Ökosystem für Webanwendungen mit Go kennen. Mit diesem Büffel seid ihr auf jedem Ritt durch die Weiten des Webs richtig unterwegs.

DDD-Artikelserie: Strategic Design – Umfassend und ganzheitlich

Domain-driven Design bietet uns mit dem sogenannten Strategischen Design eine Anleitung, wie eine Domain und damit der Problemraum fachlich erfasst und aufgeteilt werden kann. Diese Aufteilung lässt sich dann auf den Lösungsraum – die Software – übertragen. Die Fachbegriffe aus DDD, die dabei eine Rolle spielen, sind: Domain, Subdomain, Bounded Context und schließlich die Context Map für das Zusammenspiel der Bounded Contexts. In diesem Artikel werden wir diese Begriffe und unser Verständnis davon vorstellen.

Cloud-Native-Starter-Projekt: Java EE und MicroProfile treffen auf Kubernetes und Istio

Nicht jede neue Anwendung muss als Microservices-Architektur „cloud-native“ entwickelt werden, aber das Thema Cloud-native hat mittlerweile sicherlich den Hypestatus überwunden und sich als feste Größe in der Anwendungsentwicklung etabliert. Allerdings bedeutet der Umstieg auf Cloud-native, dass man viel Neues lernen und alte Gewohnheiten aufgeben muss. Das kann schon viel auf einmal sein, wie wir selbst erfahren haben.