Project Context
The project VISP (V1-V3) was developed for Fresenius plants by Diovision. It is a high-availability system for monitoring and controlling medication production, digitalizing and securing the entire process from employee login at the machine to batch control.
Technical Evolution: From Monolith to Microservices
The system grew over several generations:
- V1/V2: Initially as a Node.js monolith with RabbitMQ for communication with industrial endpoints.
- V3: Complete restructuring of the backend architecture to a highly scalable microservice architecture. Here, Apache Kafka was introduced as the central event bus (with Avro schemas), while RabbitMQ continued to function as a specialized broker at the “Edge”.
Hardware-Close: Custom Yocto Linux & netPI
A critical success factor was the connection of hardware to the production machines. Hilscher netPI Industrial Nodes were used. Since standard control via Portainer/Docker did not offer sufficient access to hardware resources for the required performance, I developed a Custom Yocto Image.
This deep Linux customization enabled the direct integration of:
- RFID & Token Readers (PHG/Legic): Secure login and authorization check of employees.
- LED Signaling (BlinkStick): Real-time status display of the machine state directly on site.
- Touch Displays: Intuitive user interface for operators.
For efficient management and automation of the software rollout to the numerous netPI devices in the plants, Ansible was used.
Logic & Safety in Production
The system implements complex business logic for quality assurance:
- Concentration Protection: Automated logout and forced breaks for employees after defined time spans to prevent inspection errors.
- Qualification Check: Verification if an operator is qualified for a specific test. (Example: Exclusion of employees with red-green color blindness for visual medication checks).
Tech Stack Overview
- Languages: TypeScript (Backend & Frontend).
- Frameworks: Node.js, Angular, Kafka-Connect.
- Infrastructure: Kubernetes (Rancher), MySQL, Kafka Cluster, Docker, Ansible (Edge Deployment).
- Edge: Hilscher netPI, Custom Yocto Build, RabbitMQ.