Liquibase Lock Release with K8s Scheduled Job
If you ever ran a serious production database (is there any other kind, really? 🤔 ), you are most likely using some sort of database migration tool. Tools like Flyway, Liquibase or Knex for JS are pretty good at that and haven’t caused much trouble in our lives until we started treating our apps as cattle and run them in K8s, replicated, rescheduled every now and then, without us even knowing.
Bringing fresh new look to the site with Hugo
The day has finally come! I have mustered up time, strenght and willpower to move from Wordpress into something more exciting. You might argue that it’s unnecessary and that I could have continued with WP but the truth is that I wanted something more involved where I could get my hands dirty figuring out stuff. You can figure stuff out in Wordpress, edit the theme etc… But I was never a Wordpress fanboy because of bloat and all the PHP.
Kubernetes Health Probes With Spring Boot 101
Kubernetes health probes have just become first class citizens in Spring Boot! Just before the release of Spring Boot 2.3, this article appeared on the Spring blog. These are awesome news because now you can leverage the framework and remove all that custom logic for liveness and readiness checks you have written in the past. In this post, let’s see how you can setup this feature in your application. Create a demo application For this tutorial, create a simple spring boot web application that fetches some products.
Stop Abusing Dependency Injection in Spring
I love Spring framework, Dependency Injection and everything it has done for mankind (or Java developers, at least). And I hope that it thrives for many more years and helps us write amazing software (or gives us the tools for it, at least). However, more than a fair share of projects I have encountered in my career do have a tendency to abuse some or many tools the framework. I want to think that this is just a coincidence.
Inspect JVM running in Kubernetes with VisualVM
Often times, you will run into obscure errors that require you to take a peek under the JVM hood, which in itself can be a daunting task. In this tutorial, we will take a look on how to troubleshoot a running application in a Kubernetes cluster with VisualVM as well as how to inspect Heap Dumps and how to pass them from the container to our machine. For this example, we have a Hello Spring Boot Application (the code can be found here) that saves a timestamp of each request in memory (in order to provide us some interesting data for us to analyze later on).
Auto Generate Mysql Tables Startup Spring Data
Why would you want to auto-generate MySQL tables on startup with Spring Data? A lot of times, I will run into a project and see this “smart” way to automate schema and table creation where there is either a sidecar that executes a bash script or even worse, have it in the Dockerfile. As tempting as that hack is, it is totally unnecessary as we have everything we need to do that with out of the box.
Remote Debug a Spring Boot Application Running in Kubernetes
There will be times when debugging on your local machine just won’t do it due to configs, environments, etc… In that case, wouldn’t it be great you can actually remote debug your Spring Boot app running in your Kubernetes cluster? In this tutorial, we’ll take a look at a pretty straightforward way in debugging Spring applications on Kubernetes. There are certain times when you want to do this, as you might have an integrated K8s setup, with ConfigMaps, Secrets and other services.