Understand the Root Cause of Regressions with Git Bisect

In this series, I cover a lot of magical tools and git bisect is probably the best example of such magic. The hardest part in debugging is knowing the general area of the bug… and bisect literally shines a light on the specific commit that caused it! Before we begin, let’s make one thing clear: bisect is a tool for …

Read More »

NoSQL Use Cases: When to Use a Non-Relational Database

For decades, many companies have relied on relational databases to store, protect, and access their data. SQL databases, in particular, worked well for a long time and still do for many use cases. But, today, there is a wide range of situations where SQL databases can no longer satisfy the needs of modern enterprises, especially those that have made the …

Read More »

Stateless, Secretless Multi-cluster Monitoring in Azure Kubernetes Service with Thanos, Prometheus and Azure Managed Grafana

Introduction Observability is paramount to every distributed system and it’s becoming increasingly complicated in a cloud native world where we might deploy multiple ephemeral clusters and we want to keep their metrics beyond their lifecycle span. This article aims at cloud native engineers that face the challenge of observing multiple Azure Kubernetes Clusters (AKS) and need a flexible, stateless solution, …

Read More »

How to Deploy a Vaadin Application to Google Cloud App Engine

I tried to deploy a Vaadin application to Google Cloud App Engine. It was not as straightforward as expected, so I want to share my findings. The example project is available on GitHub: https://github.com/simasch/vaadin-appengine-demo The Vaadin Application First, I’ve created a new Vaadin application: https://start.vaadin.com Then I did a production build: mvn package -Pproduction That will generate an executable JAR …

Read More »

Discussing Backend For Front-end

In the good old days, applications were simple. A browser sent a request to a webapp endpoint; the latter fetched data from a database and returned the response. The rise of mobile clients and integrations with other apps upset this simplicity. I want to discuss one solution to handle the complexity in this post. The increased complexity of system architecture …

Read More »

Released: OpenJDK 18.0.2, 17.0.4, 15.0.8, 13.0.12, 11.0.16, 8u342

Java has regular patch and security updates that are co-ordinated across the community, they happen once per quarter. When these updates happen, there are fixes including security issues that are addressed, all of which are displayed on Foojay.io. The next quarterly release of the OpenJDK has been made available, as scheduled, for July 2022, impacting a number of OpenJDK releases. …

Read More »

The Cost of Production Blindness

When I speak at conferences, I often fall back to the fact that just a couple of decades ago we’d observe production by kicking the server. This is obviously no longer practical. We can’t see our production. It’s an amorphous Cloud that we can’t touch or feel. A power that we read about but don’t fully grasp. In this case, …

Read More »

Kubernetes and the Data Centre: Is Full Scale Migration Possible?

Data centres used to be exactly that – the centres of our data worlds, where all information, files and records would be kept and controlled. Today, that is no longer the case. More companies are moving to cloud services, whether this is dialling down on their traditional on-premises environments or never setting them up in the first place. This is …

Read More »

General Build Distribution: A Game-Changer or a Gimmick?

Understand the performance potential of remote and distributed builds and explore how to improve build feedback times. The Remote and Distributed Build Patterns article explains the differences between remote and distributed builds and variations on each. Specifically, we distinguished between “test distribution” and “general build distribution”. This article discusses distributed builds in a broader perspective of improving build feedback times. …

Read More »