Quarkus Logger

alt text

This repo shall host all activities to create a quarkus based IoT logging landscape
It consist of some different parts:

  • Some IoT DHT sensors connected with an ESP8266 to a logging controller
  • A Logging controller realized in MQTT and NodeRed
    (installed in a Docker environment on a Raspberry Pi)
  • A Raspberry Pi Cluster based on an arm64 Ubuntu running a Kubernetes Cluster K3S,
    hosting a Quarkus application
  • A MariaDB database installed in a Docker container on a Raspberry Pi
  • Prometheus and Grafana installed in a Docker container on a Raspberry Pi

What is it for?

It is a project for self-learning different aspects of modern development:

  • How to build IoT landscapes?
  • Understanding modern IT Architectures including Microservices and Kubernetes Clusters
  • How to manage modern development processes including CI/CD, DevOps

Content:

IoT and Data Aspects The IoT side of the PoC (Producing/Consuming Sensor and other data from SmartHome)

Architecture, Quarkus, Kubernetes The Architecture with a Controller and a Rapberry Cluster hosting Docker and Kubernetes and running Middleware and a MicroService application (Quarkus-App)

Development Aspects The Development aspects including CI/CD

Complexity:

To be able to understand the whole lifecycle in a real life simulation the complexity is quite high. It spans from Arduino for sensors until Docker and Kubernetes to host Quarkus Microservices applications.

Usage Tool
Development IoT Arduino IDE C-code
Development IDE Visual Studio Code (Java, Python, JavaScrip code)
Programming Languages Java, Python, JavaScript
MicroService Framework Quarkus
Automatic Build and Packaging Maven
Source Control Git, GitHub
Deployment Container Staging DockerHub
Container Orchestration Kubernetes
CI/CD Jenkins
Database MariaDB
Database GUI Heidi-SQL
Monitoring Prometheus
Dashboards Grafana
Message Orchestration Node Red
Message Broker MQTT Mosqitto
OS for Development XUbuntu in VMWare Player
OS for Deployment Arm64 Ubuntu (emulated in QEMU)

What isn’t it?

The repo is NOT a ready to use package for production e.g. at home.
The ideas are still valid and all sceanarios runs but the code quality isn’t expected as world class, just to understand the scenarios.
I will improve the code quality and reduce the technical debts when I’ve a bit more time for it :-)

For Documentation see the doc folder
Documentation

For questions around the scenarios and technologies you can contact me of course:
winkel[at]egladil.de

Disclaimer:
If I have made some mistakes or have I violated copyright notices, please let me know so that I can correct it.