 Wir sind beide von der Firma Synics, die ist ja gerade um die Ecke, aber das ist halt eigentlich nichts zu sagen. Ich bin Verschle, ich bin Sussatmin, habe Ausbildung gemacht bei Student und Partner, das ist jetzt 1&1, war dann da im Reviews ein paar Jahre und bin jetzt seit sechs, sieben Jahren bei Synics Sussatmin. Und mich als Oldschool Sussatmin überrollt diese DevOps-Zwelle und deswegen reden wir da drüber. Ja, ich bin der Christian, da steht es auch, das komische Forschouting funktioniert nicht, aber das ist auch nicht so schlimm. Ich bin seit einem halben Jahr bei Synics, ich bin hier als Systementwickler DevOps-Typ angestellt. Vorher war ich Admin in einer Enterprise Windows-Linux-Firma und wir wollen euch ein bisschen erzählen, wie wir heute so, oder wir wollen nicht heute so ein bisschen erzählen, wie wir so ein bisschen chatten und dabei automatisch mitarbeiten. Deswegen fangen wir einfach mal an, um was es irgendwie so ein bisschen gehen soll. Das ist es nicht zwingend die Reihenfolge, um die es nachher tatsächlich geht, sondern das sind so die Punkte, die wir so ein bisschen zeigen wollen. Wir wollen ein bisschen über Kommunikation reden, da geht es so ein bisschen darum, wie Kommunikation in einem Team, was vielleicht an verteilten Büros sitzt, vielleicht an verteilten Standorten zustande kommen kann. Dann wollen wir was sagen, was ist denn ChatOps, was machen wir da, was sind die Vor-Nachteile, dann besser. Jetzt ist die Synics unten rausgelutscht, aber das ist ja nicht so schlimm. Dann wollen wir gerne erzählen, wie wir speziell ChatOps mit Hubort machen, ein bisschen aus unserem Arbeitsalltag erzählen. Für uns ist es halt so ein bisschen, ja, wir machen das halt so, wenn es euch zu schnell geht, fragt gern zwischen rein, dann können wir das bestimmt irgendwie beantworten und letztendlich alle ein bisschen schlauer rausgehen. Wir lernen da auch immer dazu. Und falls wir noch Zeit haben, würden wir einfach so ein paar Beispiele zeigen, also wie kotet man da, was kommt da so bei rum, für was benutzen wir das. Genau, ich fange einfach mal an mit Kommunikation. Also ich habe einfach mal aus Wikipedia das rausgesucht, letztendlich geht es noch ein bisschen darum. Ich möchte zu meinen, in dem Fall, Teammitgliedern, vielleicht auch zu einem Kunden, vielleicht auch zu einem anderen Mitarbeiter aus der Firma, der in einem anderen Team ist, ein Stück Information weitergeben. Das umfasst sowas wie, hey, ich habe das in das gemacht. Das gehört so ein bisschen dazu, dass man miteinander redet, dass da auch ein bisschen Feedback kommt. Und das letztendlich auch beide Parteien oder in dem Fall, was wir machen, alle Parteien, die an dieser Kommunikation beteiligt sind, ein bisschen schlauer aus der Kommunikation rausgehen. Fangen wir ein bisschen an, wie sah früher klassischerweise Kommunikation aus, generell natürlich so ein bisschen schon in dem IT-Umfeld. IT Crowd kennt bestimmt jeder, früher hat man bei seinem admin angerufen, hat gesagt, hey, mein Rechner geht nicht mehr, wie jetzt da, have you tried turning it off and on again. Aber zum Beispiel auch sowas wie, hey, ich brauche mal einen Account, ich muss da und da zugreifen. Meine Platte ist voll, haben wir auch in der Firma mal. Klassischerweise hätte man da jemand angerufen, vielleicht eine Mail geschrieben, wenn man ganz modern war, vielleicht ein Ticketsystem benutzt. Man kann es gerade noch so lesen. Ich habe jetzt einfach mal so ein bisschen versucht, so einen Beispiel aufzumalen, was uns immer wieder auch jetzt über diesen Vortrag begleiten wird. Ich habe jetzt mal überlegt, wir haben so zwei Sysadmins, die heißen, das sind alles erfundene Personen, zwei Sysadmins, die heißen Chris und Max. Dann haben wir auf der anderen Seite am zweiten Tisch einen Software-Entwickler, den haben wir jetzt mal John genannt, einen DevOps-Typ, der so ein bisschen zwischen Admin und Software-Entwickler hin und her springt, der Möge Hans heißen und eine Maria Mustermann oder Musterfrau, die hier mal so den Product Owner vom Kunden darstellt für uns. Das ist bei uns in der Firma einfach so, wir haben gemächste Software-Entwickler, DevOps und auch Kundenmitarbeiter-Teams. In dem Fall soll jetzt in dem Beispiel die Maria so ein bisschen die Entscheidungen treffen, die für den Kunden in einem Software-Projekt relevant sind. Und man muss sich nicht vorstellen unbedingt, dass die, wie bei der Sonics zum Beispiel, alle in einem Raum sitzen. Das könnte auch sein, dass der rechte Tisch in einem anderen Büro sitzt, in einem anderen Raum sitzt, in einem anderen Haus sitzt, in einer anderen Stadt oder sogar auf einem anderen Kontinent, in einer anderen Zeitzone. Typisches Beispiel, was wir vorhin mit dem Telefon gesehen haben, IT-Department, John ruft bei Chris an und sagt, hey, wir haben hier ein GitLab und ich brauche dann einen Account. Das ist so eine typische Anfrage, die wir so im Alltag sehen. Der Chris, der sagt, jo, mach ich, tip, tip, tip, tip, tip. Account fertig. Und dann sagt er, hey, ich hab deinen Account eingerichtet mit deinen Standard Credentials oder sowas, kannst du dich jetzt anmelden. Ja, doch, alles cool. Jetzt hat man vielleicht in diesem Software-Team das Problem. Gleichzeitig, während die obere Anfrage läuft, hat die Maria, die natürlich sagt, hey, mein Team braucht einen Account für dieses GitLab Repository. Schon mal bei Max angerufen und gesagt, hey, kannst du mal dem John einen Account machen? Jetzt haben wir das Problem. Der Chris macht gerade einen Account für den John, vielleicht hat er den auch schon fertig und der Max soll den Account jetzt auch nochmal machen. Ja, jetzt gibt es halt die Frage, ist das noch konsistent? Ist das stabil? Vielleicht hat der Chris das sogar dokumentiert? Vielleicht weiß es der Max aber nicht? Vielleicht findet er die Dokum nicht? Vielleicht findet er das Ticket gerade nicht? Im Zweifelsfall macht er den Account nochmal. Sieht, oh, John gibt es schon? John 1. Es lachen viele, wahrscheinlich kennt es jeder. Es kostet an mehreren Stellen Aufwand. Das ist so, Maria muss anrufen. Kostet Zeit, vielleicht ist es gerade besetzt oder so. Max wird aus seiner Konzentration gerissen. Vielleicht war der gerade irgendeinen Server am Reparieren oder sowas. Da muss er sich nachher wieder reindenken. Max legt den Account an, guckt, gibt es den schon? Vielleicht muss er nachher nochmal den Account nochmal anlegen, dann wieder löschen. Wer bezahlt das? Natürlich bezahlt es der Kunde. Ist er damit so happy, weil er hat die Arbeit doppelt bezahlt? Dann ist immer die Frage, an welcher Stelle kann man das verbessern? Als jetzt die Frage, kann man Kommunikation in Teams verbessern, als einer spricht mit einem? Für uns ist einfach der Punkt, wo wir gesagt haben, für uns ist Chat die einfachste Funktion dafür, weil wir haben sowieso einen admin Chat. Wir haben auch Chats mit Kunden, Chats mit den Softwareentwicklern in der eigenen Firma. Da könnten auch externen Entwicklern mit rein. Ich habe es mal so beispielhaft, einfach so ein paar aufgezählt. Es gibt seit 25 Jahren Funktioniert. Es gibt abgefahrene Möglichkeiten, das einzustellen. Es gibt jetzt relativ modernen Slack und Hipchat und Rocketchat. Das sind webbasierte Chats. Bei Slack und Hipchat kann man sich die Mieten einfach, die werden gehostet. Bei Rocketchat kann man sich das auch selber hosten und selber einstellen und seine Daten auf seinem eigenen Server halten. Was vielleicht einiger aus dem Enterprise aus dem Enterprise-Umfeld kennen, dass man Skype oder Hangout benutzt, hat auch immer eine Gruppenfunktionalität, wo zumindest alle was mitkriegen können und wenn sie sich später nochmal anmelden, dass auch sehen können. Und klassisch auch XMP Page aber hat auch die Möglichkeit Chatroom Star zu stellen. Aber für uns vielleicht so ein bisschen aus Interesse die Frage, wer von euch benutzt denn, weil es wahrscheinlich mehr machen, keinen Chat für sein Team oder seine Firma? Also das waren jetzt so ungefähr 5, 6 Leute. Genau, von so 50. Warum hast du keinen Chat? Dann ist die Frage, wer von euch weiß denn schon, was ChatOps ist, außer den Leuten von Synyx? Das war dementsprechend auch so 5, 6 Leute. Genau. Dann brauche ich jetzt dann weiterzufragen, wer davon schon ChatOps benutzt, weil das sind wahrscheinlich die gleichen 5, 6 Leute. Die Idee hinter diesem ganzen Chat-Chisel ist einfach so ein bisschen, wenn man sich nochmal das Beispiel vom Anfang nimmt. John stellt eine Anfrage an Chris. Chris führt es aus, schreibt aber die Antwort in den Chat mit dem Vorteil, dass eben jetzt nicht nur John sieht, hey, egal, mein Account ist fertig, ich kann da jetzt voll darauf los arbeiten, sondern Max sieht es auch. Das heißt, spätestens wenn jemand bei Max anruft, sagt er, ne, ne, der ist schon lange angelegt. Maria sieht es auch, die vielleicht auch den Account anlegen lassen würde, je nachdem, ob ihr Team das braucht, für das er in dem Fall vom Kunden aus verantwortlich ist. Und der gute Hans Defop, der hat leider noch keinen Account bekommen, der kriegt nachher auch noch einen. Der sieht es auch und kann dann vielleicht sagen, hey, ich brauche aber auch einen. Um so ein bisschen hier die Zeit anzusparen und eine Demo zu machen, habe ich einfach ein paar Screenshots gemacht, da hat keiner irgendwie Probleme mit. Wenn noch nachher Interesse besteht an mehr Beispielen, wenn wir noch alles gezeigt haben, könnt ihr einfach nochmal auf uns zukommen, können wir nochmal ein bisschen was zeigen. Im Chat würde das jetzt so aussehen, bei uns zum Beispiel, da schreibt ein John, hey, liebe Admins, ich brauche einen Account für das Git-Repo und ich habe das jetzt in Format Cust1 genannt, Kunde1, so soll jetzt mal dieser Tisch heißen. Wenn die Auflösung vom Beamer besser wäre, hätte man das vorher auch ganz toll gesehen. Und wie wir persönlich so drauf sind, in der gleichen Minute haben wir das hingefaked. Da sagt der Chris Jo, ich verbinde mich kurz zum GitHub, Git Host und macht das. Und dann sagt er, hey, ich habe es dir eingerichtet. Und Maria sieht das im Chat und sagt, hey, voll gut, du hast das direkt gemacht, vielen Dank. Also der Giveaway, dass das Fake ist, ist ja liebe Admins. Ja, ja, Entschuldigung. Ja, genau. So, jetzt haben wir irgendwie ein bisschen Kommunikation für alle geschaffen. Wir haben ein bisschen Zeit ersparen ist, weil wir am Schluss keine Zeit verlieren, wenn jetzt jemand anders da irgendwie Anfragen stellt, die eigentlich nicht eingeplant waren. Wir haben ein bisschen Transparenz für alle. Und 2013, seit 2013 gibt es diesen ChatOps Begriff. Da hat man sich bei GitHub gedacht, hey, wir machen das den ganzen Tag, also bei der Firma GitHub. Wir könnten eigentlich einen Bord machen, der uns dann ein bisschen Arbeit abnimmt, weil wir schreiben sowieso in den Chat, was gemacht wird und was gerade passiert. Genau. Und zwar ist die Idee dahinter, hinter diesem ganzen ChatOps Ding. In dem Moment, wo man einen Befehl ausführt, wird er auch gleichzeitig dokumentiert, ohne dass man noch mal was tippen muss. Noch mal auf das Beispiel zurück, was offensichtlich wegen Haloli Bartmins gefegt ist. So, hey, Admins, ich brauche einen Account für das GitRepo. So läuft das bei uns. Warum ist der Account nun nicht da? Genau. Anstatt dass Christian sagen würde, ja, okay, ich richtet den Account ein, sagt er einfach dem lieben Demo-Bot. Hey, Demo-Bot, geh mal zu GitLab und add John zur Gruppe Customer 1 oder zum Repo Customer 1. Ja, wie das jetzt intern ist, relativ egal. Hinten dran läuft einfach ein Skript, das hat eine Regex auf den String, der da steht, Demo-Bot. Das bin ich, ich kann zuhören und dann kann ich was machen. Ich gehe meinen quasi Befehlset GitLab und set John auf das Repo-Cast 1 dazu. Was auch immer dahinter passiert, das ist eigentlich dem Bot egal, aber dem Admins ja auch, weil in der DevOps-Welt hat er das ja alles automatisiert. Er muss das nur noch irgendwie starten. So und Maria hat es aber auch gesehen und sagt, hey, voll gut, ihr habt das schon eingerichtet. So, jetzt entsteht da daraus, der da auch, wie ich schon gesagt habe, so ein bisschen Transparenz. Wer von den Admins hat wann, was gemacht? In unserem Beispiel ist es so, der Chris hat um 13.41 Uhr diesen Befehl ausgeführt. GitLab add John zu Customer 1. John hat dazu einen Account gekriegt. Das heißt, wenn 13.44 Uhr der Git-Server abstürzt, typischerweise guckt man mal auf der VM, was da los, dann guckt man auf dem Host, was da los. Vielleicht guckt man aber mal in den Chat und sieht, hey, Moment mal, da hat vorhin jemand was gemacht, kann das irgendwie einen Bezug dazu haben oder sowas. Und abgesehen davon sieht das Maria, die sieht, hey, der Chris hat um 13.41 Uhr geschrieben, der Bot natürlich sofort instant, wie auch der Chris, das ausgeführt. Ja, du darfst. Bin ich jetzt dran? Du bist jetzt dran? Jetzt bin ich dran. Also, was wir auf jeden Fall dazu sagen müssen, es sind alles Erfahrungen, die wir aus der Arbeit auch jetzt ein bisschen mit einfließen lassen. Ich tippe mal, dass Leute, die sich wissenschaftlich mit Kommunikationen beschäftigen, da irgendwie voll die Clues haben, wir haben das nur so mal ausprobiert. Und was man auf jeden Fall schon mal grundsätzlich merkt, ist dadurch, dass man da auch arbeitet, dass irgendwie doch die Kommunikation besser wird in den Channels. Also, wir haben einen internen Chat für alle und wir haben unseren admin Chat, wo wir halt unsere Deployments und so fahren. Und dort ist die Kommunikation, also was gesprochen wird von Leuten untereinander, doch angewachsen dadurch, dass man dort ist, um Skripte auszuführen. Ja, und für mich, im Speziellen, wenn man diese ganzen DevOpsnummern, alles hat APIs, man kann alles mit APIs, Fernsteuer, Netflix macht, alles per Cloud, ulle, ulle. Und für mich ist es aber erst mal als Oldschool admin so eine Shared Shell. Was steht da? Er setzt die private Skript-Sammlung. Wer kennt es nicht? Wenn man so sagt mindestens, man hat sich für irgendwas ein Zipperlein doch mal irgendwie dazu herabgelassen, doch nur ein Shell-Skript hinzuhackern. Und das funktioniert dann eigentlich ziemlich gut. Und dann benutzt man es doch regelmäßig und dann haben wir seinen Kollegen irgendwie auch zur Verfügung stellen. Und wie wir das früher gemacht haben, ist so, wir haben halt ein Git, also früher hatten wir noch SVN und dann war es halt ein Git-Repot und da war halt so admin-slash-Skript oder so. Und wir hatten mal das reingefeuert und dann hatten wir halt irgendwie Patch eingespielt und dann musste man dafür sorgen, dass alle Kollegen das auschecken. Und wie dieses admin so sind, die sind grummelig und sind immer busy. Das heißt, selbst im eigenen Team ist so, ey, check mal die neue Version aus, das kann jetzt mehr, ja, ja, mach ich morgen. Und es ist total einfach, ich kann mein Skript reinhackern, baut es in den Bot ein und benutzt ihn einfach nur als Schnittsteller, als API, als, wie sagt man, als Wehrmarkt, schon GUI-Coden. Also ich benutze ihn einfach als so Shared Shell. Also ich geb, ich baste mir schnell einen neuen Befehl hin, der halt die DNS-Sauer war updated, weil ich da irgendwelche Bash-Skripte geschrieben habe vor sieben Jahren, die sonst keiner kennt. Und dann muss ich den Jungs halt eigentlich nicht erklären, wie das eigentlich funktioniert, sondern ich kann sagen, hier mach mal Update, Doppelpunkt, DNS, sondern aktualisiert sich der DNS. Und wenn ich denke, ich muss da irgendwas umstellen, weil das alte magischer Code ist, dann kann ich das machen. Und er muss nicht verstehen. Und ich muss vor allem nicht erklären, weil ich es wahrscheinlich selber nicht mehr weiß, weil der Code sieben Jahre alt ist. Also drücken wir weiter. Das finde ich auch ganz wichtig. Ich habe früher ZSH benutzt. Ich weiß nicht, das ist ganz cool. Also jetzt benutze ich wieder Bash. Und dann bin ich immer zum Kunden auf die Rechnung gekommen und da war dann halt eine Bash drauf. Und dann fühlte ich mich immer ohne ZSH wie mit einem amputierten Arm. Denn je nach Kunde darf man natürlich keine Software nachinstallieren. Oder wenn man es nachinstalliert, dann haben wir vielleicht so ein Slash-Sex oder so, weil wir dürfen es ja nie mehr anfassen. Das heißt, man heißt irgendwie auf eine Bash mit Standard-Vanilla oder Windows-Deployments gibt es auch mal. Aber meist im Prinzip auf Vanilla-Tools angewiesen, weil es so weit mal beim Kunden ist, diese Features dir empfehlen, das tut unendlich weh. Jetzt habe ich vielleicht einen Kollegen, der trotzdem der viel interne Arbeit macht, der ZSH benutzt, da der Magias oder was auch immer an Shells gibt oder Programmiersprachen und sagt, ich will meine Programmiersprache programmieren. Und der hängt es an diesem Bot dran. Es wird über ein Regex-Call gecalled und ich kann es bedienen, ohne dass ich mir irgendwie die ZSH-Lips und die ZSH nicht gesehen installieren muss. Schönes Beispiel auch. Ich habe eine kurze kleine Lagerverwaltung geschrieben auf meiner Linux. Sie heißt Yolo PL. Ja, das hat Felicitus Partkeeper abgelöst bei uns, weil wir zu faul sind, uns anzumelden. Egal, das kann überhaupt nichts. Und dann kam er an mit einem blöden Mac als Linux Admin und hat dann ein bisschen Struggle gehabt mit dem MySQL-Lips und ihr wisst ja, wie es ist, dann baut man es schnell aus dem, wie ist das inzwischen Boo? Ja, wie immer das Zeug auf Mac heißt. Und dann gibt es die Probleme, ihr kennt es ja, wenn ihr Zipen Installation macht und und und so kann ich es einfach in diesem blöden Bot reinwerfen, pack meine zwei Lips daneben von mir. Das macht ja auch ein Api-Call zu mir. Ich brauche da aber erst mal ein Api und dann kann er unter seinem Mac, genauso wie wenn er an einem Web IRC hockt und sich vor vielleicht authentiziert hat, kann er in der Lager suchen, anstatt irgendwie sich ein Gitscript zu klauen auf seine Kiste und Perl MySQL-Lips zu installieren. Ja, es funktioniert überall, weil es nur IRC, selbst der C64 hat ein IRC kleint. Ist nur schon auf der Histe? Ja, klar. Muss dazu sagen jetzt, leider Auflösung und la, la, la, geht hier auch dieser Vorschau immer mit den Notes, aber wir kriegen das bestimmt hin. Bist du noch dran oder bin ich dran? Du bist dran. Ah, ich bin dran. Er hatte Urlaub, ich habe die Slides gemacht. Wo muss das dazu sein? Also wir haben beschlossen, was drauf soll, aber ich habe es angemalt. Ich weiß nicht, was ich da extra zu sagen soll. Also wir haben in uns ein Use Case halt, wir haben das letztes Jahr auf der OSDC gehört und fanden das eigentlich ganz witzig. Wollten aber gar kein großes Projekt raus starten, weil ihr wisst ihr es, bei uns ist es, wir sind eine kleine Firma, bei uns kann man sagen, wir würden das gern machen, dann geht es wahrscheinlich auch, aber im Prinzip organisiert man sich ja auch so ein bisschen selber und Kundenprojekt ist ja meistens wichtiger, damit vergibt man sein Geld und drum haben wir einfach angefangen, das so ein bisschen nebenbei zu machen. Und wenn man uns da irgendwie ein Zentral, eine Kiste hingestellt, auf der ein Hubot läuft, das ist von Github. Kommt gleich. Und jeder schmeißt da so ein bisschen seine Skripte hin. Ich bin da so das, wie sagt man, en font, der Rieble, weil ich halt der dodale Randskripte bin. Also ich bin eigentlich Anwendungsentwickler und ich weiß, warum ich es nicht mach. Und wir haben natürlich auch irgendwie Entwickler, die machen dann CoffeeScript, ich gucke dann da immer rein und verstehe es nicht so richtig. Aber jeder kann halt zentral auf dem Rechner eben seine Software ablegen, seine Skripte, die haben irgendwie helfen und die da ganz Community sozusagen zur Verfügung stellen. Und der Punkt zentrale Ausführung, der unten steht, wissen über alle Server und Dienst ist nicht so wichtig, dass wer jetzt zum Beispiel der Fall ein neuer Mitarbeiter sieht, kommt gleich aber auch nochmal auf eine andere Folie, aber ein Beispiel jemand sieht, hey, ich muss einen GitLab Account machen. Wie heißt denn unser Git Server? Das muss man gar nicht wissen, weil man hat einmal gesehen oder man kann dem Bot eine Hilfe abfragen, wo man alle seine Kommandos abzieht und dann einfach sagen, hey, hier heißt der Befehl Git add Kunden Name, Repo oder sowas. Das heißt, das ist egal, wo das Ding läuft, läuft es bei Amazon, läuft es im Keller, läuft es bei ihm auf dem Rechner oder so. Das ist egal. Und gerade im DevOps Bereich mit automatischem Hochfahren von Maschinen, man weiß vielleicht gar nicht oder man sollte eigentlich gar nicht wissen, wie die Rechner heißen, die man gerade betreut. Weil die sind irgendwo in der Cloud, vielleicht sind sie irgendwie bei AWS, heißt irgendwie Spot WM, wo ich sage, ich hätte gerne 100 Stück, aber nur wenn sie weniger kosten oder so und so viel. Die fanden, also gibt es, da kannst du sagen, ich hätte gerne Micro Server, 2.000 Stück maximal, aber nur wenn sie unter, ich weiß nicht, 50 Cent sind die Stunde oder so, kannst du halt sagen. Und wenn die ja Leerzeiten haben, dann geht es wie ein Kurs runter und dann fahren da halt 100 Maschinen hoch. Bei den 100 Maschinen, du willst doch gar nicht wissen, wie diese 100 temporären Maschinen, die vielleicht in fünf Minuten wechseln, wie die heißen, wirst du dir da merken, wie der blöde Server heißt? Also so ein bisschen wie dieses Fast Flux Hosting von den Scamern, die wissen auch nicht, wie die einzelnen Server heißen, aber die müssen halt laufen und so. Ich habe es weggemacht. Du hast weggemacht. Wir wissen das bei Synics auch, wie unsere Server heißen, aber vielleicht weiß es ja zu, wie mit oder in einer neuen Mitarbeiter oder so. Ja, auch in der mentaler Bestandteil, wie schon gesagt, mit der Kommunikation, wir merken es nur, dass es besser wird, ob man das irgendwie noch verbessern kann, aber eben lernen durch mitlesen. Wir kennen das vielleicht alle aus dem IAC, dass man da irgendwie ein IAC-Bot hat, der Wetter sagen kann und wenn man das dann dreimal gesehen hat, dann probiert man es vielleicht morgens auch selber aus und so ähnlich ist es auch mit zum Chat-Bot. Wenn du weißt, hier der Projektleiter vom Kunden, der darüber entscheidet, ob das Projekt bei dir weitergeführt wird, der darf natürlich entscheiden, wer auf den Code zugreifen darf und ich kann ihm auch die Rechte einräumen, dass selber zu verwalten, wenn er dann Lust da drauf hat. Und wenn die Leute erst mal sehen, wie einfach es ist, im Chat rumzuhängen und dort einen Befehl abzufeuern, also da machen sie es vielleicht auch einfach von selber, was auch so ein Ziel davon ist, weil wer kennt es nicht, man bekommt irgendwie gesagt, komm ich erklär dir das mal, nee, ich habe auch keine Zeit und so und wenn man es dann selber macht und dann macht es einfach auch mehr Spaß aus eigenem Antrieb heraus, was zu machen und das ist auch so ein Ziel davon von ChatOps, dass man einfach sagen kann, hier, wir geben den Leuten ein Werkzeug in die Hand, dass sie vielleicht bedienen können oder auch nicht, aber selbst wenn sie es falsch bedienen, wenn ich, wenn ich irgendwie meinem Chef, das ist bei uns vielleicht ein schlechtes Beispiel, das sind alles Informatiker, aber wer kennt es nicht, ich habe früher mal mit 16 bei einer Kupplungsfirma gearbeitet und da haben die irgendwie NT4 Maschinen rausgerollt und alle bisschen offene Abteilungsleiter hatten, schon NT4, nur der Abteilungsleiter hatte noch so erst 232 angeschlossenes Terminal, Ix und die können oft mal was nicht richtig bedienen und wenn du den eine Guil vorsetzt, wo sie mal falsch klicken, wer hat das nicht schon gehabt, dass vielleicht entscheidet die Guil nicht mal richtig bedienen können, wenn die das bedienen, sehe ich was sie falsch gemacht haben im Zweifelsfall oder auch was sie gemacht haben, ob das für jede Firma gut funktioniert, aber ich kann den Leuten auch sofort helfen, es ist normal immer irgendjemand im IRC vielleicht, wenn bei uns ein Susatman of the Day, der auch noch mit dem Auge ein bisschen da drauf guckt, wenn dann nicht so viel zu tun hat mit Timeouts und kann den Leuten halt gleich Support geben, auch wenn sie es mal falsch tippen sehen, unseren perfekten Beispiel natürlich nicht passiert. Das natürlich auch so dadurch, dass der Bot eine Regex abfragt, kann man es eigentlich nicht falsch machen, weil Vielleicht kann man, vielleicht kann man einfach sagen, es gibt nur Add und Delete oder so. Da haben wir auch das Sicherheitsbeispiel, voll gut. Soll ich das erklären? Nein, wer kennt es nicht, fragen Sie den Systemadministrator. Security ist natürlich ein ganz großes Thema, wir kommen sehr aus der Susatman Ecker, also von daher den von User anlegen oder Server hochfahren. Im Prinzip kann es aber auch des Live-Deployments sein, es kann auch sein, wenn es euer Stack unterstützt, dass ihr zum Beispiel so was macht wie Einzeltel. Ich würde jetzt gerne Einzeltel meiner Prozsysteme durch die neue Version ersetzen, um nach zu gucken, um zu testen, ob es funktioniert. Und Leute wissen dann auch gleich, indem sie in den Chat gucken, da läuft auf Einzeltel des Clusters schon die neue Version, aber da brauchst du ja eine rechte Verwaltung, ich kann ja nicht irgendwie auf ein Cluster alle Leute drauf lassen. Das ist ja gar nicht den Kunden. Die erst recht nicht. Wir haben ein ACL System, das mein Kollege Programmiert hat. Und wir benutzen halt ganz normal IRT, annual IRT plus Nicksoft und benutzen Nicksoft für die Authentifizierung von den Leuten und der Bot redet mit dem Nicksoft. Das ist vielleicht nicht die eleganteste Methode, aber wir hatten halt die IRT Sauber und bei uns halt IRT gesetzt. Alle zwei Jahre benutzen, probieren wir übrigens Jobber aus und stellen jedes Mal fest, dass wer probiert denn jedes Jahr oder alle zwei Jahre mal Jobber aus. Das sind so drei, vier, vielleicht. Ja, ja, wir melden uns beim Bot an. Nein, aber wir machen es halt über über die ganze mal Nicksoft, rechte Channel Owner, etc. und halt Authentifizierung von den User Names. Für Slack oder andere Tools muss es sich halt irgendwie aus eigenes ausdecken. Ich weiß gar nicht, wie es da mit der rechte Verwaltung schon angemeldet ist. Da bist du schon safe. Da wird man dem Bot auch wahrscheinlich gegen die API programmieren und nicht einfach in die IRT schauen lassen. Hubboard, was hat einige Provider dafür? Jobber weiß ich auf jeden Fall. Von den ganzen Hips, Leg, Zeug auf jeden Fall. Das hippt genug. Da ist sofort ein Extension da. Wenn er auf dein 10 Jahre alt das Tool war, das ist halt immer schwierig. Ja, ja, soll ich das sagen? Ja, ich wurde auch vorhin gefragt, auf dem Flur wurden wir gefragt, was das denn sein soll. Da haben wir es so ein bisschen erklärt, aber auch so die Nummer mit. Was macht ihr denn, wenn ihr irgendwie 50 Leute in dem Team habt? Dann habe ich gemeint, auf jeden Fall kein Meeting, weil es geht auf jeden Fall in die Hose. Und bei uns ist gerade der Plan, um das bisschen unter die Leute, in unserem Fall ist es natürlich Entwickler zu bekommen, wollen wir für jedes Team einfach Bot ausrollen, über den die dann halt ihre Standard Sachen erledigen können. Wenn wir damit fertig werden, weiß ich nicht, aber so Standard Sachen als was, wie ich brauche eine Testform, ich brauche eine Stageform, ich brauche eine Portform, aber auch so Sachen wie ich würde gerne einen neuen Code State auf, ich würde gerne auf Testzahlen und jenes Releasing den Tech aus dem Git. Und da war halt die grundsätzlich Frage, wie machen wir das? Ja, bei uns gerade der Trend dafür, dass wir halt jedem Team eigenem Bot geben, dass man zusammen auf einer Codebase grundsätzlich arbeitet, damit man so ein bisschen top daabel ist oder der sagt mir doch. Ja, da ist ein bisschen aus der Idee. Wir entwickeln unseren Bot kontinuierlich weiter, kommt auch gleich nochmal. Und wenn jetzt ein Entwicklerteam da dran ein bisschen rumbaut und Features einbaut, sollen die halt auch alle anderen Teams haben. Nicht, dass da jedes Team so seinen eigenen Bot strikt. Und einer ist voll gut und einer ist so, der kann halt an decken und sonst nichts. Atmen Bot. Der Atmen Bot. Der Atmen Bot. Der kann alles. Der kann Jolo PL. So. So, ich weitererzähle. Ja, rein vom Beispiel von eben. Wir haben eben gesehen schon. Die Maria hat versucht irgendwie in einem Github Account einzurichten und wir haben gesagt, sorry, nur Sus admins dürfen das oder nur bestimmte Leute, die permission Level haben. Aber Beispiel wäre einfach, dass dann natürlich man das Patch AdOps regelt und sagt dem Bot, hey, fügt doch mal die Maria zu dem Cust 1 Admin Gruppe dazu. Ist natürlich jetzt alles so ein gestricktes Konstrukt, wo man sagen kann, okay, wie das hinten dran funktioniert, ist eigentlich egal. Man muss es auch gar nicht wissen. Man darf nur sagen, ich darf die admins verwalten und danach kann die Maria ihre Leute verwalten und sagen, hey, der Hans, der darf natürlich auch unser Git repo auschecken. Ja, sonst kann er nicht arbeiten. Und in dem Moment, wo sie das selber machen kann, spart es halt die Arbeit von einem Admin. Weil man kann einfach, letztendlich ist es so, den Account muss irgendjemand anlegen und den Bot befehlen muss irgendjemand anlegen. Aber für einen Software Entwickler dauert es in JavaScript, CoffeeScript bei uns, fünf Minuten, so irgendeine Authentifizierung zwischen GitLab und LDAP und sonst was zu schaffen, um schnell dieses Befehl set anzulegen, dass jeder das anlegen kann. Und nachher kostet es halt letztendlich den Cust Admin keine Zeit, den Account anzulegen. Wenn man ja natürlich auch sagen muss, okay, vielleicht kostet es den Faschel fünf Minuten oder zwei Minuten ein Git Account anzulegen, aber er hat vielleicht vorher an irgendeiner Virtualisierung rumgeschraubt. Und sein Kopf ist plötzlich GitLab. Und es geht nicht mal weiter und da muss er zur Virtualisierung wieder hin und wir haben da halt so Scrum Master, die sagen, hey, das ist total Banane, weil ihr braucht ungefähr eine halbe Stunde, bis ihr euch wieder reingedacht hat. Du ne? Nein, mein Kopf ist immer verwirrt. Also, ich bin der lebendige Fokus Verlust, deswegen verstehe ich das nicht so. Aber ja, im Prinzip schon. Ja, willst du das noch sagen? Ja, also das ist natürlich jetzt noch mal eine ganz andere Ecke. Also Security-Version, SSH, die wir uns abschalten, das kommt eigentlich aus dieser Dev-Wop-Nummer. Also, wenn du dich per SSH einloggst, hast du schon was falsch gemacht. Es kommt aus dieser Nummer, dass man halt automatisch die Maschinen provisioniert, viel auch aus dieser Cloud-Geschichte. Eben, du hast vielleicht eben diese vorhin erwähnten 100 VMs, die eine halbe Stunde online sind. Wenn das zwischen zwei und drei Uhr nachts ist, dann wirst du dich wahrscheinlich nie mal als per SSH einloggen, weil du gar nicht so schnell du bist, du schläfst. Die Kisten fahren hoch, sie bearbeiten ihr Zeug, sie fahren wieder runter, du wachst morgens auf. Ah, cool, es lief heute Nacht. Und daher ist natürlich eh schon so eine Vision von dieser Dev-Ops-Nummer. Man muss sich nicht mal einloggen, es wird automatisch hochgefahren. Die fällende Kisten werden automatisch ausgeschaltet, was natürlich auch hiermit reinspielen. Aber natürlich call ich per SSH-Skripte auf dem Maschinen. Also von daher werden wir wahrscheinlich noch ein bisschen bei SSH bleiben, aber im Prinzip ist natürlich ein Ziel. Man muss sich nicht mal einloggen müssen, um die Kisten zu verwalten. Weil wenn man von Hand was macht, dann vergisst man es zu dokumentieren. Vielleicht nicht beim ersten oder beim zehnten Mal, aber beim 247. Mal, wenn man gerade müde ist, weil man am Abend vorhin getrunken hat und jetzt der Kundensystem da unten ist, man noch schnell den Heck rein pflegen muss, damit es wieder läuft. Da vergisst man es dann vielleicht und drum alles, das man nicht automatisiert, ist irgendwie... Ja, auch noch mal aus der Beispielnummer heraus. Man will da Maria, die so Product Owner, Kunde, vielleicht so Sales Dude oder so ist, der will man ja gar kein SSH geben, dass sie dann im Git-Repo anlegen kann. Ich weiß nicht, wer von euch seinen Kunden Accounts zum Git gibt. Außer uns. Okay. Ein Faschen trinkt Bier, dann erzähle ich ein bisschen weiter. Man kann abgesehen davon, dass man den Bord Befehle geben kann, kann der Bord einem auch Sachen erzählen. Das heißt, das gibt in dem Falle von Hubot, den wir benutzen. Das ist jetzt eine gefakte Demo. Das ist was, was wir demnächst haben wollen. Da gibt es schon Gedanken hin und auch schon ein bisschen Code, aber es funktioniert noch nicht so richtig. Man kann sich auch von dem Bord was erzählen lassen. Die ersten zwei Punkte, die haben wir schon. Das heißt, der Bord, der Hubot in dem Fall von GitHub. Die anderen haben das wahrscheinlich auch. Der hat eine Web-Appi. Das heißt, da kann man irgendein JSON-Paket hinschmeißen per Rest wahrscheinlich und sagen, hey, mach mal was. Und dann gibt es im Bord Code. Ja, zum Beispiel einfach sagt, hey, ich habe hier einen Set von JSON Key Value Zeug. Da steht drin, der Jenkins hat mir gesagt, euer Bild für den Customer 1 Job 3, 4, 6, 8, 3. Der hat funktioniert. Also man kennt es vielleicht. Man hat so ein CI System. Weiß jemand nicht, was CI oder Jenkins ist? OK. Einer hat sich gemeldet oder zwei. Es ist so ein automatisiertes Bildsystem. Das heißt, du checkst in deinen Code Repository deinen Code ein und sagst, ich mache jetzt mein Laptop zu und ich gehe in den Meeting. Wenn ich zurück komme, soll das bitte mit Maven, Gradle, was es da auch immer für gibt und was du gerade machst. Make. Make, voll gut. Da soll aus diesem Code irgendein ausführbares Paket rausfallen. Ja, ob das jetzt ein Watcher oder eine Binary irgendwie in irgendeiner Form ist, ist egal. Vielleicht dauert es aber mal eine Dreiviertel Stunde. Vielleicht macht man auch mal ein Bildjob, der halt nicht so hohe Prior hat, vielleicht nicht auf SSDs laufen darf, sondern nur in der VM oder so was, dann will man vielleicht irgendwann mal eine aktiv eine Meldung bekommen. Hey, dein Bildjob ist fertig und nicht alle Viertelstunde F5, F5, F5 klicken im Jenkins. Das ist genau das Ding. Oder man will vielleicht nach zehn Minuten sagen, gesagt bekommen, hey, dein Bild ist irgendwie viel geschlagen. Du hast scheiße programmiert. Dein Score ist gefallen. Da haben wir auch noch so eine Idee mit Gamification. Ja, genau. Ja, aber mehr Scores. Könnte auch der Bord machen. Halt hier dein Score ist gefallen, hier. Genau. Ich weiß, wie viel es bei euch kalt ist, schlechte Klarite, was auch immer im Sona. Oh, le, le. Naja, jemand hat auf minus zwei gedrückt. Genau, was man aber auch in der Bord haben kann, es sind zum Beispiel Monitoring Messages. Also, vielleicht hat man riesiges Dashboard und vielleicht hat man eine E-Mail. Da schickt der Nagios. Ich singe ein sonstiges Monitoring seine Mails hin, wenn zum Beispiel in den Hostdown ist. Und man hat die sowieso schon alle weg gefiltert und auf den Bord guckt man grad nicht hin. Man hat sich umgesetzt und sitzt mit Rücken zum Bord. Aber man guckt in den Chat mehr oder weniger auf einem Auge auf dem vierten Monitor oder so den ganzen Tag, weil da könnte ja irgendwas Cooles kommen. Und dann könnte der Bord aber auch sagen, hey, der Nagios. Im Nagios macht man das so, dass man so ein Kontakt anlegt. Das kann eine E-Mail sein. Das kann aber auch eben so ein Webbruch sein. Man sagt, hey, Achtung, dein Gidler. So nix.example.com ist down. Schau doch mal nach. Ja, und dann kann man natürlich vorher eine Priorisierung machen, dass man sagt, zum Beispiel, schreib's in großen roten Buchstaben in den Admin-Chat, wenn es irgendein Produktionssystem ist, schreib's vielleicht so als normalen Chat mit einer traurigen Katze dran, wenn es irgendein Testsystem von irgendeinem Entwickler ist. Kätzchen. Kätzchen. Genau. Ich würde ein bisschen was zur Implementation erzählen, wie man so einen eigenen Chat Bord bekommen kann, weil eigentlich ist das eigentlich, wenn man sich so ein bisschen in die Situation reingedacht hat und es kostet wenig Zeit, sich reinzudenken und das auszuprobieren, will man's nicht mehr missen, eigentlich. Also, es ist für uns zumindest so. Ich bin jetzt seit einem halben Jahr erst bei der Synix, weil das erste, was ich machen wird in einer anderen Firma, wer in so einem DevOps-Umfeld so ein Chat Bord zu bauen, wenn es keinen gibt. Beispiele, die wir haben, Hubbard, haben wir schon ein paar mal gesagt, der kommt von Github, damit haben die Chat-Obs propagiert. 2013, der läuft in JavaScript, empfängt Coffeescript. Coffeescript ist so ein Versuch, JavaScript zu generieren mit einer vereinfachten Sündung, die so ein bisschen Python-like ist. Im DevOps-Umfeld benutzen viele Leute Liter. Das ist ein Ruby-Bot, weil die Leute sowieso Puppet oder Chefcoden können. Sie müssen sowieso Puppet, sie müssen sowieso Ruby können, Entschuldigung. Und dann ist es relativ naheliegend, eh an einen Bot zu nehmen, den man seine Befehle in Ruby beibringen kann. Wir sind halt eine Firma im Java-Umfeld. Für uns ist es total gut, der Joe kann bestimmt vier Seiten Java-Coach schneller mit mehr Doku und mit mehr Sinn schreiben, als sich drei Zeilen Bash zusammennehmen. Die klicken nur in der IDE. Und dann kommt es von selber. Vielleicht, wenn jemand schon lange im IAC ist, die IAC gibt es seit, keine Ahnung, 30 Jahren oder sowas, da gab es immer einen Actrop. Der hat einem gezeigt, hey, deine Pizza ist fertig. Oder der hat Leuten obgegeben, Operator-Status oder sowas, wenn sie irgendwie AFK waren oder ausgelockt waren. Der heißt Actrop. Da könnte man das Prinzip auch machen. Der hat halt eine CCL-Shale. Da kann man aber auch einfach, einfach, der hört auch nur auf bestimmte Angaben. In der Regel sowas wie Ausrufezeichen, ob, da könnte man aber auch sagen, Ausrufezeichen, die Blue Jenkins 34538 oder sowas. Und dann feuert er das einfach, wie auch immer, das hinten dran vertratet ist weiter. Bei Slack, wenn man sich das kaufen will und seine Daten irgendwo in die USA schubsen will, kann man ja machen, kostet ein bisschen Geld und dann haben auch die Daten, kostet nichts. Sie, die kann man gerade dahin bringen. Vielleicht. Fixen die noch gleich Bugs? Ja, vielleicht, vielleicht doch nicht. Kann man da nach Google nachher. Da gibt es eine Chat-Integration mittlerweile. Also da kannst du tatsächlich als Chat-Befilm was schreiben. In dem Moment ohne, dass es die anderen sehen, aber die sind dann halt den Output. So, Hubot, wer es mal ausprobieren will. Mittlerweile ist super einfach. Es gibt ein NPN-Paket, wenn das nicht weh tut. Da gibt es so ein Generator Hubot, dann führt man aus. Das ist ein Yo-Man-Script. Yo-Hubot und dann kriegt man so ein Set von 8, 9, 10 Sachen, die man ausfüllen muss. Was bist du für ein Host nennst, so welchen, welchen Adapter willst du? Adapter ist sowas wie Connect auf IAC, Connect auf Slack, Connect auf HipChat, Connect auf Java. Dann kann man irgendwie einen Namen eingeben. Ich glaube Credentials, sondern Connect ist ja automatisch in eurem Firmen Chat. Und der hat so ein Standard-Set an Befehlen, die noch nix können. Aber wo man gute Beispiele hat, eigentlich. Genau, dann gibt es Skripte dafür für den Hubot. Also ich werde jetzt ein bisschen über Hubot erzählen, weil wir halt damit uns auskennen und mit Liter, das hat man mal gehört. Und das ist mit Ruby, aber wir haben halt einen Hubot. Also ich kenne mich ja immer noch am besten mit Actrop aus, aber Artikel. Genau. Wenn man bei MPMJS nach dem Hubot sucht, bekommt man 1927 für Salz, also am Dienstag. Einer davon ist der Hubot. 1926 Skripte kriegt man dazu. Es gibt ein altes Skit-Report. Es wird mittlerweile, hat man gesagt, okay, wir machen das mit Hubot, da kriegt man so ein Standard-Konstrukt, ausgecheckt, was letztendlich das einzelne Skript ein Name.coffee enthält. In unserem Fall zum Beispiel Hubot Audit, das haben wir da auch irgendwie reingestellt, weil wir dachten, das ist cool. Wenn nachher noch Zeit ist oder wenn jemand noch mal ein bisschen Interesse hat, kann ich das auch noch zeigen. Audit, wir haben ja genau das Problem, was wir vorhin beschrieben haben. Wir haben mehrere Bots in verschiedenen Chats. Wir haben auch mal Chats. Da ist ein bisschen Katzenbilder und so drin. Das will man vielleicht auch nicht unbedingt immer haben, wenn man mal was sucht. Wer hat denn zuletzt am Puppet-Deployed? Wer hat denn zuletzt ein Jenkins-Shop gestartet? Der Audit lockt in einen separaten Channel und wir haben den Channel einfach so eingestellt, da darf niemand sonst was reinschreiben. Das heißt, da sind nur Hubot-Befäle. Wer hat das reingeschrieben? Was hat der Bot geantwortet? Und automatisches Timestamp, weil in dem Moment, wo ich was tippe, zum Beispiel lieber Hubot, deployen wir mal den Puppet aus dem Getrepo in den Puppet-Master, dann macht der Bot, schreibt diesen Befehl, genau den Befehl, den ich reingeschrieben habe, in den Audit Chat zusammen mit meinem Namen und dem Channel, in dem ich das geschrieben habe und führt es dann erst aus. Genau, bei Synics ist es so, wie ihr das auch alle selber machen könntet, wäre, ihr nehmt euch diesen Standard Hubot hier, zwei Dinger zurück. Ganz einfaches Skript. Automatisches wird automatisch auf den Rechner oder vielleicht auf die Vorhinboy gerade seid. Bootstrapped irgendwie mit so ein paar Standard-Einstellungen. Wir haben das auch so gemacht und dann hat man so ein paar CoffeeScript-Bash-Skripte dran gebaut. Man braucht immer ein bisschen CoffeeScript bei Hubot, der im Zweifelsfall aber einfach nur auf der Form geht auch mit JavaScript mit den meisten Bots bestimmt auch, sagt hier, da hast du einen Ordner, der heißt Home, Hubot, Skript, Hacks, da liegen Bash-Skripte drin, die kann er ausführen. Und wir entwickeln das nach Bedarf. Also das wäre auch so ein ganz großer Punkt, den man mitnehmen sollte. Man sollte, bevor man merkt, dass es für einen und für die Firma und für die Kunden funktioniert, nicht Anfang der drei Monate Entwicklung in so ein Hubot reinzustecken und vielleicht ist es nachher scheiße oder so. Man weiß es nicht. Also bei uns ist es vor allem erneuend Tasks, erst mal. Also hier im Puppet-Note löschen. Ja und zu geht mal einer, man automatisiert es erst mal nur nicht, weil, ne? Und dann generiert man seine Nagios oder Isinga oder was auch immer hier benutzt. Überwachung vielleicht auf Daten dieser Automatisierung. Also bei uns Beispiel, wenn es mal irgendwo in Tomcat oder jetzt was war Springboot-Applikation irgendwo hin. Und jetzt vielleicht irgendwie ein Port offen, dann werden wir ja gucken, ob da das Richtige zurückkommt. Hat vielleicht noch irgendwie nur Album abfragen kann. Das sind alles Systeme ab. Und jetzt überwacht mal. So, da haben wir sich aber mit den Entwicklern vielleicht soweit geeinigt hat, dass man so minimalen Standards davon hat. Das ist so, wenn wir automatisch deployen, kommen automatisch auch diese Tests dazu. Und die werden dann in diesem Puppet-Automatisierung irgendwie vorgehalten. Die haben so eine Datenbank dazu. Und jetzt ist das Problem. Du scheißst den Server ab. Nagios geht alles auf rot. Und du kannst von Hand diese Notifications gar nicht löschen, weil die ja noch in dieser Datenbank sind. Der Server könnte ja wiederkommen. Also willst du den löschen. Dann früher haben wir uns einfach PSS-Hauf die Kiste eingeloggt und haben dann irgendwie Puppet-Note die Activate gemacht. Und dann war man der falsche User und da musste man noch mal einen User wechseln und dann ging es dann irgendwie und am Anfang im Message of sedation dann irgendwie so eine Kurzanleitung, wie das alles funktioniert. Und ja, wie das dann halt so ist. Und heute ist es halt einfach so, ich mache Puppet-Double-Point-Node, die aktiviert und dann den House-Name und dann gibt mir der Bot zurück, ob er ihn deaktiviert hat oder nicht. Und diese zweideutigen Meldungen von diesem Puppetscript bin ich auch los. Und ich weiß noch nicht mal, welcher von meinen Kollegen es gemacht hat, aber super. Der sieht wie was. Der sieht wie was. Und eben, es erleichtert mir einfach meine Arbeit. Ich muss mich nichts einloggen. Es ist natürlich, hätte ich mir ein Shell-Script schreiben können, dass das macht, aber natürlich habe ich es nicht gemacht. Und ich habe mich hunderte Tausende Mal da eingeloggt, bis ich jemand gesagt habe, kann da nicht jemand mal ein Script für schreiben? Also, ja, mache ich im Hubot, ja, alles klar. Und genau solche Sachen, die nerven, die oft passieren, die man regelmäßig benutzt. Super. Dazu Kommunikationsverbesserung bis zum Sleitwirk. Das ist auch so ein bisschen zu dem Spätrat. Ja, deswegen wollte ich jetzt ein bisschen pushen hier. Das ist auch so natürlich, dass man da diese Wissensverteilung merkt. Also ich war jetzt zum Beispiel das letzte halbe Jahr neu, weißt du nix. Aber ich habe relativ schnell gecheckt, wie kriege ich denn Puppet von einem Git repo von der Config in den Puppet Server? Wie schmeiß ich eine Note wieder weg oder so was? Einfach, weil ich es mal gesehen habe, wie es gemacht wurde. Weil sonst habe ich nur gefragt, hey, Zevi, wie kriege ich denn den Note jetzt wieder los? Da ist drei rote Balken im Nagios und ich habe die vor allem schon gelöscht. Wie werde ich denn das Ding wieder los? Ja, und dann kann ich einfach sagen hier, du kannst dich da hin verbinden. Dann gehst du auf den Server von Puppet. Der heißt so und so und so. Das steht da und da im Wiki. Da musst du gucken, wo ist das? Und das ist das, was ich mal am Anfang auf die Folie geschrieben habe, muss gar nicht so genau wissen, wo es ist. Muss nur wissen, dass es den Befehl gibt. So, ich würde jetzt ein paar Beispiele zeigen. So, vielleicht so zehn Minuten lang oder so oder fünf Minuten lang, je nachdem, wie viele Fragen kommen. Können wir auch noch mehr Beispiele zeigen, aber oder auch nicht. Wir haben zum Beispiel, es hat der Verschläuferin schon mal gesagt, bei uns einen Sysadmin of the day. Das ist einer der fix spontane Probleme. Jemand hat Ubuntu updated und seinen Rechner geht nicht mehr an. Jemand möchte einen Kabel kaufen. Jemand möchte einen Kopfhörer kaufen. Jemand möchte aus dem Lager ein Monitor haben und sowas so Standard-Sachen. Wir hatten früher, hat jedes Team so seinen Lieblingsadmin gehabt, haben wir so das Gefühl gehabt. Und der Verschläufer ist immer so ein bisschen grumpy und dann geht dann keiner hin, sondern die kommen dann alle zu den anderen. Super, super. Das kostet aber immer, man als Admin will man nicht nur den Leuten ihre Kabel geben, sondern vielleicht will man noch seinen Monitoring neu aufziehen oder vielleicht mal die Virtualisierung fixen, den Storage fixen. Vielleicht will man auch mal ein bisschen nachdenken ohne dass ein Jemand stört. Deswegen haben wir für uns gesagt, wir machen das Hüseadmin of the day. Da gibt es einen, der ist halt so der Arsch für den Tag, der macht alte Tickets, der macht die Anfragen von den Leuten. Und damit die Leute wissen, zu wem sie hinkommen können und net nur zu unserer Admin-Insel gucken, wo so eine Bierflasche steht mit so einer Fahne drin. Wir haben eine Fahne. Haben wir jetzt, hab ich das mal als Beispiel rausgegriffen, der Bot kann einem sagen, wer der SOD ist. Das oben ist Coffee Script Code. Das heißt, erste Zeile sieht man ganz klar, Robot hier, das ist bei Hubot, das Befehl für der Laust auf den Chat und hört da SOD, Fragezeichen, SOD. Man sieht das, die zwei Dashes sind quasi der Begrenzer für den Rackax. Und dann sieht man, am Anfang der Zeile soll stehen SOD und dann Fragezeichen. Wenn es jemand tippt, zum Beispiel der John im unteren Beispiel, sagt der Demo-Bot, hey, heute ist der Sai SOD und macht eure Rechner flott. Und er weiß, ah, dann kann er zum Christian gehen und sagen, hey, ich brauche ein Kabel. Oder machen wir mal ein Rechner flott. Ja, und das ist jetzt leider nur oben und unten Geld, weil unten ist mein Highlight aus meinem Chatfenster. Bei mir funktioniert das nie. Nee, das mit dem Flott machen. Ja, machen wir mal mein Rechner flott. Der Faschel macht immer Sachen kaputt. Sieht man hier auch, ja. Wenn der Faschel, wenn das Robot Brain weiß, der Faschel ist SOD, dann sagt er, zum Glück ist heute der Faschel SOD, sonst macht er nichts kaputt. Sonst repariert er immer Sachen. Ich habe einen guten Track record. Ja, genau. Und sonst kommt halt der, heute ist der SOD aus der Danmung. So, so, Coffeescript Eigenheit. Genau, da haben wir so ein Beispiel. Man will zum Beispiel wissen, das ist jetzt vielleicht ein bisschen tief, aber mit Puppet gibt es, Puppet ist so ein Configuration Management Tool. Da gibt es die Möglichkeit, von einem Rechner einen Fact abzufragen. Das ist so ein Tool, wo man zum Beispiel sagen kann, hey, lieber Rechner, wie ist denn deine Abtime? Klar, man könnte jetzt SSH drauf machen und Abtime eingeben. Vielleicht will man das wissen, mit seconds hours days abtime, zufällig. Letztendlich machen wir einfach ein Script, das sagt, das Kommando hier, wenn ihr meinem Ausseht ist, so sollte man eigentlich nicht machen, aber das ist halt das so das Beispiel für, man kann auch mal schnell sein Admin-Script in den Hubort werfen und einfach so einen hier außen rumschrauben. Der führt dann nur das Kommando aus, liegt im Hack-Chall-Folder und heißt Fact-SR, gibt den ersten Parameter ein als Host und den zweiten als Fact. Und dann führt er einfach aus, geht auf die Kiste, PSSH, nimmt einen Key, der im Hubort liegt und sagt, geht zu Dollar 1, ist der erste Parameter, also zum Beispiel Side-Test, Punkt-Synics, Punkt-Loke, und führer aus Factor-P-Abtime oder System-Abtime in dem Fall, Beispiel unten, und dann kriegt man so einen JSON zurück, wo drin steht, ich habe so viele Sekunden, das sind so viele Stunden und so viele Tage abgehakt, fertig, weiter, und dann weiß man das, und dann kann man das aber im Chat machen. Aber wer nimmt es ihm an und sagt, hey, unsere VM ist langsam. Und das Beispiel ist, ich gucke rein und sage, hey, was hat die für eine Abtime, dann weiß zum Beispiel der. Fashtel, ey, der Christ, der kümmert sich schon drum, ohne dass ich noch mal extra schreiben muss. Ja, ich kümmere mich jetzt halt drum. Nein, nein, da kümmert sich der Hase drum. Der Hase kümmert sich drum. Um die Performance. Ja. Vor allem self. Ja. Ähm, okay. Aber das war fake, oder? Niemand traut sich, es drückt Housekey-Checking, ist gleich neu zu benutzen, außer mir. Genau, okay, okay. Ich hatte schon kurz Angst. Was man nicht machen will, das ist auch noch mal so was, bevor wir noch ein paar Beispiele vielleicht zeigen, oder Fragen beantworten, was will man, was wollt ihr von Anfang an ausblenden bei ChatOps? Über Implementationsaufwand, das bringt euch nichts, wenn ihr da drei Wochen einen geilen Chatboard coded und dann spart euch fünf Minuten im Monat, dann ist es vielleicht doch einfacher, zu sagen, hey, ich hab grad was in das gemacht. Ja, oder man schreibt sich einen IRC-Befil, alias, der sagt, lieber bot, gib mir mal den Factsystem abteilen und schreibt hinterher, hey, ich hab was gemacht. Einfach nur, man muss ein bisschen von Anfang an beachten, dass man sich dann jetzt so reinversteift, weil man weiß auch noch gar nicht, ob es für die Firma oder den Kunden funktioniert. Off-Topic, ganz coole Sache, bei uns im Admin-Chat, das ist ungefähr so die Hälfte der Zeit, kommen irgendwelche E-Mail-Notifications von unserem uralten Bot, der sagt, hey, ihr habt an Admin's erzünnungs.de eine geile Mail gekriegt. Ja, das wollte ich noch ausschalten. Ja, okay, das schaut man noch aus. Dann haben wir weniger Neues. Aber vielleicht kommen auch so YouTube-Links, ihr kennt das alle, ja, man hat ja seinen Chat und man weiß, ich will hier nur Arbeitssachen haben. Nein. Ich schreibe das Off-Topic in den Off-Topic-Chat. Hups. Und dann ist man doch im falschen Chat oder so und dann sieht das Ganze so aus, ja. Der Bot, der kann nämlich auch Text und der kann auch Einhörner, so. Und man will ja auch Einhörner mal haben, aber vielleicht nicht. Man könnte den Bot zum Beispiel sagen, wenn jemand Einhorn fragt, will man das halt vielleicht im Off-Topic-Chat und if room gleich admins, dann wollen wir nicht. So, dann schreibt vielleicht der Psy schreibt, ey, voll gut, das haben wir oben schon mal gesehen übrigens, ja. Der Psy hat gelernt, geil, so legt man ein Github-Account an und sagt, kommt das Einhorn und kein Mensch weiß, was vorher passiert ist. Ja, also dieses Ganze, John sagt, legt mir mein Account an, ist einfach verschwunden, da unten gibt es noch eine Katze und ein GPN-Fahrplan und das ist alles im Admin-Chat. Wenn du das eh geferkt hast, warum ist das einhornig in Regenbogenfahrt? Nein, das funktioniert sogar, ja. Okay, der Sven hat gesagt, ich solls ausmachen. Man sieht übrigens jetzt aufgrund der Auflösung unten drin nett, dass da steht, dass der Max noch schreibt, ey, das ist ein Arbeits-Chat. Also ich wunder halt mich immer mit den Azubis, sobald. So, Beispiel Zönüks, ich mache noch ein Beispiel und bespreche noch eins ganz kurz. Wir haben einen Script oder wir haben einen Lahn-Manager, der hält unsere Zuweisungen für IP zu Hosts zum Mac-Adresse vor. Und das ist halt so ein Riesenhickrack und das ist auch so ein Ur-Alles-Pearl-Script, Palsenskript? PHP Script? PHP. Anwendungsentwickler? Beste. Ja, der hat das gemacht. Ja, das Schöne ist, ich hab auch bei Leuten rumgefragt, die so Netzwerke zu verwalten haben und irgendwie immer, wenn ich jemand frage, der es macht, kommt immer, ich habe ein Script, das verwaltet unser Netz. Ja, kannst du mir das mal schicken? Nein. Dann hab ich gedacht, das ist ja wie bei mir. Dann müsste ich dich leider umbringen, ja genau. Wir haben einfach gedacht, eigentlich könnte, man hat einen neuen Laptop gekauft für neuen Mitarbeiter, kann man sagen, hey, ich hab hier die Mac-Adresse, die weiß ich, die sehe ich im Zweifel, dann kann ich die abtippen vom Gerät und kann sagen, hey, mach mir im Netz 10.0.0, nimm das Ding Side-Test 2 und mach einen neuen Host daraus und gib die Mac-Adresse ein und der trägt halt in dieser Datenbank ein. Die Mac-Adresse soll vom DNS immer den Host im Side-Test 2.0.0.0.0.0.0.0.0 bekommen und immer diese IP sorgeln. Und was ich jetzt noch herauserkennen kann, ist der Rechner wird nicht automatisch installiert mit seinem Betriebssystem, weil das würde noch weitere Optionen verlangen. Weil sowas kann man natürlich auch machen, wenn ihr eh schon irgendwie ein Deploymentsystem habt, dann könnt ihr vielleicht ein bisschen geilere Sachen machen. Wir haben einen VM-Service, da können Sie sich bald, der VM-Service hat sich funktioniert, die Bot-Integration auch, man kann sich eine vm anlegen wenn man jetzt zum Beispiel weiß als Entwickler ich brauche jetzt irgendeinen Geräten mit 16 g und ich bin aber jetzt drei Tage in einer in einer Meeting aber ich will eine Simulation machen ich brauche eine vm noch vorher dann macht man sich schnell klick klick klick create site has3 soll die vm heißen zum Projekt Infra und soll mit CentOS deployed werden und der bot schiebt einen run deck job an der bot schiebt einen run deck job an und da wird halt eine vm generiert wir benutzen kvm virtualisierung dann wird die mit einem dann wird im LAN manager dieser site has3 test angelegt weil es ist natürlich nur für Entwickler in der test vor allem die soll nach 100 produktiv genommen werden im Projekt Infra die restlichen default Parameter werden auch noch eingesetzt und dann weiß jeder den im chat ist ja der demo bot der hat es schon angelegt und eigentlich soll sich der Entwickler das selber anlegen können ohne dass der admin jetzt hier seine kvm gui aufmacht und klickt hey mach mal eine vor allem genau ich mache jetzt mal die bahn ideal fall schreibt der Entwickler an irgendwann auch mal noch die kritikalität von dem system dazu wir sind kleine klitschelt da geht es vielleicht noch ich habe noch hoffnung also dass der Entwickler sagt mein sage system ist halt nicht so wichtig und wenn es halt auch noch nicht läuft scheiß drauf oder auch so Sachen wie könnt ihr mir bitte auch die notifikation schicken für die kiste oder könnt ihr mir bitte nicht die notifikation schicken für die kiste weil manchmal ist ja so wenn die festplatte verläuft auf einem staging oder test system könnte es damit zu tun haben dass der Entwickler irgendwo im back hat im locking oder sonst irgendwo und das eigentlich gerne wissen will und du hast admin bekommst festplatte voll er kommt bevor ich echt macht die dem kurzgrößer weil er nicht zu arbeiten oder irgendwie sonst irgendwas sich deploy die kiste noch und manchmal ist auch ganz geschickt wenn diese blöden notifikations auch mal ein Entwickler bekommt und wir haben keinen betrieb in der hinsicht also wir haben kein 20 von daher ich habe jetzt mal die anderen beispiel ausgegraut weil es sind nur noch vier minuten zeit bis glaube ich der nächsten tauch kommt nach einer halben stunde danach hinterher das ich weiß nicht was wachs sagt ist egal auf jeden fall gibt es bei zündungs auch noch offene stellen als ob und offene wohnen ansonsten danke fürs zuhören ich hoffe es ist keiner mit ornbluten und weil das scheiß rausgelaufen hat jemand fragen du hast eine frage ich kann es einfach wiederholen wir haben jetzt mal probiert ziemlich schnell hier runter weil das gesamte team ankam mit boah ich krieg so viel mit was ich eigentlich dann interessiert wie viel denn wir lassen wir haben es irgendwann angefangen auf Channons aufzuschalten aber trotzdem haben die Leute an das interessiert nicht alles also ich kann mir vorstellen die frage war jetzt habe ich mir das extra vorgenommen es stand noch mal in der tollen mail vom felix also die frage war man hat in der firma schon das ausprobiert einen chat zu führen um die kommunikation im team ein bisschen zu verbessern aber die leute sagen einfach da kommt zu viel zeug was mich gar nicht interessiert und ich blende letztendlich so gehörn ist auch irgendwie nur so ein arbeiter das aus und guckt dann eigentlich nicht mal rein es ist halt ein bisschen schwierig es ist glaube ich so ein bisschen die frage wie viel will man mitlesen und wie viel will ich mich an diesen systemen beteiligen und auch natürlich die frage von off-topic und noise also klar wenn man jetzt sagt hier ich deploy jeder schreibt da jetzt 40 mal am tag rein ich deploy puppet also wir haben doch so Ausschnitte ich hab so ein dreiviertel der klassiker mal code mal push das und dann fixen wir den semicolon und dem semicolon und hier dieses oh ja und da hat man halt so man sieht das dann schon im chat man muss halt es gehört so ein bisschen selbstdisziplin dazu und man muss halt auf der anderen seite wirklich aufpassen dass in so einem chat halt kein off-topic reinfällt weil man eben sonst tatsächlich die relevanten sachen nicht mehr sieht die alternative wäre vielleicht wenn man das also ich würde glaube ich erstmal mit einem chat anfangen und dann so ein bot bauen aber ich denke wenn man ein bot baut würde ich es tatsächlich einfach restriktiver in channels einteilen und vielleicht auch bestimmte befehle halt keine antwort geben dass man einfach sagt oder keine farbe zumindest also wir haben so grüne häckchen und rote kreuzer und sowas für geht geht nicht oder wie dieses grün jankins, rote jankins einfach damit man auf den ersten blick sieht das ist für mich oder nicht interessiert mich das oder nicht vielleicht kann man sich auch die meisten chat-systeme bieten an einen highlight zu machen also dass so ein ding dong aufgeht bei rocket chat oder so was oder dass man im iac eine andere farbe kriegt für bestimmte sachen dass man zum Beispiel sagt wenn jemand auf meinem stage-system auf der sich auch deploye eine version hinschiebt dann möchte ich das wissen und wenn jemand auf irgendein cc-system einfach sagt wir strengen das so ein vom chat und von den einstellungen auch von dem bot und so das bestimmte sachen die eben nur noise oder nur ablenkung verursachen einfach weg geblendet werden oder die leute bestimmte sachen nur erreichen also dass der joeben sagt oder wirst du sagen ich sage einfach wir haben zum Beispiel das bau uns so implementiert dass wenn der bot in der regel generell mehrzeilige sachen man hat gar nicht interessieren zurückgibt dann gibt er vielleicht so ein jahr ich hab dein befehl ausgeführt siehe p.m. oder so was Beispiel unsere hilfe unsere hilfe die der wenn man bot help eingibt gibt er alle befehle zurück und das ist also zwei seiten voll chat die macht er halt in den query rein weil das interessiert kein mensch weil das hat jeder schon fünfmal gesehen und da ist auch wieder wie bei dem einhorn alles weg aber man geht einfach davon aus zu sagen okay der hat einen befehl geschrieben bei help weiß jeder um was es ging bei anderen sachen reicht vielleicht ein jahr ich hab es bearbeitet und die detais wie dein bild ist fehlgeschlagen weil in zeile 3 hat das pappet linting gesagt du musst weiter einrücken das interessiert halt kein mensch an der stelle das kann jeder den es wirklich interessiert kann sich da selber ein linter über das das kann auch der bot ich glaube da bewegen wir uns auf einem terrain wir gar keine ahnung haben kommunikation und wie überzeugt mal leute von dem produkt das cool ist was wer es noch nie hinbekommt hey benutze gpg und da ist halt wirklich ich glaube ja ich weiß nicht ich glaube die einführung ist wichtig also so ein du musst da hinschauen ist schon schon verloren wenn ich zu dir komme ey jo mein channel ist voll cool nee hast du keinen Bock drauf aber hier ist nur eine whatsapp-kurve nee und da ist schon die erste wie gehe ich auf die leute zu wie viel scheiße kommt in dem channel und drum benutzen wir es eigentlich hauptsächlich bei admins und der wops zurzeit und haben noch keinen großen rollout ich tippe dass unser office wenn wir auf die zukommen und sagen hier macht mal diesen befehl wenn er neuen mitarbeiter einstellt und bei euch kommt es automatisch aus dem drucker raus das ist dann funktioniert weil wir den ganz guten trat haben weil ja wir sind ein wickler aber ich glaube was du hast ist halt wirklich eine schwierige sache dass an leute also diese kommunikation so hin zu bekommen dass die leute nicht erneut sind von dem bot wir haben auch einen chef vor dem hab ich auch ein bisschen angst dass die sache darunter geht der sehr leicht erneut ist vom bot und wir haben halt gesagt okay diese ganze der wops nummer und trennen das halt von den anderen leuten ab weil wir es eh schon immer gemacht haben weil wir noch einen anderen bot hatten also der hat 3% dran aber wie das halt so ist aber die wichtige sache daran ist halt man darf die leute nicht überfordern ich tippe mal bei dir, aber no offense ist halt, da saßen dann auch viele leute drin die keine ahnung von hatten und für die ist halt einfach nur ein neues umbehinderung bei der arbeit war also so würde ich mir das jetzt und ich glaube das ist auch was was wir wenn nur durch glück hinbekommen diese kommunikation so hinzustellen dass die leute wirklich merken, dass es einfacher ist wir haben halt einen großen nördanteil bei uns in der firma, das ist ganz glücklich da hab ich ein bisschen glück und bei dem man halt sagen kann okay du kannst mal über das webfront entgehen oder du kannst kurz den chat eintippen da wird sich tipp ich mal wahrscheinlich der chat durchsetzen, aber grad wenn es wie würde man sagen wenn man halt übergreifend ist wenn man halt noch irgendwie Pod-Duck-Manager, hast die seit 10 Jahren das gleiche machen, ist glaube ich unendlich schwierig das auszurollen und das so hinzubekommen dass du die von der kommunikativen Seite her so überzeugst, dass die mitmachen und da ist auch die nummer mit eigentlich solltest du mal also so hab ich das mitbekommen so betreiben, dass man das zwar benutzt und die leute dazu einleiten mitzumachen, also in den channel zu kommen das ist eben nicht hartpromoted sondern eher versucht die leute zu bekommen, das diesmal selber auszuprobieren und dann aus eigenem antrieb heraus versuchen diese Schnittstelle zu anderen Schnittstellen zu benutzen überhaupt eine UI benutzt irgendeine html GUI oder so ein chat im Prinzip ist egal aber da sind wir halt sehr stark bei dieser wie bekomme ich den leuten das erklärt wie sag ich Ihnen auch, guck mal der Entwicklungsaufwand wenn wir noch eine GUI vorne dran hängen, ist ja so viel höher als wenn wir nur ein Skript schreiben was du per Kommando zahlte bedienst würde ich zumindest sagen, ich kenne kein Entwickler der gerne GUI codet irgendjemand? Schader ja, aber GUI nicht und da ist halt einfach so auch dieses rüber zu bekommen dass man sagt okay macht es doch den technikern einfacher dass die Nächstechniker auch halbwegs einfach bedienen können schwierig und hängt auch viel mit Firmenpolitik, Einflüssen wer hat welchen den ganzen Käse zusammen einfach herumzusetzen wenn man eine flachere Hierarchie hat wir haben uns als geholfen zum Beispiel auch wir haben einen Kunden der sehr, sehr, sehr bodenständig ein uralter Firma mit richtig viel Hierarchie hat und die fanden es cool, Rocket Chat zu benutzen das ist bunt und man kommt mit Webclient drauf das ist vielleicht auch manchmal so ein Totschlagargument wenn ich jemand vom Marketing erzähle du kannst jetzt hier so ein IOC das ist mit Text und so oder wenn du halt sagst hey cool guck mal hier ist eine voll hippe neue GUI die heißt Rocket Chat zum Beispiel oder Hip, Hip im Namen Chat und dann ist vielleicht auch ein bisschen einfacher wenn man den da noch sagt ja du kannst auch Katzenbilder pausen aber ich glaube es reicht fragen yeah vielen Dank danke