Automatisiere Routinearbeiten - sei glücklich - wiederhole

22 Februar 2023

Planmäßige oder sich einfach nur wiederholende Aufgaben fühlen sich oft wie Hausarbeiten an und rauben Kreativität und Inspiration. Trotzdem müssen sie erledigt werden. Als Softwareentwickler sind wir keine Ausnahme, wenn es um solche Aufgaben geht, aber wir haben etwas in petto - nämlich die Fähigkeit, sie zu automatisieren! Automatisierte Aufgaben machen nicht nur den Kopf frei für herausfordernde und kreative Tätigkeiten, sondern es wird auch Spaß machen, die Automatisierung selbst zu programmieren.

Als IT-Beratungsagentur senden wir unseren Kunden Berichte über die abgerechnete Zeit, die wir für ihre Projekte aufgewendet haben. Unterschiedliche Kunden verlangen eine unterschiedliche Häufigkeit der Berichte und einen unterschiedlichen Detailgrad. Früher haben wir diese Aufgabe manuell erledigt, indem wir einen benutzerdefinierten Bericht als XLS/PDF/CSV-Datei aus der Zeiterfassungssoftware generierten, eine E-Mail mit der angehängten Berichtsdatei schrieben und diese an den Kunden schickten. Obwohl dies an sich keine komplexe Aufgabe ist, fühlt es sich definitiv wie eine lästige Pflicht an, insbesondere bei wöchentlichen E-Mails. Ohne zu zögern, beschlossen wir, diesen Prozess zu automatisieren.

automated-report-emails

Da es sich bei den meisten um wöchentliche Ereignisse handelt, haben wir uns sofort AWS Lambda angesehen, um den Dienst darauf laufen zu lassen. Für ein so kleines Projekt waren wir sehr froh, dass wir keine Infrastruktur verwalten mussten, und mit dem AWS Lambda-Preismodell blieben wir sogar innerhalb der kostenlosen Stufe. Kann es noch besser werden?

Glücklicherweise bot unsere Zeiterfassungssoftware API-Endpunkte zur programmatischen Erstellung von Berichten. Die einzige Geschäftslogik, die wir schreiben mussten, war eine Funktion, die Start- und Enddaten für wöchentliche Datumsbereiche bestimmt. Das war's, der Berichtsteil war erledigt.

Amazon Simple Email Service deckte uns für den E-Mail-Versand ab. Während der Entwicklungsphase konnten wir den Service sofort im Sandbox-Modus nutzen, d. h. wir konnten E-Mails nur von und an verifizierte E-Mail-Adressen senden. Sobald wir bereit waren, in die Produktion zu gehen, wurde uns schnell Produktionszugang gewährt, und eine Verifizierung der Empfänger-E-Mails war nicht mehr erforderlich.

Für die Zeitplanung verwendeten wir Amazon EventBridge, das einfache rate oder komplexere und vielseitigere cron Ausdrücke unterstützt, mit denen man im Grunde jeden denkbaren Zeitplan abdecken kann.

Funktional war der Dienst komplett. Es fehlte nur noch eine Sache - das Monitoring. Bei der Automatisierung ist es sehr wichtig, zu wissen, wenn etwas schiefgeht. Es ergibt keinen Sinn, etwas zu automatisieren, aber trotzdem manuell überprüfen zu müssen, ob die Automatisierung weiterhin funktioniert. Wieder einmal waren wir froh über unsere Wahl von AWS Lambda, da Lambda-Funktionen automatisch durch Amazon CloudWatch überwacht werden.

Wir verwenden Slack für unsere gesamte Arbeitskommunikation, daher war eine Alarmbenachrichtigung in einem dedizierten Slack-Kanal im Falle eines Fehlers eine gute Idee für uns. In der Vergangenheit haben wir AWS Lambda verwendet, um einen Benachrichtigungsdienst von CloudWatch an Slack zu betreiben. Es fühlte sich jedoch übertrieben an, eine Lambda-Funktion zu erstellen, um einen Fehler in einem anderen Lambda zu melden. Glücklicherweise hat Slack inzwischen etwas, was es vorher nicht hatte - Workflows, die über einen Webhook ausgelöst werden, mit der Möglichkeit, JSON-Ausgaben durch die Definition von Variablen zu parsen. Dies alles ermöglichte es uns, im Falle eines CloudWatch-Alarms mit Amazon Simple Notification Service Benachrichtigungen an Slack zu senden, ohne dass ein zusätzlicher Dienst dazwischengeschaltet werden musste.

Damit ist die Automatisierung fertig! Der Dienst läuft jetzt seit über einem Monat und wir sind mit den Entscheidungen, die wir auf dem Weg dorthin getroffen haben, sehr zufrieden. Nimm dir die Zeit, deine Aufgaben zu bewerten und die zu automatisieren, die du automatisieren kannst. Wir werden das sicher tun.

djangsters GmbH

Vogelsanger Straße 187
50825 Köln