Blog & Artikel

Blog-Post

Kubernetes Probes

Kubernetes probes are for validating container health and readiness. But how should these probes be used? Do we need both? Can we share endpoints? This post tries to give some recommendations.

Artikel

Identifikation von Qualitätsanforderungen mit Quality Storming

Quality Storming ist ein Workshop zur Identifizierung von Qualitätsanforderungen auf der Grundlage eines Qualitätsmodells wie beispielsweise der ISO 25010 Norm. Die Methode setzt dabei auf Methoden und Ideen des Collaborative Modeling, das in der Domain-driven Design Community populär ist. Ein wichtiger Aspekt in diesem Zusammenhang ist die Zusammenarbeit verschiedener Stakeholder und Abteilungen.

Artikel

Command & Control, SAFe, Domain-driven Design, and Release Trains

Handling Complex Software Projects

Artikel

Einführung in ReplicaSet und Service

Um eine Anwendung ausfallsicher in einem Kubernetes-Cluster zu betreiben, wird diese mit mehreren Pod-Instanzen betrieben. Dadurch stellt sich allerdings die Frage, wie wir anschließend dafür sorgen, dass diese Pods auch für Clients innerhalb des Clusters einfach erreichbar sind. Um diese Frage und um eine verbesserte Version zur Replizierung von Pods geht es in diesem Artikel.

Blog-Post

Hidden Champion - SQLite Datenbanken in Go

Wenn Sie ein Smartphone verwenden, MacOS oder Chrome User sind, ist die Chance groß, dass sie in irgendeiner Form SQLite Benutzer sind. SQLite ist wohl die am meisten verwendete Datenbank, ohne dass sie je besonders im Rampenlicht gestanden hätte.

Blog-Post

Don’t tell me I’m not building a web application

Artikel

Das eierlegende Truffleschwein

Viele, die im Java-Umfeld unterwegs sind, werden von ihr gehört haben: der sagenumwobenen GraalVM. Diese magische neue Virtual Machine für Java soll vor allem für blanke Performance sorgen, indem sie den Java-Bytecode in nativen Code kompiliert. Dadurch fällt insbesondere der Startup-Overhead weg, da weite Teile der Initialisierung bereits vom Compiler erledigt werden. Doch das ist bei weitem nicht das einzige Feature, welches Oracle der GraalVM gegeben hat. Hinzu kommt, dass die GraalVM zu nicht weniger das Potential hat als eine neue Ära der polyglotten Programmierung auf der JVM einzuläuten. Die Rede ist von der Truffle API, einem generischen Framework zur Implementierung von Interpretern.

Artikel

Was ist die Magie von Spring Boot?

Spring Boot wurde entwickelt, um uns bei der Entwicklung von Spring-Anwendungen Arbeit und Entscheidungen abzunehmen. In der Praxis funktioniert dies so gut, dass häufig das Wort Magie verwendet wird. Die Verwendung dieses Wortes deutet jedoch auch darauf hin, dass wir nicht mehr wirklich verstehen, was dort vor sich geht. Genau dies möchte ich mit diesem Artikel angehen und dazu einen Einblick geben, wie Spring Boot funktioniert.

Artikel

Warum Domain-driven Design?

Fachlich sinnvoll schneiden

Blog-Post

Rails und DRY-Zugriffsrechte

CanCan(Can) ist ein mächtiges Authorisierungs-Framework im Rails-Umfeld, womit sehr feingranular Zugriffsrechte definiert werden können. mit feinerer Granularität dieser «can»-Regeln steigt jewoch die Gefahr, dass Status-Logik des Modells dupliziert wird, wenn die Anwendungs-Performanz eine Rolle spielen soll. In diesem Artikel möchte ich dazu einige Gedanken zu Lösungsmustern aufführen, die ich mir im Rahmen der Entwicklung unseres (künftigen) internen Rechnungstools gemacht habe.

Blog-Post

Warum Quarkus.io _nicht_ geiler ist als Spring

Quarkus.io ist ein neues Framework, das optimiert ist, um Java Anwendungen Cloud Native laufen zu lassen. Sollte ich meine Java-Anwendungen daher jetzt nicht mehr in Spring Boot sondern in Quarkus.io entwickeln?

Artikel

Brauchen asynchrone Microservices und SCS ein Service Mesh?

Da lässt sich doch was meshen

Artikel

Architektur­entscheidung im agilen Team

Eine schlechte Architekturentscheidung kann Projekte zum Scheitern bringen. Das passiert oft, wenn ein Architekt alle wichtigen Entscheidungen alleine trifft und nie oder sehr spät Feedback bekommt, ob sie gut oder schlecht waren. Oder aber auch, wenn ein “agiles” Team mit dem Architekten die Architekturarbeit aus dem Fenster geworfen hat. Schade, denn wenn man wichtige Entscheidungen nicht einfach dem Lauf der Dinge oder einem Elfenbeinturmbewohner überlässt, findet man viel besser Lösungen.

Blog-Post

So you want to compose some functions

Let’s say you have a list of functions and you want to compose them. Should be trivial, right? Of course it is, but maybe there’s an elegant way.

Artikel

Software-Architektur: Worauf es ankommt

Grundlagen für Software-Architektur

Blog-Post

An Introduction to TypeScript

An ongoing architecture trend towards smaller services and faster, agile feature development gives developers some freedom to try out new languages and frameworks. TypeScript and Node seem to have a bad reputation amongst some backend developers although the language can be a perfect fit for many challenges in modern software development.

Blog-Post

Traefik v2 and Mastodon, a wonderful couple!

Traefik and Mastodon are a wonderful combination. However, practical guides for Traefik v2 are rare and Mastodon dropped its guide for deployment using docker. In this blog post I will show an easy solution for setting up a Mastodon instance behind Traefik as reverse proxy with almost all required configuration made in a self-contained docker-compose file.

Blog-Post

Cloud Computing and Carbon Footprint

How vendor lock-in can harm a company’s green business plan

Blog-Post

What Could Possibly Go Wrong

What could possibly go wrong if you put Clojure 1.10 and Scala 2.13 on the same classpath? We’re about to find out.

Blog-Post

code-your-model

Some time ago I was looking for some simple, lightweight tool to document a complex, modularized model. I was not able to find anything that fits my requirements or expectations, so I came up with my own idea. Today, a good 15 months later, I want to introduce it to you.

Artikel

Alle 11 Minuten verliebt sich ein Microservice in Linkerd

Das Istio Service Mesh hat einen sympathischen Konkurrenten

Blog-Post

Hallo 👋, hier ist INNOQ Nürnberg!

In und um Nürnberg arbeiten einige Kollegen und Kolleginnen bei INNOQ. Was ihnen wichtig ist, wie sie den Standort organisieren und was es jetzt Neues gibt, darum geht es im aktuellen Post.

Artikel

User Experience Design

Software ist allumfassender Teil unseres Lebens – User Experience Design macht Nutzer zu dem allumfassenden Teil des System-Engineerings.

Blog-Post

Automating GitHub Pages Deployments with GitHub Actions

Artikel

Cloud-native, Microservices, Domain-driven Design, Kubernetes

Software-Entwicklung unterliegt schon immer Hypes. Im Moment reden alle über Microservices und Cloud-native. Aber helfen diese Ansätze wirklich weiter?