Dieses Repository dient als Grundlage und Vorlage für die 60-minütige Fallstudie im Rahmen des Auswahlverfahrens für die Position Automation Engineer (m/w/d).
Ein interner Service (z. B. eine API für Infrastruktur-Status) soll automatisiert überwacht, die Daten verarbeitet und der Deployment-Prozess abgesichert werden.
💡 Freie Wahl der Skriptsprache: Du kannst diese Aufgabe in der Programmier- bzw. Skriptsprache deiner Wahl lösen! Im Repository findest du Vorlagen für:
- Python:
main.py- Bash / Shell:
main.sh- PowerShell:
main.ps1Nutze einfach die Vorlage/Sprache, mit der du am besten vertraut bist (oder erstelle eine eigene).
- Skripterstellung: Implementiere die Automatisierungslogik in deiner gewählten Sprache (z. B.
main.py,main.shodermain.ps1). - API-Abruf: Rufe Daten von einer REST-API ab (z. B.
https://jsonplaceholder.typicode.com/todosoder eine Mock-API) inkl. robustem Error Handling / Timeout-Management. - Transformation & Aggregation: Filtere und transformiere die Daten (z. B. Identifikation von fehlerhaften/unerledigten States, Berechnung von Quoten) und ermittle einen Status (
HEALTHYvs.WARNING). - Output: Erstelle einen strukturierten JSON-Report oder Metrics-Payload über
stdout/ Datei.
- Dockerfile: Schreibe ein kompaktes und sicheres Dockerfile für deinen Service/Skript passend zu deiner gewählten Sprache/Runtime (schlankes Base-Image, Non-Root-User, Best Practices).
- GitHub Actions Pipeline: Erstelle/erweitere die Workflow-Datei (
.github/workflows/main.ymlbzw..github/workflow/main.yaml), die bei einempushauf denmain-Branch automatisch:- Den Code prüft und testet (Syntax-Check / Unit Test / Linter).
- Das Docker-Image baut.
- Einen simulierten Deployment-Step oder eine Benachrichtigung (z. B. Webhook/Status-Echo) triggert.
Beantworte kurz die folgenden konzeptionellen Fragen (in der README oder als separate Notiz/Whiteboard):
- Monitoring & Observability: Wie würdest du diesen Service in eine moderne Monitoring-Landschaft (z. B. Grafana / Prometheus / OpenTelemetry / Loki) einbinden?
- Secret Management: Wie gehst du mit Secrets (z. B. API-Tokens, Webhook-URLs, Credentials) im CI/CD-Prozess und zur Laufzeit sicher um?
- Orchestrierung: Wie bettest du den Service auf einer Orchestrierungs-Plattform ein (z. B. Rundeck, n8n, Kubernetes CronJob, StackStorm)?
.
├── .github/
│ └── workflow/
│ └── main.yaml # GitHub Actions CI/CD Pipeline
├── Dockerfile # Container-Definition für den Health-Check Service
├── main.ps1 # PowerShell Automation- & Health-Check Skript
├── main.py # Python Automation- & Health-Check Skript
├── main.sh # Bash/Shell Automation- & Health-Check Skript
├── requirements.txt # Python-Abhängigkeiten (bei Python-Nutzung)
└── README.md # Dokumentation & Aufgabenstellung
Je nach gewählter Skriptsprache:
- Python: Python 3.11+
- Bash: Bash,
curl,jq - PowerShell: PowerShell (
pwsh) 7+ - Docker: Optional für lokale Container-Tests
Wähle die passende Ausführung für deine gewählte Skriptsprache:
# 1. Virtuelle Umgebung erstellen & Abhängigkeiten installieren
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 2. Skript ausführen
python main.pychmod +x main.sh
./main.shpwsh ./main.ps1(Passe das Dockerfile ggf. an deine gewählte Sprache / Runtime an)
# Image bauen
docker build -t healthcheck-service:latest .
# Container starten
docker run --rm healthcheck-service:latest- Metriken & Tracing: ...
- Logging: ...
- CI/CD Pipeline: ...
- Runtime: ...
- Plattform-Integration: ...