Cloud is in the house
News from our development department

 

Traffic telematics systems from Heusch/Boesefeldt have always been designed for high availability and scalability. In the cloud age, technologies and methods have developed that also pursue these goals and have matured into widespread IT standards. We have observed this development at Heusch/Boesefeldt. Meanwhile, we consider the technologies to be mature and established enough to use them in our systems ourselves.

As a result, we are now increasingly using

  •     Docker for packaging system components
  •     Kubernetes for the administration of container applications
  •     Prometheus and Grafana for system and component monitoring.


The systems' structure follows the microservice architecture approach with independently deployable software modules. The document-based database management system MongoDB is increasingly being used to store data, and MQTT messaging or streaming platforms (Apache Kafka) are used for detached and decoupled communication.

Kubernetes

With Kubernetes every developer has the possibility to deploy his application himself and to observe the behaviour during operation.

Found a bug? No problem, with Kubernetes we can roll out a new version without interrupting the service.

Thanks to Prometheus and Grafana, we always have meaningful data on how our application is doing and can take action in time before the user is disturbed.

Apache Kafka

Services should always be available. Microservices are often used in cluster systems to achieve this. For the many interfaces between the numerous services, appropriate interfaces have to be realized.

Instead of reinventing the wheel for each service, we use Kafka as an asynchronous interface between the individual instances.

Kafka is also ideal for event-based notifications, as there is no need to know who will receive the message when it is sent.

In contrast to other message brokers, with Kafka we can also retrieve data that has already been processed in order to get the current overall status (after a restart) and thus save ourselves an additional persistence layer.