Die meisten Backend-Systeme führen neben den kontinuierlich laufenden Prozessen die einen Web-Service ausmachen auch zeitlich gesteuerte Prozesse durch. Diese sind notwendig um zu regelmäßigen Zeitpunkten Reports zu generieren, Housekeeping und Backups durchzuführen, E-Mails zu versenden oder Caches neu aufzubauen. Der bekannte cron-Daemon automatisiert solche Prozesse schon fast seit Anbeginn der Computer Ära.
Beim Versuch dieses Tool auf die von Microservices, Cloud und Container getriebene Welt anzuwenden stellen sich jedoch Fragen: Wie kann ich meine cron-Prozesse auf mehrere Instanzen verteilen? Wie garantiere ich die Ausführung des Tasks wenn mein Container jederzeit heruntergefahren und ausgetauscht werden kann? Wie gestalte ich eine rollierende Ausführung über Container hinweg oder garantiere das ein Task nur einmal pro Zeiteinheit in meinem Cluster ausgeführt wird?
Um diese Fragen zu beantworten und für jeden das richtige Tool zu finden, schauen wir uns in diesem Talk zehn verschiedene Optionen für Cloud-Natives cron an. Hierbei bedienen wir uns unter anderem bei Frameworks, Microservices, AWS Cloud Infrastruktur, Serverless Komponenten, Container Orchestrierung und einem Kubernetes Operator. Nebenbei bewerten wir, ganz subjektiv, die „Cloudyness“, die Flexibilität der Lösung, sowie den Aufwand bei Integration und Monitoring.