15 Punkte von ironlung 2024-01-18 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Prozess und Vorgehensweise zur Entwicklung eines Slack-Bots, der Inhalte automatisch in einem Technikblog veröffentlicht
  • Entwicklungsprozess
      1. Automatisierungsplan erstellen
      • Erstens wurde beschlossen, die bisher beim Veröffentlichen von Inhalten im Technikblog genutzten Werkzeuge (Notion, GitLab) in ein neues Werkzeug (Slack-Bot) zu integrieren. So sollten Teammitglieder sich einfach und schnell an das neue Veröffentlichungssystem gewöhnen können
      • Zweitens fiel die Entscheidung auf ein TypeScript-Framework. TypeScript ist weit verbreitet, und da es sich um eine statisch typisierte Sprache handelt, lässt sich damit stabil entwickeln. Das hilft dabei, das neue Veröffentlichungssystem einfach und bequem zu warten
      • Drittens sollte eine benutzerfreundliche Interaktion unterstützt werden
      • Gründe für die Wahl eines Slack-Bots
        • Ein Slack-Bot erfüllt all diese Prinzipien
        • Slack-Bots bieten das Framework „Bolt“. Es unterstützt nicht nur JavaScript, Java und Python, sondern ist auch gut dokumentiert. Dadurch lässt sich ein Automatisierungswerkzeug für die Veröffentlichung im Technikblog leicht entwickeln. Auch in einer lokalen Umgebung kann das Werkzeug in einer Slack-Anwendung getestet werden
        • Slack unterstützt mit der Funktion „Block Kit“ die Gestaltung der für Nutzer sichtbaren Oberfläche. Wenn der Screen-Flow als JSON entworfen und Daten per Funktion verarbeitet werden, entsteht eine intuitive Interaktion
      1. Oberfläche entwerfen
      • Slack unterstützt für die Interaktion mit Nutzern Nachrichten und Modals
      • Der Workflow zur Veröffentlichung von Inhalten im Technikblog wurde als Modal umgesetzt
      • Veröffentlichungsprozess für den Technikblog mit dem Slack-Bot
        • Blog veröffentlichen: Auswählen, welcher Inhalt wo veröffentlicht werden soll
        • Blog-Validierung: Prüfen, ob alle für das Frontend erforderlichen Elemente wie Metadaten und Cover-Bild im zu veröffentlichenden Inhalt vorhanden sind
        • GitLab-Issue/MR-Prüfung: In diesem Schritt werden in GitLab ein Issue und ein MR erstellt. Falls bereits ein Issue und ein MR vorhanden sind, wird in den entsprechenden MR committed
        • Abschlussnachricht: Nach abgeschlossener Veröffentlichung wird eine Nachricht mit dem Link zum ursprünglichen Inhalt in Notion und dem Link zum GitLab-MR hinterlassen
      1. Bot entwerfen und entwickeln
      • Mit einem einzigen Bot sollte mit verschiedenen anderen Diensten wie Notion und GitLab interagiert werden
      • Für das Deployment der Anwendung oder Änderungen am Bot wurde ein CI/CD-Pipeline-Setup in GitLab erstellt; dieses Vorgehen wurde als vorteilhafter eingeschätzt
      • Für die Bot-Entwicklung wurden die Sprache TypeScript und das von Slack unterstützte Framework Bolt verwendet
      • Die Ordnerstruktur wurde in Anlehnung an NestJS übernommen
        • workflow.ts : definiert Oberfläche und Datenfluss und ist der Einstiegspunkt aller Workflows
        • service.ts : definiert die Business-Logik
        • model.ts : definiert Datentypen für Slack oder Third-Party-APIs
        • modal.ts : definiert die Oberflächen zur Interaktion mit Nutzern
      1. Funktionsweise des Bots
      • Gibt man in Slack in einem beliebigen Kanal einen Befehl ein, wird der Bot aufgerufen
      • Anschließend wählt man den Titel des Inhalts aus Notion und den Kanal, in dem der Inhalt veröffentlicht werden soll, und klickt auf die Schaltfläche „Einreichen“. Dann wird automatisch geprüft, ob alle erforderlichen Metadaten eingegeben wurden
      • Zu den erforderlichen Metadaten gehören GitLab-ID, Autorenname, Name der md-Datei, Cover-Bild und <!--truncate-->; fehlt auch nur eines davon, kann der Inhalt nicht veröffentlicht werden
      • Sind alle erforderlichen Metadaten vorhanden, kann mit der Schaltfläche „Weiter“ zum nächsten Schritt übergegangen werden
      • Dabei werden das Issue und der MR für den betreffenden Inhalt automatisch in GitLab erstellt
      • Dem MR werden außerdem automatisch Labels hinzugefügt, und auch die Pipeline zur Veröffentlichung des Inhalts wird automatisch ausgeführt
      • Nach Abschluss der Pipeline kann der Veröffentlichungsstatus des Inhalts vorab über die GitLab Review App geprüft werden
  • Ergebnisse der Einführung
    • Die Häufigkeit, mit der Technical Writer und Engineers MRs erstellen, um Inhalte im Technikblog zu veröffentlichen, stieg um etwa 30 %
    • Inhalte lassen sich mit einem Klick in weniger als 1 Minute veröffentlichen
    • Die Pipeline-Fehlerrate sank auf unter 5 %

Noch keine Kommentare.

Noch keine Kommentare.