Flottenmanagement für Flurförderzeuge

Mein Kunde zählt weltweit zu den drei erfolgreichsten Unternehmen in dem Bereich der Flurförderzeug-, Lager- und Materialflusstechnik. Zu seinen Produkten zählt eine webbasierte Flottenmanagement Software, über die Lagerleiter ihre gesamte Flurförderzeugflotte unabhängig von deren Größe und Komplexität verwalten können. Über die Software lassen sich u.a. Fahrerberechtigungen verwalten, Fehlbedienungen (z.B. Unfälle und Stürze) auslesen und Analysen zur Kostenoptimierung der Flurförderzeugflotte fahren. Hierfür kommuniziert die Software über eine abgesicherte Internetverbindung mit den Fahrzeugen. Dabei werden die letzten Meter ggf. durch eine Funkverbindung zu einem Gateway überbrückt.

Aufgaben

Software für das Batteriemanagement

  • Entwicklung eines Microservices in Go (golang)
    • Authentifizierung via [https://oauth.net/2/](OAuth 2.0)
  • Entwicklung einer Software für den die Analyse und Aufbereitung von Fahrzeugdaten (Einsatznachrichten)
    • Konzeption und Implementierung einer Schnittstelle für das Importieren von Daten aus dem Altsystem (HTTP Polling)
  • Aufbau von Deployment Pipelines (Continuous Delivery)
    • Erzeugen von Docker Images
    • Anwenden von Infrastruktur-Änderungen
    • Automatisches Deployment (mit manuellem Freigabeprozess für Produktion)
    • Tech Stack: AWS CodePipeline, CodeBuild, CodeDeploy, Clair scanner, Quay Docker Registry, Terraform
  • Betrieb in Amazon Web Services (AWS)
    • Planung der Infrastruktur
    • Beschreiben der Infrastruktur mit Terraform Konfigurationsdateien (Infrastructure as Code)
  • Unit Tests & Integration Tests
  • Resilience Testing

Iteratives Herauslösen von Komponenten aus dem monolithischen Altsystem

  • Auslagern der Fahrzeugkonnektierung (initiale Aktivierung des Nachrichtenversands und Übertragung der Fahrerberechtigungen) in Microservices
    • Reverse Engineering nicht dokumentierter Schnittstellen
    • Analyse des Altsystems, Erstellung von Sequenzdiagrammen, Dokumentation
    • Entwicklung von Microservices in PHP (Vanilla PHP, Pimple, Doctrine, Symfony Komponenten)
    • Entwicklung einer CLI Applikation für die Verarbeitung von Jobs
      • Verwendung der Job Queue beanstalkd; parallele Verarbeitung mit mehreren PHP Prozessen
      • Speichern von Daten in MongoDB
    • Entwicklung einer JSON-RPC Schnittstelle für die Kommunikation mit dem Altsystem
    • Anpassungen am Altsystem für die Aktivierung der neuen Konnektierung via Feature Flag
    • Unit Tests
    • Erzeugen von Docker Images
    • Entwicklung von Skripten für den Build Prozess (Concourse CI, Quay Docker Registry)
  • Einführung von Keycloak für Identity und Access Management
    • Auslagern von User Management und Authentifizierung nach Keycloak
    • Konzeption und Entwicklung der On-the-Fly Migration von Benutzern
      • Entwicklung eines User Providers in Java
      • Implementierung einer JSON-RPC Schnittstelle im Altsystem für die Authentifizierung von Benutzern
      • Integration von Übersetzungen aus PhraseApp
      • Unit Tests
    • Entwicklung zusätzlicher Health Check Endpunkte
    • Aufbau der Deployment Pipeline (Continuous Delivery)
      • Erzeugen des Docker Images
      • Anwenden von Infrastruktur-Änderungen
      • Automatisches Deployment (mit manuellem Freigabeprozess für Produktion)
    • Betrieb in Amazon Web Services (AWS)
      • Planung der Infrastruktur
      • Beschreiben der Infrastruktur mit Terraform Konfigurationsdateien (Infrastructure as Code)