Seite wählen

Über Microservices und Jabberbots

von | Dez 14, 2017 | Development, Kunden

Bei unserer Unternehmensfortbildung am 30. November und 1. Dezember haben wir in kleineren Gruppen an diversen Projekten gearbeitet. Eines der Themen war die Integration unserer intern verwendeten Services (Wiki, Ticketsystem, u.ä.) in einen Jabberbot. Davon versprechen wir uns, dass häufig genutzte Tasks automatisiert werden können, wie etwa:

  • Nach Kunden im CRM suchen, um diese beispielsweise schnell und einfach anrufen zu können.
  • Im Ticketsystem Tickets kommentieren oder schließen.
  • In der Zeiterfassung Zeit auf bestimmte Projekte buchen.

Dass sich über Jabber nicht alle Features der darunter liegenden Tools abbilden lassen, war uns dabei von Anfang an bewusst und sollte auch gar nicht Ziel des Bots sein.
Eine weitere grundsätzliche Herausforderung besteht darin, die abgefragten Informationen so aufzubereiten, dass sie vom Benutzer verwendet werden können. Im Gegensatz zu einer Webseite bietet Jabber nur sehr eingeschränkte Möglichkeiten, Text zu formatieren und zwischen Informationen zu verlinken. Unser Bot wird sich daher auf das wesentliche beschränken müssen. Bei Tickets können so etwa nur die Betreffzeile und einige weitere ausgewählte Attribute angezeigt werden. Wer mehr braucht, gelangt über einen Link zum vollständigen Ticket – im Browser.
Um auch anderen Mitarbeitern die Möglichkeit zu geben, eigene Services in den Bot zu integrieren, haben wir uns nach einer kleinen Architekturphase dazu entschieden, dass der Bot an sich keinerlei eigene Funktionalität beinhaltet, sondern alle seine Befehle an eine Reihe von Microservices delegiert. Diese sollen über eine REST-Schnittstelle angesprochen werden und ihren eigenen Funktionsumfang selbst beschreiben können. Dies ermöglicht dem Bot, beliebige Services zu integrieren, ohne diese im Vorfeld kennen zu müssen. Unsere Benutzer sollen die Möglichkeit haben, für ihren Account eigene Services anhand einer HTTP-URL hinzuzufügen. Der Vorteil hiervon ist, dass jeder spielerisch eigene Services entwickeln und aktivieren kann, ohne über unser Sysadmin-Team Module beim Bot neuladen lassen zu müssen. Auch können Programmierfehler (sleep() im Modul, o.ä.) nicht die Stabilität des Bots gefährden.
Soweit unsere aktuelle Idee. Es gibt zwar auch schon einen sehr frühen Prototypen (auf Basis von errbot), der auch bereits externe Services verwenden kann. Allerdings fehlen auch noch viele Sachen, allen voran natürlich tatsächliche Services für viele unserer Tools. Ich bin aber zuversichtlich, dass wir mit vergleichsweise wenig Entwicklungsaufwand einen einsatzfähigen Bot basteln können. Hoffentlich gibt es dazu dann einmal ein Update inkl. Sourcecode, wenn dies soweit ist.

Mehr Beiträge zum Thema Development | Kunden

Abteilungsdurchlauf im Support – Fluch oder Segen? 

Bevor ich damit beginne, über den Support zu philosophieren, sollte ich vielleicht erst einmal klären, welchen Support ich meine. Wir haben nämlich drei unterschiedliche Support-Abteilungen im Haus: zum einen den NWS Support, der sich um alle Bedürfnisse rund um Apps...

Kubernetes: Mehrere Cluster mit kubectl

Während man mit Kubernetes arbeitet oder entwickelt, wird man in den seltensten Fällen alles auf einem Cluster machen. Ob man ein lokales Minikube verwendet, oder Zugriff auf verschiedene Cluster für Produktion und Testing hat, muss man die Daten ja verwalten, und...

Von Fackeln, elektrischen Schafen und Datenpunkten

Hallo und Willkommen im Jahr 2021! Damit sind wir offiziell 2 Jahre nach dem originalen Zeitablauf von Blade Runner welcher 2019 spielt. Hmm, nirgends sind Nexus 6 Modelle die Rumlaufen und von elektrischen Schafen träumen. (Auch keine Flugautos) *seufz*. Egal !!...

Kommende Icinga Web-Funktion: Rememberme

Wir freuen uns immer über Feedback von euch, um Icinga noch besser zu machen. Viele Icinga-Benutzer haben die Meinung geäußert, dass sie gerne eine Rememberme-Checkbox auf der Login-Seite von Icinga Web hätten, damit sie sich nicht jedes Mal anmelden müssen, wenn sie...

Veranstaltungen

Mi 21

Icinga 2 Advanced Training | Online

April 20 @ 09:00 - April 22 @ 17:00
Mi 21

InfluxDB & Grafana | Online

April 20 @ 09:00 - April 21 @ 17:00
Di 27

Elastic Stack Training | Online

April 27 @ 09:00 - April 29 @ 17:00
Di 27

Graylog Training | Online

April 27 @ 09:00 - April 28 @ 17:00
Mai 04

GitLab Fundamentals Training | Online

Mai 4 @ 09:00 - Mai 5 @ 17:00