Transcript: Devops

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallihallo, herzlich willkommen zum Python-Podcast.

Dominik

Heute haben wir ein Jubiläum und wir haben die zehnte Episode.

Dominik

Das ist ja hervorragend, cool, ne?

Dominik

Hurra!

Dominik

Zehn Stück schon geschafft.

Dominik

Ja, und es ist noch eine kleine andere Premiere.

Dominik

Und zwar haben wir heute das erste Mal eine Remote-Sitzung,

Dominik

einen Studiogast quasi, der nicht bei uns im Garten sitzt.

Dominik

Wo sitzt du denn, Christian? Hi!

Christian

Hi, ich sitze, ihr sitzt im Garten.

Christian

Das hat sich gar nicht so angehört.

Christian

Ah, okay.

Christian

Ich gucke in meinem Garten, ich sitze in meinem Homeoffice,

Christian

Ich sitze in der Nähe von Stuttgart.

Dominik

Ah ja, diese ganz schöne Remote-Verbindung

Dominik

hier von Düsseldorf nach Stuttgart, durch die Heimrepublik.

Dominik

Wundervoll.

Dominik

Was machen wir heute? Wir machen heute DevOps ein bisschen

Dominik

und wie man Python so

Jochen

ausschickt.

Jochen

Wenn man irgendwie Python-Applikationen

Jochen

entwickelt hat, dann möchte man ja auch irgendwie die

Jochen

sozusagen dann

Jochen

produktiv benutzen können, dass andere Leute die sehen und so

Jochen

und dann, genau, muss man da auch noch Dinge tun,

Jochen

damit das geht und ja.

Jochen

Ja, so ein Zirkus.

Jochen

Genau, dann

Jochen

Ja, genau, vielleicht

Jochen

am besten

Jochen

stellst du dich einfach mal vor, Christian, und dann

Jochen

genau. Genau.

Christian

Ja, kann ich gerne machen. Also ich bin

Christian

Christian, auch bekannt als Toini.

Christian

Das ist dann auch mein

Christian

Twitter-Handle. Und

Christian

ich müsste mich jetzt eigentlich fast als

Christian

Urgestein in der Python-Szene sozusagen

Christian

bezeichnen.

Dominik

Deswegen bist du auch in unserer Jubiläumsausgabe

Dominik

dabei.

Christian

Mein Herz wird warm. Ich mache Python jetzt seit 99, glaube ich, in der Größenordnung. Ich weiß sogar, dass ich irgendwann 95, 96 als erstes mal Internet hatte, hat mich in irgendeinem obskuren Chatraum damals, das war noch mit AOL oder so, hat irgendwer schon mal Python gesagt. Insofern, mein frühester Kontakt war, glaube ich, mit 14 oder so.

Christian

Ja, also relativ viel mitgemacht. Ich habe die Python User Group aufgebaut, die ja aus der deutschen SOAP User Group damals hervorgegangen ist. Ich habe lange SOAP gemacht, da Kernentwicklung, viel mit den Amerikanern zusammen, habe mal auf diversen Sprints so um die Jahrtausendwende rum mit Guido rumgemacht. Wir haben irgendwelche komischen SOAP Sachen geschrieben, die heutzutage nicht mehr existieren.

Jochen

Der war ja auch bei SOAP bei der Firma irgendwie beschäftigt.

Christian

Genau, genau. Soap hat damals tatsächlich eine ganze Zeit lang die Python-Labs bezahlt.

Christian

Die waren komplett von der Soap über zwei oder drei Jahre bezahlt worden.

Christian

So mit Barry Warsaw, der das Mailman macht und diversen anderen Leuten.

Christian

Genau, nee, und da habe ich also jetzt viel in der Python-Szene gemacht,

Christian

selber Software entwickelt für gute 15 Jahre im Sinne von Anwendungsentwicklung

Christian

und ich mache aber seit Ewigkeiten

Christian

halt auch schon, ja, Serverbetrieb

Christian

nebenbei und die Firma, wo ich jetzt

Christian

bin, die verdient, also die ist

Christian

jetzt auch meine Brötchen,

Christian

aber die lassen wir jetzt hier einfach mal fröhlich

Christian

vor, weil wir keine Werbung haben.

Dominik

Bei der Python Software Foundation bist du noch, das hat mich noch ein bisschen interessiert,

Dominik

was ihr denn da noch so macht, vielleicht kannst du die noch mal

Dominik

kurz so ins Spiel bringen und vorstellen.

Christian

Achso, ja, ich habe ja zwei, also es gibt jetzt sozusagen

Christian

zwei, es gibt den Python Software Verband,

Christian

das ist ein

Christian

deutscher Verein und

Christian

wir fördern

Christian

Python im deutschsprachigen Raum, also

Christian

unter anderem durch

Christian

Veranstaltungen, also die

Christian

PyCon.de,

Christian

die richten wir aus. Ich glaube, die PyData

Christian

ist unter unserem

Christian

Schirm, die wandert aber durch Europa

Christian

und wir haben jetzt seit einem

Christian

Jahr, seit einem guten Jahr, ein Förderprogramm.

Christian

Das ist eigentlich auch was, was man

Christian

in dem Podcast hier mal ganz gut platzieren

Christian

kann, weil

Christian

das Förderprogramm ist im Prinzip dafür da,

Christian

dass mehr Leute in der Community

Christian

mal Sachen ausprobieren, wie sie Python

Christian

in Anführungszeichen unters Volk

Christian

bringen. Besser

Christian

eigentlich eher ausgerichtet an so einem

Christian

Diversity-Gedanken, dass wir

Christian

Python selber ist im Mainstream ja

Christian

präsent und angekommen. Also vor

Christian

fünf Jahren, vor zehn Jahren sah das alles noch ganz anders aus,

Christian

aber heutzutage muss man sich ja nicht rechtfertigen

Christian

dafür, dass man Python verwendet oder

Christian

irgendwo einsetzt, sondern das ist dann eher das, was man unter

Christian

Best Practice, so sehr

Christian

ich dieses Wort hasse,

Christian

abhaken kann und dann ist das irgendwie

Christian

erledigt, das ist Chef-approved.

Christian

In den letzten Auswertungen über den Jahreswechsel, was die Beliebtheit von Programmiersprachen angeht,

Christian

ist Python halt weltweit im Prinzip immer unter den Top 5, wenn nicht sogar auch auf Platz 1.

Christian

Deswegen haben wir vom Python-Software-Verband irgendwann gesagt,

Christian

Python einfach nur an sich zu pushen, das braucht es gerade gar nicht mehr, das läuft.

Christian

Was ich aber spannend fände, ist halt tatsächlich neue Zielgruppen und neue Vernetzungen aufzumachen.

Christian

Also zum einen Leute, die mit bestimmten Spezialthemen zu tun haben.

Christian

Da hat jetzt als ein großes Gewicht, früher war es viel Web, jetzt ist es Data Science, aber tatsächlich halt auch in den Embedded-Bereich, in den Bastel-Bereich, in der Maker-Szene, rüber hin zu anderen Gruppen wie Jugendlichen.

Christian

Denn Diversität zum Thema Frauen in die Informatik ist in Python eh so ein großes Feld.

Christian

Die PyCon US war eine der ersten Konferenzen, die über 30 Prozent Frauenbeteiligung sowohl an den Teilnehmern als auch bei den Vortragenden hatte.

Christian

Und unter diesem Rahmen gibt es in diesem Gedanken, Python halt sozusagen in so viele kleine Nischen auch reinzubringen und nicht nur durch den Mainstream.

Christian

Da gibt es jetzt das Förderprogramm, beziehungsweise gibt es seit einem Jahr und man kann dort zum einen einfach mal kleine Veranstaltungen ausprobieren

Christian

Wenn man sagt, ich würde gerne, da haben wir ein paar Leute, die machen an Schulen immer mal was, wo sie Kindern dann Raspberries oder andere kleinere Embedded-Python-Geräte bei einem Workshop in die Hand drücken.

Christian

Ja, das ist cool, das habe ich sogar auch schon mal gemacht.

Dominik

Tatsächlich für Kinderkurse mit dem Raspi und dann in Python mit Minecraft oder so Coden.

Dominik

Genau, genau.

Christian

Und was halt schön wäre, wäre, wenn man den Kindern das halt auch mitgeben kann, damit sie dann halt zu Hause weitermachen und nicht nur mit hier hast du mal was und in zwei Stunden ist es wieder weg.

Christian

Und für solche Veranstaltungen sponsern wir dann, ich glaube, so eine Pauschale von 400 Euro pro Veranstaltung, beziehungsweise wir brechen das auch runter auf pro Kopf, pro Kopf gibt es 20 Euro und wenn du abwende 10 Leute hast, kannst du die 400 Euro haben und wir machen das ohne groß Formalismus, da kann man einfach an die E-Mail-Adresse, da gibt es eine, habe ich gerade nicht im Kopf, kann man auf der Webseite nachschlagen.

Christian

Ich sage jetzt mal so schön, wie es beim Podcast immer heißt, findet ihr in den Shownotes, können wir da reinpacken, da schreibt ihr eine E-Mail hin, sagt, was ihr machen wollt und dann wird das im Vorstand innerhalb von ein, zwei Wochen beschlossen und dann geht es los und ihr könnt das Geld kriegen, entweder indem ihr uns ein paar Quittungen schickt oder indem wir einen kleinen Sponsoring-Vertrag machen, dann braucht man nicht über irgendwie Kleingruch-Quittungen zu reden.

Christian

Genau, das ist die eine Variante. Die andere Variante ist noch, dass wir auch größere Veranstaltungen ab 50 Personen sponsern. Das ist dann typischerweise sowas wie die JungleCon-Sponsorware. Da gibt es dann irgendwie 1000 Euro einmal glatt, um anderen Leuten halt den Zugang zu Veranstaltungen zu erleichtern. Das geht dann typischerweise in Financial Aid oder Reisekosten oder irgendwie solche Töpfe.

Christian

Und das dritte, was wir noch sponsern, sind dann tatsächlich auch Feature-Entwicklungen oder allgemeine Entwicklungen für Open-Source-Python-Projekte.

Christian

Wenn ihr sagt, wir wollen mal einen Sprint machen und dafür brauchen wir Reisekosten oder wir wollen es mal am Wochenende wegschließen oder ich würde eigentlich gerne mal zwei Tage was machen, aber dann habe ich irgendwie Arbeitsausfall, weil ich keinen Urlaub dafür nehmen kann, dann gibt es dafür Projekte für jede Aktion 500 Euro.

Christian

Genau, und die verteilen wir jetzt. Das ist so ein bisschen nämlich das Thema, wir haben über den Verband halt die Möglichkeit, über Sponsoren und über alles andere eben Geldmittel einzusammeln und haben gesagt, naja, wir wollen jetzt eigentlich, dass die Leute, die in der Community aktiv sind und gerade das Thema Sustainability ist ja auch so ein großes Ding, da wollen wir jetzt nicht, dass die Leute, die Zeit mitbringen, auch noch das Geld mitbringen, sondern dass man das ein bisschen einfach nur als, man nimmt den Leuten ein bisschen Druck weg und lässt sie halt experimentieren.

Christian

mehr Dinge ausprobieren, mehr schauen,

Christian

was funktioniert, was funktioniert nicht

Christian

und ganz ohne den Druck sich irgendwie

Christian

rechtfertigen zu müssen, ob das jetzt wirtschaftlich war oder nicht.

Christian

Klingt super, klingt echt

Christian

toll. Das macht ja echt viel

Dominik

Lust, das klingt echt interessant. Also bestimmt

Dominik

noch ein paar Interessenten, die das

Christian

zu schätzen wüssten. Genau, definitiv. Also gerade bei

Christian

den Entwicklungs

Christian

Sponsorings ist die

Christian

Soap-Plone-Welt irgendwie sehr

Christian

stark, weil die halt in der ganzen

Christian

Vereins-Community sehr stark vertreten ist.

Christian

Die machen halt viel so Sprints, wo sie

Christian

sich treffen, wo sie halt an

Christian

den Open-Source-Projekten entwickeln

Christian

und die fordern

Christian

das immer mal ein, die muss man eher mal

Christian

bremsen. Dummerweise haben wir niemanden anders,

Christian

auf den wir zeigen können mit, hier, die rufen auch Geld

Christian

ab, aber komm, nicht dran.

Christian

Momentan ist es echt so, dass wir uns eigentlich wünschen würden, dass

Christian

mehr Leute auf uns zukommen, dass wir da mehr Gutes tun können.

Christian

Umgekehrt kann ich natürlich auch

Christian

sagen, jetzt wo ihr wisst, was der

Christian

Verband mit dem Geld macht,

Christian

werdet Mitglied.

Christian

Euer Geld ist gut angelegt.

Christian

Genau, das ist so was,

Christian

so ein bisschen was wie eine organisierte

Christian

Patron-Variante sozusagen dann.

Christian

Aber es ist auch für Unternehmen halt ganz schön.

Christian

Das andere wäre natürlich,

Christian

wenn man sonst sagen kann,

Christian

dann mache ich den Kreis

Christian

mit diesen ganzen Organisationen zu,

Christian

die PSF, die Python Software Foundation,

Christian

das ist die amerikanische,

Christian

wo auch, ich glaube,

Christian

der gehören inzwischen die Copyrights für Python.

Christian

Ich glaube, da sind die hingewandert.

Christian

Die sind natürlich ziemlich groß,

Christian

die haben halt die ganzen Großsponsoren auch,

Christian

die koordinieren halt eher so Sachen mit Google

Christian

und Microsoft etc.

Christian

Die veranstalten ja hauptsächlich auch die große

Christian

PyCon US, haben aber eben auch, die haben auch so ein Förderprogramm

Christian

und da sind wir aber auch dabei

Christian

zuzusehen, dass wir

Christian

die Sachen halt mit koordinieren, dass wir

Christian

dann, wenn jemand sagt, okay, das Förderprogramm,

Christian

was wir haben, das ist eigentlich zu klein,

Christian

ich würde gerne von der PSF noch was holen, dann

Christian

haben wir da halt auch die Kontakte,

Christian

um dann zu sagen, man kennt sich schon und man

Christian

muss es nicht groß ausverhandeln, wer da welchen Papierkrieg

Christian

über den großen Teich schiebt.

Christian

Genau, ja.

Dominik

Cool, kurze Leitung, also falls ihr den habt,

Dominik

meldet euch da direkt, könnt natürlich auch das alles kommentieren.

Dominik

Genau, immer her damit.

Dominik

Ja, ich habe es letztens nur gehört,

Dominik

dass es bei Django gibt es da auch sowas,

Jochen

es gibt halt die Django Software Foundation

Jochen

und die bezahlen ja jetzt auch, glaube ich,

Jochen

ein oder zwei Vollzeitstellen.

Jochen

Aber im Grunde ist das immer so ein Problem,

Jochen

dass halt Software die wichtige Infrastruktur

Jochen

für ganz viele Projekte ist.

Jochen

Dann halt irgendwie so, wo dann, naja, vielleicht so,

Jochen

Also bei Django ist es so, dass er, glaube ich,

Jochen

ein halbes Dutzend Leute irgendwie so wirklich aktiv

Jochen

dran entwickelt und das ist halt eines der

Jochen

größten Projekte, aber

Jochen

eigentlich ist das ziemlich wenig, wenn man sich überlegt,

Jochen

wo das überall eingesetzt wird und

Jochen

wie viele Webseiten ja

Jochen

darauf angewiesen sind, dass das irgendwie

Jochen

weiterentwickelt wird,

Jochen

Sicherheitsgeschichten irgendwie

Jochen

gehändelt werden und so.

Jochen

Das ist,

Christian

das berührt ein total interessantes Thema,

Christian

was jetzt nicht heute mit unserem Tagesthema zu tun hat,

Christian

aber ich habe in der letzten Zeit halt viel

Christian

Gedanken mir gemacht,

Christian

gerade um die sind,

Christian

wie ich an dem Begriff Digitalisierung

Christian

irgendwie

Christian

einen Griff, also wie ich da irgendwie einen Griff dran

Christian

kriege ohne

Christian

bla bla.

Christian

Keiner kann das Wort eigentlich mehr hören

Christian

und wahrscheinlich ist es vom Hype-Cycle her so langsam

Christian

durch und ich habe mich immer gewehrt, es überhaupt einzusetzen.

Christian

Und aber

Christian

dieses, da sind

Christian

so wenig Leute teilweise an so kritischen Sachen dran.

Christian

Aus einer Open-Source-Perspektive

Christian

oder freien Software-Perspektive finde ich das

Christian

überhaupt nicht schlimm. Das eigentliche

Christian

Thema ist nur, es müssen alle, die

Christian

so ein Zeug einsetzen, im Prinzip wissen, sie

Christian

zahlen weniger Geld, als man

Christian

früher in Lizenzkosten in sowas reingesteckt

Christian

hat oder Pflege- und Wartungsverträge.

Christian

Das heißt aber im Prinzip,

Christian

wenn man dann die Sicherheit haben möchte,

Christian

dass einem das nicht unter dem Hintern wegschimmelt,

Christian

muss man halt, muss man eigene

Christian

Kompetenz aufbauen und das

Christian

greift aber genau an dieses Thema ran, was bedeutet

Christian

es eigentlich, wenn immer mehr Dinge

Christian

digitalisiert werden, dann heißt das halt eigentlich,

Christian

ich muss dort mehr Kompetenzen

Christian

selber entwickeln, anstatt das Zeug

Christian

einfach nur blind einzusetzen, blind zu kaufen,

Christian

also fast egal, ob ich es kaufe oder

Christian

als Open Source

Christian

oder freie Softwarelösung habe.

Christian

Ich bin eigentlich darauf angewiesen, wenn das mein Kerngeschäft

Christian

so dermaßen berührt, dass ich genügend

Christian

Kompetenz habe, um wenigstens zu wissen,

Christian

wo meine Risiken sind,

Christian

wenn ich es schon nicht selber

Christian

lösen kann.

Dominik

Das ist aber schon wieder so technisches Detailwissen,

Dominik

das hat der meiste normale Vorstand

Dominik

wahrscheinlich gar nicht mehr auf dem Schirm.

Dominik

Der denkt sich dann so, ja, erst Geld ausgeben

Dominik

für Software, die wir gar nicht brauchen, also

Dominik

wir kaufen ja nicht, warum?

Dominik

Ist ja umsonst.

Christian

Ich hab da momentan

Christian

eine Metapher für,

Christian

das ist, Digitalisierung

Christian

wird an der Stelle, also die ist ja total relevant,

Christian

weil

Christian

im Prinzip die alten

Christian

Sprüche, die wir jetzt wahrscheinlich schon seit 20 Jahren

Christian

kennen, sowas wie Marc Andreessen mit

Christian

Software eats the world,

Christian

das heißt, alles wird irgendwie Software sein.

Christian

In einer positiven

Christian

Variante bedeutet

Christian

dass Software ist als so Augmentierungshilfsmittel ständig dabei.

Christian

Nicht im Sinne von verdrängt den Menschen oder ersetzt ihn,

Christian

sondern es wird immer mehr Stellen geben, wo so ein organisches Zusammenwachsen bei Prozessen ist,

Christian

wo ich auf unterschiedliche Teile von Software angewiesen bin,

Christian

mit der ich interagiere und die sich miteinander verbindet.

Christian

Das wird aber so integral sein, dass es tatsächlich im Prinzip wie eine Sprache zu behandeln ist.

Christian

Und ich habe momentan immer den Eindruck, wenn jemand in einem Unternehmen,

Christian

Wenn du jetzt Vorstand sagst, wir machen jetzt irgendwas mit Digitalisierung, dann klingt es in meinen Ohren so, wie der Vorstand kommt daher und sagt, wir stellen jetzt die Unternehmenssprache von Deutsch auf Englisch um und um das richtig hinzukriegen, haben wir jetzt einen Übersetzer und zwei Wörterbücher angeschafft.

Christian

So ungefähr ist es auch. Wir wollen digitalisieren, deswegen kaufen wir jetzt mehr Software ein oder so. Das ist aber ja ein Unternehmen, das im Prinzip wirklich atmen muss. Ich trage da momentan viel mit mir rum und das ist jetzt extrem Python-unspezifisch.

Jochen

Ja, echt interessant. Das ist auch überhaupt nicht so richtig, es gibt da auch keine gute Kultur für. Also ich habe da auch schon in diversen Unternehmen, die ja dann oft diese ganzen Sachen einsetzen, also am Anfang war es immer noch schwer, das irgendwie durchzusetzen, dass überhaupt irgendwie Open Source verwendet wird und wieso, wenn das nichts kostet, ist ja doof und so, war diese Haltung noch sehr weit verbreitet.

Jochen

Und dann teilweise wurden so Dinge gemacht, wie Weihnachten, als alle im Urlaub waren,

Jochen

hat man halt dann die Netscape-Webserver ersetzt durch Linux-Webserver und so.

Jochen

Und als dann sichtbar wurde, dass das sehr gut funktioniert und auch besser halt oft als die kommerziellen Varianten,

Jochen

dann hat sich das durchaus etabliert, dass man das so macht.

Jochen

Aber irgendwie, dass es eine gute Idee wäre, da halt auch selber mit an der Infrastruktur zu arbeiten und dass das natürlich auch Geld kostet oder dass man zumindest Selbstkompetenz aufbauen muss, das ist auch immer noch schwer.

Dominik

Die ganzen Unternehmen haben das nicht verstanden, was das bedeutet, was Digitalisierung ist. Das bedeutet für jeden irgendwas anderes und die meisten sind so fern von jeder Digitalisierung, schleppen dann die E-Mails ausgedruckt im Koffer mit sich rum, das funktioniert halt dann noch nicht.

Dominik

Und wenn das die Entscheider noch manchmal sind, leider, dann braucht das länger.

Christian

Ja, ich würde mal behaupten, wie war das jetzt mit der PDF-CDU?

Christian

Ich würde jetzt halt behaupten, die E-Mails werden nicht mehr ausgedruckt, sondern es werden PDFs draus gemacht, die kann man sich dann aufs iPad legen.

Jochen

Ja, und dann da drinnen irgendwie rummalen.

Jochen

Ja, genau.

Jochen

Ja, alles andere wird dann einfach verboten.

Christian

Ich meine, genau das, was du beschrieben hast mit den Netscape-Servern, das ist halt auch der Punkt, wo ich es spannend finde. Meine Erfahrung, würde ich halt sagen, ist jetzt auch 20 Jahre Digitalisierung. Das ist mein ganzes Berufsleben im Prinzip seit 99 und der eigentliche Effekt, den wir gesehen haben, das, was man jetzt Digitalisierung nennt, passiert ja seitdem. Das passiert schon seit Ewigkeiten.

Christian

Ich würde sagen, die Jahrtausendwende war tatsächlich so ein Knackpunkt mit Internet, ist explodiert und wir haben damals immer schon Projekte gemacht, wo wir gemerkt haben, du musst Digitalisierung im ganz, ganz, ganz Kleinen umsetzen.

Christian

Und die eigentlich großen Effekte, wenn es halt immer heißt, es ist Time to Market oder alles billiger oder schneller oder effizienter oder individueller, die eigentlichen großen Effekte sind nie aus der Planung heraus entstanden, sondern die sind dann entstanden, wenn wir bei den Projekten beim Kunden vor Ort waren und dann zufällig eine Dame, die da Sachbearbeiterin ist, überhören, wie sie gerade unser Projekt benutzt und sie irgendwie über Excel flucht.

Christian

Und man dann feststellt, okay, was machst du gerade mit Excel? Ja, da hat sie halt so eine Tabelle gehabt, wo sie so eine Statistik mitführen musste, einmal pro Monat. Und da das ja niemand auf die Idee kam, dass das irgendwas mit unserer Software zu tun haben könnte, mündete es darin, dass diese Dame als halbe Stelle, die hat eine halbe Stelle damit verbracht, 20 Stunden pro Woche, eine Zählliste zusammen zu klicken, indem sie sich durch unsere Software durchgeklickt hat.

Christian

Um dann in dieser Excel-Tabelle zu erfassen, wie viele Personen dieses Kriterium, wie viele Personen dieses und wie viele Personen dieses Kriterium hat.

Christian

Und nur weil wir neben ihr saßen, immer über die Schulter geschaut hatten, konnten wir mal mit ihr reden und sagen, du, das kann ich dir da rauslassen.

Christian

Das merkt man dann so, das ist ja alles relativ komplex.

Christian

Und so in Excel kannst du, wenn die Stadt dir so eine Statistik gibt mit tausend Makros drin, dann generierst du das nicht.

Christian

Aber wenn du mit den Leuten ein bisschen Ping-Pong spielst mit, zeig mir mal, was du machst.

Christian

Und siehst, ah, guck mal, die füllt die Daten immer nur in so einem Rechteck aus.

Christian

dann generiere ich dir jetzt eine HTML-Tabelle, die kannst du per Copy & Paste in diese andere Tabelle von der Stadt reinpacken

Christian

und plötzlich ist dein 20-Stunden-Job, also 80 Stunden pro Monat auf 5 Minuten eingedampft.

Dominik

Ich hoffe, die Arme hat dann noch da arbeiten dürfen für irgendwas anderes.

Christian

Natürlich, also ihre Vorgesetzte waren halt super glücklich, weil die so viele Themen auf der Pfanne hatten, zu denen sie nie gekommen sind,

Christian

aber Bürokratie drückt dir halt immer die Prioritäten weg.

Christian

Also Bürokratie

Christian

kann ja immer sagen, ich muss gemacht werden,

Christian

zum Termin. Und dann hast du die Leute

Christian

beschäftigt. Und eigentlich wollen die noch tausend andere

Christian

Sachen machen, kommen aber nicht dazu, weil die Bürokratie

Christian

das wegfrisst.

Jochen

Das ist halt dann dringend, aber nicht wichtig eigentlich.

Jochen

Und die wichtigen Sachen werden dann nicht mehr gemacht.

Jochen

Genau.

Christian

Ich habe viel Komplexitätstheorie

Christian

gemacht in den letzten Jahren. Dave Snowden,

Christian

Kenevan und so. Und es gibt

Christian

ein wichtiges

Christian

Ding

Christian

aus der Komplexitätstheorie, was da

Christian

reinspielt, ist, das sind

Christian

die unarticulated needs.

Christian

Das ist, die Welt ist so komplex,

Christian

dass Anwender

Christian

schrägstrich Betroffene

Christian

schrägstrich Bürger, schrägstrich

Christian

Patienten, egal welche

Christian

Teilgesellschaft wir nehmen,

Christian

die haben gar keine Vorstellung mehr

Christian

davon, was überhaupt möglich ist

Christian

oder geschweige denn,

Christian

in welcher Sprache müssten sie ihren Bedarf,

Christian

den sie haben, überhaupt formulieren, dass jemand

Christian

anders angreifen kann, sagen kann,

Christian

hier, da kann ich dir helfen. Die Dame hat das

Christian

halt in völliger Zufriedenheit

Christian

gemacht, sich da monatelang durchzuklicken,

Christian

weil ihr nicht bewusst war,

Christian

dass es da überhaupt

Christian

eine Möglichkeit gibt, das zu lösen.

Christian

Die wusste gar nicht, dass es ein Problem war

Christian

und deswegen ist das nie in der Planung aufgetaucht.

Christian

In Digitalisierungsprojekten musst du im Prinzip

Christian

im ganz Kleinen alle Leute im Unternehmen

Christian

zu befähigen,

Christian

diesen Übersprung zu haben von, hey, Moment,

Christian

das hier ist ein Problem,

Christian

das müsste sich doch in Software erschlagen lassen.

Christian

Und zwar nicht im Sinne eines, oh, wir machen mal

Christian

den großen Aufschlag und dieses ganze

Christian

Unternehmen wird durch KI ersetzt, sondern tatsächlich

Christian

über so ganz völlig blöde

Christian

kleine Teilchen

Christian

und der Herr Wolfram

Christian

von Wolfram Alpha, der hat jetzt

Christian

ein paar Artikel geschrieben, wo er meinte halt

Christian

Computational Thinking,

Christian

wenn wir sagen, in der Schule wird ja Mathematik

Christian

gelehrt, aber da lernst du halt nur rechnen.

Christian

Und Computational Thinking

Christian

wäre tatsächlich total spannend

Christian

aus einer Perspektive zu wissen, wann

Christian

sind so Zahlen

Christian

oder Datenmengen eigentlich für

Christian

Computer zugänglich?

Christian

Also ich habe jetzt so ein Bauprojekt an der Backe,

Christian

weil ich ein privates Haus baue und da fliegen natürlich

Christian

tausend Excel-Tabellen rum und wenn ich,

Christian

dann habe ich es mehrfach gehabt, dass dann Excel-Tabellen

Christian

rausfallen, wo in einer Spalte

Christian

irgendwelche Zahlen drinstehen, aber dann gleichzeitig

Christian

auch noch irgendwelche Worte mit

Christian

entweder einem Kommentar dran oder

Christian

irgendwie unterschiedliche Maßeinheiten,

Christian

wo ich dann auch drauf gucke und sage so, ja gut,

Christian

die kann ich jetzt halt nicht mehr benutzen, um da Formeln drüber zu jagen.

Christian

Das geht so nicht.

Christian

Aber dieses Gefühl halt, wann

Christian

sind Sachen für Rechner zugänglich, das musst du im Prinzip

Christian

kulturell in so ein Unternehmen reinkriegen,

Christian

wenn du Digitalisierung machen möchtest. Und damit

Christian

schlagen wir uns halt seit 20 Jahren rum. Das ist das

Christian

ganze 90er Jahre Schulen ans Netz

Christian

und das ist Neuland und das ist

Jochen

Ja, ja, klar. Das ist

Jochen

ein großer kultureller Wandel, der

Jochen

da nötig ist und die Leute

Jochen

müssen, ja, ich meine, es gibt halt so ein paar

Jochen

Verrückte irgendwie, die das

Jochen

vielleicht dann vorher schon oder

Jochen

machen oder sich selber damit so lange beschäftigt

Jochen

haben, bis sie es irgendwie können. Aber

Jochen

für viele wird es halt so sein, das ist nur dann natürlich,

Jochen

wenn man da reingeboren wird.

Dominik

Ich glaube, das ist auch gar nicht so, weil ich glaube,

Dominik

gerade durch diese Vereinfachung, die man hat,

Dominik

man hat jetzt nur noch so ein Pad in der Hand, wo man links und rechts

Dominik

wischt, ist das nicht unbedingt zugänglich.

Dominik

Also dadurch, dass du diese tollen User-Interfaces hast

Dominik

und so, das ist ja... Ja, aber ich glaube, du

Jochen

kannst nicht ohne die

Jochen

Sicht der Benutzer oder der

Jochen

Leute, die sich mit dem

Jochen

Bereich, mit der Domäne irgendwie auskennen,

Jochen

ohne die kommst du nicht aus.

Jochen

Die müssen halt auch sozusagen verstehen,

Dominik

wie das, was sie tun... Ja, aber die wachsen ja nicht automatisch

Dominik

mit nach, sondern du musst sie ausbilden. Ich glaube

Dominik

nicht, dass nur, weil du Digital Native irgendwie bist,

Dominik

reingebunden wirst, dass das

Dominik

funktioniert, sondern ich glaube, du musst tatsächlich

Dominik

mit dieser Brille draufgehen, du wirst jetzt da

Dominik

Tech-Experte sein.

Christian

Ich glaube vor allem auch, es gab einen massiven Bruch durch

Christian

die Systeme Android

Christian

und iOS, weil

Christian

bisher, wir können es natürlich sozusagen

Christian

Opa erzählt vom Krieg

Christian

spielen.

Christian

Ein Chapter Mark, Opa erzählt vom Krieg.

Christian

Okay, warte mal, ich mache.

Christian

Das ist mir vorgeworfen

Christian

worden, nein, das ist mir nicht vorgeworfen worden, aber es ist

Christian

irgendwie mit einem zwinkernden Auge auf ein PyCamp

Christian

in Köln konfrontiert

Christian

wurden, wo ich halt auch meinte, guck mal, die Historie,

Christian

ging es um irgendein Stück Technik, wo ich

Christian

nochmal irgendwie nachgezeichnet habe, wie das die letzten 15

Christian

Jahre halt entstanden ist. Und ich meine, ich bin jetzt

Christian

Mitte 30 und werde dann halt von Leuten,

Christian

die gerade im Studium stecken, angeguckt mit, Opa erzählt vom

Christian

Krieg.

Christian

Und es ist aber witzig, weil

Christian

klar, wir haben uns, oder also ich mich,

Christian

ich glaube, wir sind so eine Liga, glaube ich, vom Alter.

Christian

Ich habe

Christian

mich so über die 90er Jahre halt durch Sachen durchgequält,

Christian

wo ich da sagen muss,

Christian

es gab halt nie dort eine Trennung

Christian

zwischen Konsument und Produzent.

Christian

Ich bin, egal ob auf DOS oder Windows,

Christian

dann Mitte der 90er irgendwann Richtung Linux,

Christian

da war halt immer ein, du interagierst mit dem Ding

Christian

und du versuchst irgendwie rauszukriegen selber,

Christian

dass das irgendwie tut, was du willst.

Christian

Und jetzt aber in dem ganzen Umfeld iOS, Android

Christian

hast du fast reine Konsumentengeräte.

Christian

Zumindest auf einer Ebene, wo diese Rekursivität von Rechnern,

Christian

Also von Neumann-Maschine, Daten und Programme sind ja im gleichen Speicher und es ist sozusagen eine Wandelgestalt, ob etwas als Datum oder als Programm interpretiert wird, weswegen wir halt auch solche Dinge wie Viren haben.

Christian

Und das ist ja was, was damals halt dazu geführt hat, dass man ständig, das war wahnsinnig aufwendig, das willst du nicht für jeden. Wir können ja sagen, okay, wir haben uns da durchgekämpft und was einen nicht umbringt, macht einen stärker.

Christian

Aber das ist natürlich nicht die Zugänglichkeit.

Christian

Ich sehe aber tatsächlich, dass Tablets und ganz einfache Systeme,

Christian

eben auch, dass zum Beispiel das Dateisystem sich ja als Metapher aufgelöst hat im Prinzip,

Christian

das macht, dass die Leute diese Universalität der Rechner nicht mehr wahrnehmen,

Christian

sondern es ist nur noch eine Sammlung von Apps,

Christian

die irgendwie, entweder sind sie miteinander integriert oder sie sind es nicht.

Jochen

Ja, aber sind wir da nicht vielleicht noch einfach ein bisschen früh dran?

Jochen

also wenn man sich jetzt sowas anguckt wie Shortcuts

Jochen

oder so auf iOS,

Jochen

das geht ja schon so ein bisschen in die

Jochen

Richtung, dass man damit dann halt auch Dinge tun kann,

Jochen

wie, ja, ich meine, ich übertreibe jetzt ein bisschen,

Jochen

aber mit Pipes auf der

Jochen

Kommandozeile oder so,

Jochen

nur halt in grafisch und mit einem schönen Interface.

Jochen

Halt nicht, weil

Christian

das ist halt nicht mehr universal. Es geht halt nur das,

Christian

was dir zugelassen wird, was geht.

Christian

Gut,

Jochen

okay, ja, man kann natürlich noch einige

Jochen

Sachen selber schreiben, aber das

Jochen

ist natürlich dann auch wieder,

Jochen

da ist man dann sofort in so einem Profibereich,

Jochen

wo man dann irgendwie

Jochen

sich registrieren muss bei Apple und so.

Christian

Ja genau und das Modell ist halt nicht

Christian

sehr stark an der Stelle, sondern das ist halt sehr

Christian

darauf angelegt, dass es halt, ich meine,

Christian

Sachen einfach zu machen ist ein schwieriges Problem

Christian

und Computing

Christian

ist ein schwieriges Problem.

Christian

Das wird so nicht halt für jeden zugänglich sein,

Christian

aber es ist halt, wenn ich die Sprachmetapher

Christian

nochmal bemühe, wenn du halt das Unternehmen umstellst

Christian

von Deutsch auf Englisch, dann erwartest

Christian

du ja auch nicht, dass jeder danach

Christian

ein englischer Schriftsteller ist.

Christian

Sondern der Wort ist, dass die Leute halt so ein gewisses

Christian

robustes Set an Sprache halt

Christian

können, mit dem sie halt

Christian

wissen, ah, der Empfang kann zumindest mal sagen,

Christian

wo die Toilette ist und wo es in die Chefetage geht

Christian

und kann dir ein Taxi rufen.

Christian

Kantine. Ja, Kantine,

Christian

auch noch wichtig, genau.

Christian

Aber es ist halt was anderes,

Christian

als wenn du dann sagst, wir bringen jetzt das Unternehmen

Christian

auf Englisch, indem wir halt überall Wörterbücher auslegen.

Christian

Ja.

Christian

Das ist halt. Das funktioniert

Christian

halt einfach nicht, ja.

Christian

Okay, spannend, spannend.

Dominik

Ja, aber ich glaube, von diesem generellen Problem der Digitalisierung würde ich uns jetzt mal so ein bisschen wieder wegführen, weil wir können das, glaube ich, heute auch nicht mehr reden oder wir können zumindest noch mindestens zwei Stunden darüber reden, was das alles für Fragen ist.

Jochen

Okay, dann mache ich jetzt hier direkt mal eine Kapitelmarke, aber ich würde auch noch gerne eine Sache ansprechen, wo es, ich glaube, da ging es kurz eben drum, aber ich habe es nicht geschafft, da reinzugrätschen.

Dominik

Aber nur ganz kurz, weil wir wollen dann auch erklären tatsächlich, wie man das mit Python so machen kann.

Jochen

Ja, und zwar ging es da um die Bereiche, in denen Python eingesetzt wird. Ich weiß nicht, habt ihr das mitbekommen, die PyCon US war jetzt erst vor kurzem und die Keynote hat da, glaube ich, Russell Keyes McGee oder so gehalten.

Jochen

Ich weiß nicht, ob ihr den Vortrag gehört habt.

Jochen

Ich war im Urlaub.

Jochen

Achso.

Jochen

Nee.

Jochen

Nee. Ich hab Kinder.

Jochen

Ganz gute Entschuldigung.

Jochen

Immer.

Jochen

Was ich ja jetzt mittlerweile häufig mache,

Jochen

ist, ich,

Jochen

die laden ja meistens auf YouTube

Jochen

und es gibt in meinem Podcast-Player irgendwie

Jochen

so ein, der hat so ein Zeit-Loading

Jochen

Share-Sheet-Extension-Dings

Jochen

für iOS und dann sage ich auf dem

Jochen

YouTube, auf der YouTube-Seite so

Jochen

irgendwie, share das mal mit meinem

Jochen

Podcast-Player und dann kriege ich das Audio halt dann als

Jochen

normale Podcast-Folge sozusagen rein.

Jochen

Und das ist ganz, ganz angenehm, wobei man dann halt auch merkt, dass die Audioqualität bei so Vorträgen oft auch nicht so toll ist.

Jochen

Und naja, wenn man das Bild halt nicht sieht und die Folien, ist auch schon ein bisschen Information weg.

Jochen

Also ganz toll ist es nicht.

Jochen

Aber seitdem höre ich mehr Talks, weil ansonsten die Zeit irgendwie vorm Rechner zu sitzen und ein Video zu gucken, das ist einfach nicht.

Jochen

Ich kriege das immer nur dann hin, wenn ich noch nebenbei was anderes mache.

Jochen

Ansonsten funktioniert das irgendwie nicht.

Jochen

Aber zum

Jochen

Thema, das war ganz

Jochen

interessant und zwar hatte der etwas angesprochen,

Jochen

was man halt auch so als,

Jochen

der kommt irgendwie aus Australien,

Jochen

nach dem Taleb hat man ein Buch geschrieben,

Jochen

The Black Swan, und

Jochen

genau, das mit den schwarzen

Jochen

Schwänen ist auch so ein Ding, was in Australien halt da mal

Jochen

aufgefallen ist, man dachte halt bis irgendwie

Jochen

vor ein paar hundert Jahren, also bis halt Australien

Jochen

irgendwie so richtig entdeckt war, dass es nur

Jochen

weiße Schwäne gäbe, weil man hatte noch nie einen schwarzen

Jochen

gesehen, aber in Australien

Jochen

gibt es tatsächlich wohl schwarze

Jochen

schwarze Schwäne und

Jochen

ja, dann, als die

Jochen

zum ersten Mal jemand gesehen hat, dann

Jochen

war sozusagen diese Theorie, dass das

Jochen

dass alle Schwäne weiß sind

Jochen

halt auf einen Schlag erledigt und

Jochen

das sind solche Sachen, die passieren halt

Jochen

ab und zu und die kann man sehr schlecht

Jochen

vorhersagen und das, ja,

Jochen

solche Ereignisse gibt es ja halt nicht nur in der Natur,

Jochen

wenn man Natur beobachtet, sondern halt auch

Jochen

in diversen anderen Bereichen, es gibt halt irgendwelche

Jochen

Finanzkrisen oder so, die auftreten können,

Jochen

wo man halt vorher gedacht hat, das geht jetzt immer

Jochen

so weiter und

Jochen

naja,

Jochen

der sprach halt über

Jochen

diese Ereignisse, die halt passieren können

Jochen

und was das für Ereignisse

Jochen

sein könnten, die

Jochen

Python, ja, sozusagen

Jochen

vielleicht obsolet machen oder schwer

Jochen

sozusagen, ja,

Jochen

beeinflussen könnten und die man momentan

Jochen

nicht so richtig kommen sieht, weil

Jochen

auch im IT-Sektor ist das natürlich

Jochen

schon ganz oft passiert, irgendwie so der

Jochen

PC, der irgendwie aufgetaucht ist, war wahrscheinlich

Jochen

für viele Unternehmen, die vorher ganz gut mit

Jochen

Ningen gelebt haben,

Jochen

so ein schwarzer Spahn, der

Jochen

aufgetreten ist und dann plötzlich die ganze Märkte kaputt gemacht hat

Jochen

oder irgendwie, ja,

Jochen

Smartphones sind halt auch sowas,

Jochen

die den ganzen

Jochen

PDA-Markt irgendwie aufgerollt

Jochen

haben und Nokia irgendwie

Jochen

sozusagen in die, naja,

Jochen

in den, ja, wie soll man,

Jochen

Microsoft-Vorruhestand geschickt haben und

Jochen

dass der sagte, also man

Jochen

kann inzwischen sehen, was das sein könnte

Jochen

und für ihn ist halt interessant rauszukriegen,

Jochen

was man dagegen tun kann und

Jochen

er meint, dass wäre halt zum Beispiel

Jochen

eine ganz schlechte Geschichte

Jochen

ist, dass halt eben auf solchen Geräten wie Tablets,

Jochen

irgendwie Telefonen oder so, halt

Jochen

Python nicht wirklich läuft

Jochen

und dass wenn jetzt aber der

Jochen

Markt so umkippt, dass halt irgendwie

Jochen

Desktop-Computer und auch Laptops nur noch was für

Jochen

Profis sind und

Jochen

ja, die ganze

Jochen

Konsumenten, der ganze Konsumentenmarkt halt

Jochen

auf irgendwelchen

Jochen

Tablet- oder Smartphone-mäßigen Endgeräten

Jochen

ist, dann kann es sein, dass das

Jochen

ein sehr großes Problem wird, dass da

Jochen

Python halt überhaupt, dass man mit Python überhaupt

Jochen

nichts machen kann.

Jochen

Und dass es halt auch ein Riesenproblem ist, dass das halt auch nicht

Jochen

sich überbrücken lässt durch irgendwie solche Sachen wie

Jochen

Web oder so, weil JavaScript wird das

Jochen

wahrscheinlich überleben. JavaScript läuft

Jochen

halt in Browser, Browser sind auch von den Geräten

Jochen

nicht wegzudenken, aber

Jochen

Python läuft weder im Browser noch.

Jochen

Ja, wobei, was

Christian

mir da mehr durch den Kopf geht, ist, dass

Christian

ich glaube, wir werden dann eher sehen,

Christian

dass es noch

Christian

tatsächlich diese agnostischen Runtimes

Christian

geben wird. Also bei Web

Christian

fällt mir gerade eben WebAssembly ein.

Christian

Das

Christian

finde ich blöd aus einer anderen

Christian

Perspektive, weil dann ist halt ViewSource

Christian

endgültig kaputt.

Christian

Das ist was, womit

Christian

ich halt

Christian

auch wieder aufgewachsen bin. Allein das

Christian

hat es mir ermöglicht, irgendwie vernünftig

Christian

das Zeug überhaupt zu lernen, dass man in Sachen

Christian

reingucken kann. Aber

Christian

sei es mal gespenkt.

Dominik

Man kann in jede Webseite reingucken

Dominik

und sich angucken, wie das geschrieben ist.

Dominik

Ja, genau.

Christian

Das war halt, wobei das auch heute eigentlich,

Christian

es ist praktisch

Christian

tot durch

Christian

Minifizierung etc. Ich meine,

Christian

mit dem Inspector kriegst du dann halt, wenn Mappings da sind,

Christian

beziehungsweise auch noch die Minifier

Christian

und so ein Zeug, aber es ist praktisch

Christian

eh tot, weil die Komplexität zu groß ist. Früher war es

Christian

so, da hast du halt mal deine 10K, 20K

Christian

HTML-Code, bloß ein bisschen JavaScript

Christian

angeguckt und, ah, guck mal, der benutzt das so und so.

Christian

Die Doku war früher auch

Christian

schlechter, heute ist die Doku besser, dadurch

Christian

dämpft das halt vieles wieder.

Christian

Ich glaube aber, dass solche agnostischen Runtimes, also

Christian

zum einen, naja, Profi

Christian

ist halt jetzt wieder, machen wieder die Schleife.

Christian

Wenn nur

Christian

die Profis Software entwickeln sollen

Christian

und Python kommt eigentlich eben aus der Ecke,

Christian

dass nicht nur die Profis das können sollen,

Christian

weil ansonsten haben wir

Christian

ja als Gegenentwurf eben

Christian

in der Android-Ecke haben wir Java und Java

Christian

kommt halt aus diesem extrem ingenieursartigen

Christian

Ansatz für, da ziehst du dir

Christian

bitte einen Laborkittel an, bevor du anfängst zu programmieren

Christian

oder sonst hältst du das nicht aus.

Christian

Du hast doch keinen Kittel angefangen, bevor du angefangen hast.

Christian

Ja.

Christian

Also das ist ja so

Christian

Business-Programmieren, ja. Da stellt man sich

Christian

die Leute vor, die im Laborkittel programmieren und jetzt

Christian

halt mal ordentlich hier, das ist der deutsche Ingenieur,

Christian

jetzt kriegst du gleich Qualitätssoftware, wenn du nicht aufpasst.

Christian

Die, ähm, und Python

Christian

kommt ja von einem anderen Ende und Python kommt eigentlich von

Christian

einem sehr charmanten Ende, nämlich, dass es halt so zugänglich

Christian

ist für Leute, die halt Quereinsteiger sind, die

Christian

noch selber Schüler sind und

Christian

auch da wieder in einer komplexen Welt ist,

Christian

lernen durch Experimentieren, durch

Christian

Experimentieren halt eigentlich genau das

Christian

Richtige, Grenzen austesten. Und dafür

Christian

musst du dir aber sozusagen eine Umgebung,

Christian

einen Weg bereiten und sagen, hier ist

Christian

irgendwie erstmal so grüne Wiese,

Christian

lauf mal los, guck mal. Systeme

Christian

wie Java sind halt wenig ein, hier ist grüne

Christian

Wiese, sondern es sein, so hier kommt jetzt erstmal

Christian

das große Konstruktionstemplate und

Christian

ohne das kannst du nichts tun.

Dominik

Mir fällt gerade auf, dass der Christian gerade zum ersten Mal

Dominik

den Java Bash gemacht hat, auf den ich die ganze Zeit gewartet

Dominik

habe, den wir in Zeitfolge 1 vorgenommen haben.

Dominik

Ah, bitteschön. Danke.

Dominik

Es ist die zehnte Episode.

Dominik

Und ich meine, Java

Christian

leidet an der Stelle, also die leiden ja

Christian

selber unter ihrem Erfolg an der Stelle,

Christian

weil es war ja

Christian

gemacht von

Christian

Sun mit ein bisschen IBM-Unterstützung

Christian

damals, mit

Christian

der Idee, dass Entwickler

Christian

zu teuer waren.

Christian

Ja, also es gibt die eine Story, das ist eine, also es gibt ja mehr Perspektiven da drauf. Das eine ist, es sollte mal dieses Set-Top-Boxen-System sein, Mitte der 90er. Dann wurde es irgendwann zu so einem Server-System, dann wurde es irgendwann zu der Universalen.

Christian

Ja genau, das was heute ein Apple TV ist, wo man halt sich in den 90er Jahren das erste Mal die Finger dran verbrannt hat. Das sind ja häufig so Embedded-Geräte, wo jeder den kompletten Software-Stack mit Betriebssystem selber gebaut hatte und Sun hatte damals mit Java versucht eine Sprache zu bauen, wo ich die gleiche Programmiersprache halt über unterschiedliche Geräteklassen hinweg eben von Mobiltelefonen zu Servern zu Desktop-Rechnern zu Set-Top-Boxen anwenden kann, um die zu programmieren.

Christian

Und ja gut, also jeder, die mal gesehen hat, irgendwie auch dieses Ding von der Telekom hier, diese komische Fernsehgeschichte, die die haben, da kriege ich immer das Gruseln, wenn ich sehe, wie das UI aussieht dazu, weil es halt, ja, weil dort das ganze Ökosystem ist durchdrungen von diesem Ingenieursansatz, ja, von diesem, du musst alles ausdefinieren und aber die wirklich interessanten Sachen, sowas wie, dass das UI geschmeidig ist, das kommt als letztes.

Christian

Und dann stellst du fest, oh, unser UI-Toolkit kann gar keine schönen Übergänge, sondern das geht bloß so hackelig.

Christian

Warte mal, wir kamen von, was hat Python für eine Zukunftsperspektive?

Christian

Python ist ja als Sprache eh darauf angelegt,

Christian

eine Sprachspezifikation zu sein und

Christian

sich unterschiedlichen Runtimes

Christian

gut halt anzudienen und ich würde

Christian

vermuten, dass irgendwann

Christian

der Zeitpunkt, also wir haben halt eben zum

Christian

einen, Web könnte für Python

Christian

halt mit WebAssembly durchaus interessanter werden

Christian

und auf der anderen Seite

Christian

werden wir

Christian

eine Lösung brauchen, wie

Christian

solche Endgeräte,

Christian

die sich ja zum Programmieren auch gar nicht

Christian

eignen,

Christian

Und das ist sozusagen auch eine ganz eigene Schleife zum Thema Digitalisierung und Selbstständigkeit von Anwendern. Da ist ja auch die freie Softwarebewegung als Ganzes im Prinzip dran, dass du sagst, hey, ich will eigentlich, dass die User emanzipiert sind und dass ich nicht um Erlaubnis fragen muss, um Software zu modifizieren oder Software zu verstehen, sondern dass ich halt eben genau Emanzipation mit Kompetenz auch gleichsetze an der Stelle.

Christian

Ja, interessanter Gedanke.

Christian

Ja, das wäre auf jeden Fall sehr schön.

Jochen

Momentan geht es leider so ein bisschen in eine andere Richtung.

Jochen

Ja, aber ich glaube,

Christian

dass Python da definitiv halt massive

Christian

Chancen hat, aufgrund der Größe,

Christian

aufgrund der Erfahrung auch und aufgrund

Christian

dem Fokus halt als eine freie Sprache,

Christian

die sich so flexibel

Christian

halt in unterschiedlichen Kontexten halt

Christian

einsetzen lässt.

Christian

So, aber jetzt endgültig,

Dominik

und jetzt fangen wir an zu erklären,

Dominik

wie man das mit Python alles so

Dominik

insgesamt machen möchte, wenn man sowas

Dominik

DevOps'en

Dominik

möchte.

Dominik

Was macht man denn da? Was ist das überhaupt?

Dominik

Vielleicht fangen wir damit nochmal ganz kurz an, aber diesmal

Dominik

jetzt so vielleicht ein bisschen kompakt.

Dominik

Wer möchte zuerst?

Dominik

Ja, ich kann ja einfach mal

Dominik

genau,

Jochen

ich habe eben schon mal so kurz überlegt,

Jochen

wie man das irgendwie

Jochen

anfangen

Jochen

könnte und ich dachte, naja, also

Jochen

vielleicht einfach

Jochen

in der Differenz

Jochen

zu anderen Geschichten, die es halt schon lange gab, die Leute

Jochen

vielleicht auch kennen, ich weiß nicht so genau.

Jochen

Aber so früher war das ja

Jochen

so, dass wenn man jetzt, also

Jochen

ich nehme jetzt mal den Bereich,

Jochen

man möchte jetzt eine Webseite irgendwie haben,

Jochen

die irgendwo online

Jochen

zu sehen ist, die man nicht nur lokal irgendwie

Jochen

anguckt, da kann man auch einfach ein HTML-File

Jochen

von einem Editor hinschreiben und dann

Dominik

guckt man sich das mal um. Webseite mit Service, also jetzt nicht nur

Dominik

meine Visitenkarte. Das kann auch

Jochen

einfach nur ein HTML-Datei sein, aber die

Jochen

kann ja jemand anders noch nicht sehen, nur wenn

Jochen

ich sie auf meinem Rechner mit dem Editor

Jochen

abgesorgt habe, dann sollten

Jochen

andere Leute die ja hoffentlich erstmal so nicht sehen können.

Jochen

Die Frage ist halt, wie kriege ich das hin, dass das Ding

Jochen

zum Beispiel weltweit dann halt

Jochen

sichtbar ist. Und

Jochen

wenn man jetzt

Jochen

die ersten Geschichten, die es da gab,

Jochen

auch Ende der 90er

Jochen

irgendwie PHP und

Jochen

irgendwie FTP-Server oder so, da haben

Jochen

Leute irgendwie

Jochen

quasi so eine Web-Route in einem

Jochen

Apache gehabt und dann haben sie da irgendwie

Jochen

PHP-Sachen per FTP hochgeladen und dann war das

Jochen

irgendwie dann deployed,

Jochen

sozusagen. Vielleicht kennt man das.

Jochen

Ich war sehr überrascht, als ich letztens gesehen habe, dass Leute

Jochen

das heutzutage immer noch so machen.

Jochen

Ja, sie machen es.

Christian

Es ist immer wieder...

Christian

Also, ja.

Christian

Sie sterben nicht aus.

Jochen

Ja, auf der anderen Seite muss man halt sagen,

Jochen

dass es halt so, auch wenn es

Jochen

aus diversen

Jochen

unterschiedlichen Gründen halt eine sehr problematische

Jochen

Geschichte ist, das so zu machen, es ist

Jochen

halt irgendwie so ein definierter Weg. Die Leute haben sich

Jochen

irgendwie reingewöhnt. Es gibt viele, die kennen überhaupt nichts anderes.

Jochen

Und es ist halt so ein Standardweg,

Jochen

wie deployed man jetzt irgendwie

Jochen

Software mit PHP

Jochen

irgendwie, wenn man das jetzt... Funktioniert.

Jochen

Ja, naja, für

Jochen

bestimmte Werte von

Jochen

Funktionieren.

Jochen

Und diese

Jochen

Geschichte so, wie macht man das jetzt eigentlich,

Jochen

wenn man das tun will, gab es für Python

Jochen

sozusagen nie. Und das ist

Jochen

jetzt halt für Python dann irgendwie, gibt es

Jochen

halt sehr viele unterschiedliche Arten,

Jochen

das zu tun. Und

Jochen

ja, den Leuten ist nicht so richtig bewusst, wie das

Jochen

dann überhaupt gehen soll und was irgendwie

Jochen

dann so ein bisschen dazu führt, dass sie oft gar keine

Jochen

Vorstellungen davon haben, wie man das dann

Jochen

macht und

Jochen

das dann halt auch nicht so richtig tun.

Jochen

Das Schmeinende daran ist, man kann

Christian

jetzt sozusagen mal den Bogen, du hast jetzt wirklich

Christian

das abschreckende

Christian

90er-Jahre-Beispiel ins eine Ende gestellt.

Christian

Ich meine, der Extremwert von dem, was du

Christian

beschrieben hast, ist ja noch, ich kenne auch die Leute,

Christian

die haben das FTP gemountet und editieren

Christian

halt dann mit ihrem Editor direkt

Christian

auf dem, ja genau.

Christian

auch die existieren noch und

Christian

ich durfte auch schon, ich glaube, wir durften

Christian

letztes Jahr auch schon mal aufstehen und

Christian

irgendwie kaputtgegangene Seiten reparieren, weil

Christian

irgendwie sein Editor nicht ordentlich zugemacht hat.

Christian

Das andere Ende davon ist ja jetzt sozusagen,

Christian

wenn man sich heutzutage fragt,

Christian

wenn man das Thema abhaken will,

Christian

dann sage ich jetzt Docker und dann ist irgendwie

Christian

alles vorbei.

Dominik

Also das würdest du sagen, also eben das Best Practice,

Dominik

dass wir jetzt die Antwort hätten.

Dominik

Nee, überhaupt nicht. Nein, gar nicht.

Dominik

Weil das halt,

Christian

weil Docker jetzt erstmal ja nur

Christian

ein, auf der einen Seite

Christian

hast du eine Lösung, die ist sozusagen so

Christian

grottig auf so vielen Enden, dass

Christian

die Leute, die sie einsetzen, noch nicht mal verstehen,

Christian

warum es schlecht ist.

Christian

Und am anderen Ende hast

Christian

du ein Ding, das als Totschlag

Christian

Variante macht, dass man auch

Christian

nicht mehr versteht, warum es jetzt gut ist.

Christian

Also Docker hat halt

Christian

löst wahnsinnig viele Probleme, die es da

Christian

so gibt und hat, bringt halt

Christian

eigene große Komplexität mit

Christian

und

Christian

was ich halt spannend finde, wenn wir das Wort

Christian

DevOps eigentlich nehmen, dann kommen wir

Christian

halt in so einen

Christian

auch mit agil, ich muss jetzt meine Buzzword-Matrix

Christian

irgendwo aufmachen,

Christian

dann kommst du halt aber in

Christian

dieses Thema von, wie arbeitet man eigentlich

Christian

in Teams gut zusammen, weil

Christian

wenn ich meine Software alleine baue und ich habe

Christian

meine drei, vier Privatprojekte,

Christian

dann kann ich halt irgendeine technische

Christian

Lösung nehmen, die mir für mich

Christian

alleine löst, dass ich mir

Christian

nicht auf die Füße trete. Die kann so klein oder so

Christian

groß sein, wie ich es halt gerade vertrage.

Christian

Wenn ich aber das Thema habe,

Christian

dass ich eben nicht mehr alleine bin, sondern

Christian

dass ich halt mehrere Leute habe, die

Christian

entwickle oder halt unterschiedliche Zuständigkeiten,

Christian

dass ich mir vielleicht auch mal für

Christian

bestimmte Themen, gerade

Christian

ich mache die kurze Schleife zur Digitalisierung,

Christian

wenn ich halt eben auch Software für mich

Christian

entwickeln lasse, das heißt, ich habe halt irgendwem,

Christian

dem gehört die Software vielleicht nachher, aber

Christian

irgendwer anders, irgendeine Agentur oder irgendein Freelancer

Christian

oder ein Team entwickelt das für mich und dann

Christian

habe ich noch irgendwen, der soll das

Christian

irgendwo betreiben und

Christian

Das wird halt alles relativ schnell komplex und dann ist halt die eigentlich interessante Frage von, was sind denn für solche Szenarien interessante Arten, wie man da zusammenarbeiten kann.

Christian

Weil, wenn man jetzt mal das FTB-Beispiel weglegt und sagt, wie war es sonst im großen Umfeld vielleicht, im professionellen und nicht so in diesem semi-professionellen Umfeld, dann gab es da früher immer diese Metapher des Software-über-den-Zaun-Werfens.

Christian

Das sah dann ungefähr so aus, du programmierst dein Kram runter, packst das alles in eine kleine Kiste, also zum Beispiel ein Tarball oder CVS und danach schreibst du ein Readme und das Ding zusammen, also der Lieferschein und diese kleine Kiste, wirfst du über den Zaun, am anderen Ende steht schon irgendein Admin, der sammelt das dann ein, packt das wieder auseinander, geht dieses Readme durch, stellt fest, dass das vorne und hinten nicht funktioniert.

Christian

Und der Prozess war aber definiert, siehe Wasserfall-Methodik und so, von, wenn ihr fertig mit dem Entwickeln seid, dann gibt es halt den Admins. Und in einer komplexen Welt hast du halt eben nicht mehr solche ganz klaren, harten Interfaces zwischen Leuten.

Christian

Hat der gerade Agile gesagt oder was?

Christian

Oder warst du ja gerade beim Buzzword-Bingo?

Christian

Ja, ja.

Christian

Agile ist schon eine Weile her.

Christian

In einer komplexen Welt hast du halt das Problem,

Christian

dass du die Schnittstellen zwischen unterschiedlichen Leuten,

Christian

unterschiedlichen Teams, unterschiedlichen Prozessen

Christian

halt nicht mehr so glatt definieren kannst à la

Christian

ihr arbeitet bis hierhin und das Werkstück, was da rausfällt,

Christian

gebt ihr dann dem Nächsten.

Christian

Also das kannst du machen, wenn du Auto baust.

Christian

Und Autobauen ist halt tatsächlich ein Ding,

Christian

das können wir heutzutage ingenieursmäßig machen

Christian

eben, dann weißt du, es gibt die

Christian

Station, der dreht die Schrauben rein, dann wandert das

Christian

Auto selbstständig zur nächsten Station,

Christian

der dreht die anderen Schrauben rein, der nächste macht den

Christian

Spiegel dran und so, alle,

Christian

da muss keiner mehr miteinander reden.

Christian

Ja, wobei, wenn ich

Jochen

dann noch mal so kurz abschweifen darf, ich

Jochen

Bitte, bitte.

Jochen

Also das, was wir sozusagen

Jochen

dann als Agile

Jochen

Methoden ja dann in der Softwareentwicklung

Jochen

irgendwie gesehen haben, das kommt ja ursprünglich

Jochen

daher. Ich fand das

Jochen

letztens beim Abendessen

Jochen

haben wir dann mit

Jochen

bekannten

Jochen

Freunden gesprochen und einer von denen kam

Jochen

halt aus der

Jochen

Automobilindustrie und beschwerte sich bitterlich,

Jochen

was denn dieser komische neue Trend

Jochen

sei, der da irgendwie jetzt über sie

Jochen

hereinbräche. Irgendwie dieses

Jochen

ganze komische Agile-Zeugs

Jochen

und dass es da irgendwie, dass

Jochen

jetzt plötzlich irgendwie eine tausendmal

Jochen

Entwicklungsabteilung irgendwie Agile-Dinge

Jochen

machen sollte und dann machen halt alle,

Jochen

wird die in Teams aufgeteilt und die machen dann halt alle

Jochen

irgendwie Dinge in unterschiedliche Richtungen

Jochen

und es passt nichts mehr zusammen, alles ganz furchtbar.

Jochen

Und das fand ich irgendwie

Jochen

witzig, weil eigentlich kommt das ja

Jochen

aus der Automobilindustrie.

Jochen

Ja, Toyota.

Jochen

Ja, nee, nee, Moment.

Jochen

Nein, da muss ich reingrätschen.

Jochen

Nein.

Christian

Du hast zwei Sachen. Du hast Agile auf der einen Seite

Christian

und du hast Kanban auf der anderen.

Christian

Und Kanban, das sind

Christian

ähnliche Konzepte. Kanban ist das, was

Christian

Toyota stark gemacht hat.

Christian

Das ist tatsächlich, es kam aus

Christian

so einem produktionsorientierten Thema

Christian

und Produktion hieß

Christian

an der Stelle tatsächlich eine Flussoptimierung,

Christian

dass du machst,

Christian

dass das, also

Christian

wenn du so eine Werkshalle hast mit

Christian

Autos und dieser

Christian

Straße, dieser Fertigungsstrecke,

Christian

dann wandern die Autos

Christian

halt schön durch und ein Thema ist immer,

Christian

dass wenn da irgendwas blockiert,

Christian

dann bleibt halt dieses ganze Band stehen.

Christian

Dann hast du ein sogenanntes

Christian

Stop-the-Line, Head-of-Line-Blocking auch,

Christian

es geht hier hinten nicht weiter, bevor es da vorne nicht

Christian

weitergeht. Und

Christian

Toyota hat ja tatsächlich

Christian

sich Methodiken zurechtgelegt,

Christian

um

Christian

die Planung

Christian

von diesen Abläufen

Christian

möglichst gut zu machen.

Christian

Da gehört Can-Band unter anderem mit dazu.

Christian

Can-Band ist eine Abstraktion von so einem

Christian

Fertigungsstraßending,

Christian

wo du halt sowas hast wie, du hast bestimmte Schritte,

Christian

die werden nacheinander durchlaufen und in jedem

Christian

Schritt dürfen nur maximal so und so viel gleichzeitig

Christian

sein, weil ansonsten verlieren die Leute sich

Christian

halt im Threshing, weil sie ständig Kontextwechsel machen müssen

Christian

und so. Das ist halt mehr das

Christian

Thema, wie kann ich Durchfluss optimieren und das

Christian

geht aber nur, wenn ich möglichst

Christian

einheitliche, möglichst gleichförmige Arbeitsschritte

Christian

habe.

Christian

Wenn ich zu viel unterschiedliche

Christian

Arbeitsschritte habe und deswegen ist Softwareentwicklung

Christian

Agile im Prinzip anders, weil du hast

Christian

völlig unterschiedliche Sachen, die du zwischendurch machst.

Christian

Auf der einen Seite von UIs

Christian

zu Features, zu Bugs, zu einem

Christian

großen Architekturthema, zu einem kleinen

Christian

Usability-Thema. Das geht so alles quer durcheinander

Christian

und bei Canban willst du aber eigentlich, dass

Christian

jedes Teilchen möglichst

Christian

eine einheitliche Größe hat,

Christian

damit du darauf, auch über diese,

Christian

ansonsten würde nämlich die Regulierung

Christian

der Work-in-Progress-Anzahl von Kärtchen

Christian

gar nicht helfen,

Christian

wenn du gar nicht weißt, wie groß das Kärtchen ist.

Christian

Klar, okay, ja.

Christian

Deswegen sind das so zwei, die sind nicht unabhängig,

Christian

also die kann man unabhängig

Christian

und zusammen komplementär einsetzen, aber die haben

Christian

unterschiedliche Eigenschaften. Agile

Christian

war ja eher dafür gedacht,

Christian

um

Christian

die User und die Entwickler

Christian

näher aneinander zu bringen,

Christian

also das ist eher ein Thema von Disintermediation,

Christian

dass du nicht möchtest,

Christian

dass die so weit auseinander sind,

Christian

dass sie keine gemeinsame Sprache sprechen.

Christian

Und das Interessante bei Agile ist,

Christian

weil ich habe das in letzter Zeit auch mal wieder da gehabt,

Christian

dass du, wenn man das Manifest nochmal rausholt

Christian

und diese ur-ur-ur-alte Seite

Christian

und die haben ihr HTTPS nicht im Griff,

Christian

dann ist es halt sehr knapp.

Christian

Es ist halt People over, jetzt muss ich es selber halt raussuchen,

Christian

das war People over Processes, Working Software over Comprehensive Documentation,

Christian

Collaboration over Contract and Negotiation, Responding to Change over Following a Plan.

Christian

Und das Dumme ist, das sind Techniken, die waren entwickelt worden,

Christian

ich glaube, das war ein Chrysler-Projekt und das ist eigentlich gar nicht so gut,

Christian

aber die Techniken an sich haben sich halt durchaus als hilfreich bewiesen,

Christian

dass diese vier Grundsätze ja die Entwickler und die User enger aneinander bringen sollten,

Christian

um die Realität schneller sichtbar zu machen.

Christian

Ansonsten kannst du halt über Dokumentationen, Prozesse und Vertragsverhandlungen und Plangestaltung

Christian

kannst du die Realität dermaßen verzerren, weil du hast halt so viele Ebenen von mittlerem Management

Christian

und halt eben Mediation dazwischen, dass du hast halt stille Post vom Anwender bis zum Entwickler.

Christian

Und damals wurde ja auch immer gesagt, die Anwender sollen nicht

Christian

mit den Entwicklern reden. Und ein

Christian

großes Problem, was die Agile-Community

Christian

hat, meiner Meinung nach, ist, es war eine

Christian

Team-Methode, die war nie dafür

Christian

gedacht, auf ganze Unternehmen angewendet

Christian

zu werden. Also die war

Christian

gedacht für so 10 bis 15 Leute.

Jochen

Ja, genau.

Jochen

So man sagt auch oft,

Jochen

bei neun Leuten ist bei einem Team dann irgendwie Schluss.

Jochen

Und irgendwie so eine überzeugende Antwort darauf,

Jochen

was man denn jetzt macht, wenn man Projekte hat,

Jochen

die sich mit neun Leuten halt nicht

Jochen

stemmen lassen,

Jochen

habe ich auch nie so wirklich gehört.

Jochen

Ja, aber ich meine...

Jochen

Mach es kleiner.

Jochen

Genau, du musst es halt...

Jochen

Mach es kleiner.

Dominik

Du teilst dann die einzelnen Teams auch, ne?

Dominik

Du machst dann ein Team,

Dominik

was für das spezielle Projekt ist.

Dominik

Du machst dann ein eigenes Team,

Dominik

einen eigenen Raum.

Dominik

Die haben ihre eigene Peergroup,

Dominik

ihre eigenen Stakeholder.

Dominik

Du musst dann gucken,

Dominik

wie sich damit klarkommt irgendwie, ne?

Dominik

Aber das Interessante an der Stelle ist,

Dominik

jetzt hat man halt versucht,

Dominik

dann irgendwie da drumherum

Dominik

ein Gesamtframework,

Christian

das heißt dann entweder Scaling Agile

Christian

oder Scrum oder was auch immer,

Christian

ein Gesamtframework zu bauen,

Christian

was Unternehmen halt kaufen können.

Christian

Und es ist aber ein massiver Unterschied, ob ich ein Team habe, was aufgrund so einer Methodik, Methodology mit kleinem M, arbeitet und verstanden hat,

Christian

dass diese Aussage zum Beispiel ist, wenn man das Manifest noch eins runterkochen will und sagt, diese vier Sätze sind mir zu viel,

Christian

dann ist die eigentliche Ansage, liebes Team, du hast nicht nur eine Verantwortung, Software abzuliefern,

Christian

sondern du hast auch eine Verantwortung dafür,

Christian

den Prozess zu guter Software zu kommen,

Christian

selbst zu gestalten.

Christian

Und wenn ich dann aber im Gegensatz dazu

Christian

heutzutage immer mal in irgendwelchen Runden bin,

Christian

wo irgendwelche Entwickler sich selbst als,

Christian

ja, ich bin ja nur ein Entwickler,

Christian

bezeichnen, denke ich mir so,

Christian

ey, mein Kindheitsherz bricht gerade,

Christian

weil die Softwareentwicklung selber war das,

Christian

was, als ich groß geworden bin, war mit,

Christian

hey, da ist doch die ganze Power,

Christian

das ist doch was, was attraktiv ist,

Christian

da ist die Gestaltung

Christian

und nicht in irgendwelche Leute

Christian

lassen dich nur noch Tickets abarbeiten.

Christian

Ja, ich

Jochen

finde das auch immer total seltsam, wenn Leute da so

Jochen

sich so zurückziehen

Jochen

auf so eine

Jochen

ganz, ganz enge Funktion.

Jochen

Ich kann

Jochen

das auch nicht so richtig, aber es gibt das natürlich durchaus

Jochen

und es gibt auch Leute, die sich total unsicher fühlen,

Jochen

wenn sie dann halt da irgendwie

Jochen

mit Fragen konfrontiert werden,

Jochen

die sie jetzt nicht kompetent

Jochen

fühlen.

Christian

Und dann probieren wir mal die Schleife zum DevOps zu machen. Jetzt hast du also mit agilen Methoden eigentlich eine Ansage von, hey Jungs, ihr müsst euch halt Gedanken machen, wie man vernünftig zusammenarbeitet.

Christian

Ich komme immer mal wieder jetzt mit diesem komplexe Welt Thema und ich mache einen kurzen Aufschlag zu, was heißt komplexe Welt. Komplexe Welt heißt, wir haben Beziehungen zwischen Dingen, die wir nicht vorhersagen können.

Christian

Du kannst die Welt einteilen, kannst Systeme einteilen.

Christian

Das ist halt wieder das Kinevin von Dave Snowden.

Jochen

Ja, der macht irgendwie Unterschiede zwischen kompliziert, komplex und chaotisch.

Jochen

Genau, genau.

Christian

Das ist deine Theorie, an der er seit 30 Jahren arbeitet.

Christian

Und die nimmt jetzt gerade auch ganz gute Formen an, dass er sie finalisiert.

Christian

Der unterscheidet Systeme in Unterschied.

Christian

Du kannst es als Typologie benutzen, du kannst es als Klassifikationssystem benutzen,

Christian

Du kannst es aber auch als exploratives Werkzeug benutzen.

Christian

Und er sagt halt, es gibt zum einen geordnete und ungeordnete Systeme.

Christian

Und geordnete Systeme sind die, wo Ursache-Wirkungs-Prinzipien halt vorhersagbar sind für uns Menschen.

Christian

Die kannst du nochmal unterteilen in offensichtliche Systeme.

Christian

Das heißt, du brauchst kein Fachwissen, um eine Vorhersage zu treffen.

Christian

Beispiel, ich lasse mein Glas runterfallen und dann ist da eine Pfütze auf dem Boden.

Christian

Da weiß ich halt auch ohne Fachwissen, ich hebe das jetzt auf, wische das weg.

Christian

wenn es gesplittert hat, hole ich noch einen Staubsauger.

Christian

Da brauche ich nicht groß irgendwie

Christian

Analyse betreiben.

Christian

In solchen Umgebungen

Christian

kannst du halt auch zum Beispiel... Es gibt Unternehmen, die machen

Dominik

genau sowas. Die kaufen sich da ein neues Glas und

Dominik

auf dem Boden stammeln sich immer mehr Scherben an.

Dominik

Ja, genau. Kann man machen.

Dominik

Denn dann

Christian

kompliziert ist, wenn du

Christian

für Vorhersagen

Christian

in einem System

Christian

Analyse betreiben musst. Wenn du sozusagen

Christian

einen Fachmenschen brauchst,

Christian

Der sich ein Problem nimmt und sagt, okay, was sind denn hier jetzt die Parameter, da gehören zum Beispiel sowas wie, jetzt beim Hausbau ein Statiker, ein deutscher Ingenieur, die sind genau für sowas gut.

Christian

Den gibt es ein Problem, was man nicht auf den ersten Blick erkennt, aber wo du weißt, der setzt sich jetzt hin, das dauert dann 10 Stunden, dann rechnet er das durch und dann kommt dein Ergebnis raus.

Christian

Der kann dir das Ergebnis nicht vorab sagen, aber er weiß, wenn er das jetzt macht, dann kommt er halt am Ende raus.

Christian

Und er weiß, wie wird die Tragfähigkeit von dem System sein, bevor ich es baue.

Christian

Kompliziert wiederum ist der Fall, wenn ich Ursache-Wirkungs-Prinzipien eben nicht vorhersagen kann, aber zumindest die Chance hätte, es im Nachhinein zu erklären. Wenn ich nicht mal die Ursache-Wirkungs-Prinzipien im Nachhinein erklären kann, dann sind wir in den sogenannten chaotischen Systemen. Dann habe ich gar keine für Menschen entdeckbaren Zusammenhänge mehr.

Christian

Und es gibt unterschiedliche Handlungsstrategien für diese unterschiedlichen Systeme. Und im komplexen, jetzt muss ich versuchen die Schleife wieder hinzukriegen, wo ich gerade abgeschwiffen bin, in der komplexen Welt ist es eben so, dass ich diese Ursache-Wirkungs-Prinzipien eben nicht vorhersehen kann.

Christian

Und deswegen ist das der Grund, warum starre Methodiken, starre Formen der Zusammenarbeit, starre Formen der Planentwicklung dort niemals funktionieren werden. Und die Leute wundern sich immer, die wenden Techniken an aus einer analytischen Perspektive und sagen, das musst du ja einmal runter definieren, hab aber ein komplexes System und wundern sich dann, warum es nicht funktioniert.

Christian

Und die typische Antwort ist dann ja, wir müssen das nächste Mal einen besseren Plan machen, wir müssen das nächste Mal noch genauer hingucken. Und dabei ist die Aussage, nein, die Welt ändert sich um dich drumherum, während du mit ihr interagierst und sie zeigt sich dir nicht in ihrer Fülle.

Christian

Und das ist so ein massiver Unterschied, weswegen dann nämlich agile Methoden oder DevOps immer mitbringen, du musst die für deinen Kontext, also Kontext ist ein angemessene Kombination herstellen und dafür brauchst du aber eine Auswahl an unterschiedlichen Methodiken, eine Auswahl an unterschiedlichen Fertigkeiten, unterschiedlichen Werkzeugen.

Christian

Und deswegen ist sozusagen beide Extreme, wenn wir drüber reden, FTP-Deployments oder Docker oder Kubernetes eats the world, beide Extreme sind nicht gesund. Beides sind halt Werkzeuge, die kontextabhängig sind. Docker und Kubernetes ist, also gerade Kubernetes ist halt ein riesengroßes Tier. Das ist halt vielleicht nicht angemessen, wenn ich Embedded-Systeme mache, weil ich halt nicht 20 Gigabyte in meinen armen kleinen Raspberry Pi reinkriege.

Christian

Und dafür aber dann halt zu wissen, was sind denn auch die Grundlagentechniken, damit alle, die beteiligt sind, halt Entwickler, User, Businessleute, Opsleute, dass die halt sich in einem Projekt auch zusammenfinden und sagen, so, was ist denn hier jetzt die richtige Kombination für jetzt?

Christian

Weil auch die Zeit ist ja wieder ein Faktor

Christian

da dran. Man fängt ja mit Projekten an und will

Christian

erstmal was basteln und

Christian

das ist eben wieder dieses Thema im Komplexen.

Christian

Du willst so schnell wie möglich experimentieren,

Christian

Ende, Ende, sehen, was tut meine Software

Christian

eigentlich? Kann mein User damit

Christian

irgendwas anfangen? Und da sind wir wieder beim Agilen.

Christian

Warum machen wir eigentlich kleine Zyklen?

Christian

Naja, weil ich so schnell wie möglich vom User

Christian

rausfinden möchte, ob ich überhaupt in die richtige

Christian

Richtung entwickle. Ja, Learn, Process, Learn, Process.

Christian

Genau. Ja, genau. So ein bisschen

Jochen

Trial and Error halt.

Christian

Ja, ja, auch Sachen wegwerfen.

Christian

Und ein ganz interessantes Thema halt aus der Komplexität dabei ist wieder, wenn du nicht an die Grenzen kommst, wenn du keine Fehler machst, und das erklärt sich für mich, was bedeutet Fehlerkultur eigentlich, das ist nämlich völlig fehlverstanden, das heißt nicht, ah, man macht was falsch und dann geht was kaputt und deswegen sind wir jetzt alle nicht sauer auf dich, sondern wir müssen eigentlich vorher einen Plan machen, in einer Umgebung, die wir noch nicht vollständig erfasst haben, die Grenzen zu finden.

Christian

Und wie finde ich eine Grenze? Indem man was kaputt gehen lässt. Indem ich was kaputt gehen lasse, weil dann weiß ich nämlich, ah, bis hierher und nicht weiter. Wenn ich die nur nie austeste, dann haben Menschen auch einen, die Menschen, ich bin kein Roboter, dann haben Menschen das Problem, dass sie gerne linear denken und dass sie denken, ah, guck mal, das ging jetzt mit 5, das ging jetzt mit 10, ja, dann geht es halt auch mit 20, 40 und 100.

Christian

dass dann aber vielleicht bei

Christian

elf

Christian

eine abrupte Grenze kommt, wo es halt gar nicht mehr geht,

Christian

das können wir eben nicht vorhersagen. Das ist wieder der Black Swan

Christian

auch, den du halt hattest.

Christian

Und auch

Christian

Taleb im

Christian

Black Swan argumentiert ja für

Christian

den Longtail. Die Menschen

Christian

unterschätzen den Effekt der Risiken

Christian

eines Longtails. Die Fläche

Christian

in dem Rattenschwanz,

Christian

der nur sehr selten kommt,

Christian

ist in Summe aber sehr groß.

Christian

Und deswegen sind die Wahrscheinlichkeiten, dass

Christian

eins dieser unwahrscheinlichen Ereignisse

Christian

eintreten wird, auch extrem hoch.

Dominik

Kann ja trotzdem einfach mal irgendwas twittern.

Dominik

Ja, ja, ich finde dann auch die

Jochen

Arten, damit umzugehen, interessant.

Jochen

Also gerade bei Infrastruktur gibt es

Jochen

da zum Beispiel bei Netflix gibt es da

Jochen

den

Jochen

Chaos Monkey. Genau.

Jochen

Der halt dann einfach mal irgendwie

Jochen

einen Dienst, der halt

Jochen

irgendwie den Stecker bei Maschinen zieht

Jochen

oder die einfach vom Netz trennt und dann

Jochen

guckt man halt, ob die Infrastruktur

Jochen

weiterhin lebt. Und wenn sie das nicht tut, dann hat man da irgendwas nicht

Jochen

ordentlich gebaut, sozusagen.

Christian

Ja, und das Interessante bei, das unterstützt

Christian

ja diesen psychologischen Effekt. Das unterstützt

Christian

ja dieses, ja, wann kommt denn das schon mal

Christian

vor, dass so eine VM ausgeht? Und wann kommt denn das schon mal

Christian

vor, dass da eine Netzwerkverbindung hakelig ist?

Christian

Und wenn du das umdrehst und sagst,

Christian

das ist nächsten Dienstag,

Christian

dann

Christian

haben die Leute halt ein anderes Händel da dran.

Christian

Dann hast du nicht mehr dieses psychologische, ah, da kann ich

Christian

mich drum rum wickeln. Das ist DevOps.

Dominik

Also dann solche Situationen herzustellen und

Dominik

die ganze Zeit die Leute zu nerven mit

Dominik

Szenarien, die in der Realität irgendwie

Dominik

im Wahnsinn auftreten könnten und die man dann realisiert?

Jochen

Nee, es ist eher, dass man

Jochen

diese Dinge nicht so klar

Jochen

voneinander trennen kann. Also auf der einen

Jochen

Seite Softwareentwicklung, auf der anderen Seite

Jochen

Betrieb

Jochen

des Systems. Also früher,

Jochen

klassisch war das halt so, Entwicklungsabteilung hat halt

Jochen

die Software nach Spezifikationen

Jochen

entwickelt, wie auch immer die aussah.

Jochen

Und dann

Jochen

eine IT-Abteilung war dann halt dafür zuständig,

Jochen

also für Sicherheit, Skalierbarkeit

Jochen

und dafür, dass das letztendlich irgendwo

Jochen

dann läuft, zuständig.

Christian

Ja, die sogenannten nicht-funktionalen Anforderungen.

Christian

Ja, genau. Und

Jochen

das ist aber schwer voneinander zu trennen.

Jochen

Das ist halt...

Dominik

Vor allem, wenn der Manager dann irgendwie kein

Dominik

ITler ist wahrscheinlich.

Christian

Bei nicht-funktionalen Anforderungen denke ich mir halt

Christian

auch immer, zum Beispiel Performance,

Christian

da hieß es dann halt, wie groß

Christian

muss die CPU sein, wo das läuft.

Christian

Der Trick ist, wenn ich halt Blödsinn baue am anderen Ende

Christian

und eine Endlosschleife baue, dann kann die CPU

Christian

halt so schnell sein, wie sie will.

Christian

Das wird nicht funktionieren, genau.

Jochen

Ja, genau, aber wenn man jetzt Systeme bauen will, die damit umgehen können, dass jetzt so irgendwie so ein Chaos Monkey ab und zu mal da irgendwie nicht deterministische Dinge ausfallen lässt, dann muss man sich halt auch nicht nur, dann reicht es nicht, sich sozusagen auf der IT-Ebene sozusagen damit zu beschäftigen, sondern dann muss man vielleicht auch die Software schon so bauen, dass sie damit irgendwie klarkommt.

Christian

Es ist vor allem extrem teuer, wenn du Sachen, also wie es halt immer auch ist mit dem Thema, wie teuer sind Bugs, je später du sie findest, desto teurer werden sie halt. Und so ähnlich ist es halt auch, wenn ich bestimmte Probleme wie Verfügbarkeit, Performance, Ressourcennutzung, wenn ich die versuche dann erst spät im Prozess, also irgendwo im Betrieb zu lösen, dann bin ich eigentlich nur noch dabei, Duct Tape rauszuholen.

Christian

Also das halt alles wieder zusammenzubinden, was vorne schon mal verrissen wurde. Das sehe ich relativ häufig. Also wir sehen halt immer wieder Anwendungen, die verbraten Unmengen an CPUs und RAM. Und wenn man dann halt feststellt, das hat irgendein Java-Entwickler gemacht, Java-Bashing, der tatsächlich nur irgendwie als Quereinsteiger mal so ein bisschen reingeguckt hat und von algorithmischer Komplexität keine Ahnung hat und sich da ein ON hoch 5 gebaut hat,

Christian

Dann kannst du schon sagen, ja, logisch, dass das explodiert, da brauche ich auch nicht noch mehr Hardware draufwerfen. Und beim DevOps dreht es sich jetzt eher darum, dass du zwischen Leuten, die halt operative Erfahrung haben und Leute, die Entwickler sind und diese beiden als Tagesgeschäft, also diese beiden als unterschiedliche Disziplinen wahrzunehmen, hat jetzt erstmal Wert. Häufig wird DevOps auch so aufgegriffen, dass man sagt, oh, jetzt machen die Devs irgendwie alles. Auch bekannt als NoOps.

Christian

Und die, ich fände es ja, diese Begriffe fallen ja gerne so aus einem von diesen Open-Source-Treffen raus.

Christian

Das Dumme ist, das nimmt irgendein Manager dann halt noch ernst.

Christian

Das sind eigentlich bloß immer irgendwelche Biersprüche.

Christian

Weshalb es so macht, die zu trennen ist, die haben völlig unterschiedliche Tagesabläufe, die Leute.

Christian

Also als Entwickler ist es schon so, ich brauche extrem hohe Konzentration

Christian

und will mich halt auf bestimmte Sachen, die ich entwickeln möchte, konzentrieren.

Christian

Und aus einer Ops-Perspektive hast du aber eher das Thema,

Christian

dass du eben reaktiv, auch Echtzeit-reaktiv,

Christian

auf das Verhalten der Anwendung reagieren können möchtest.

Christian

Und das sind zwei Sachen, die funktionieren nicht gut

Christian

an einem Tag in der gleichen Person, sagen wir es mal so.

Christian

Also du kannst es schon so machen, wenn ich einen Tag mache,

Christian

wo ich sage, ich entwickle jetzt wieder Software bei uns,

Christian

dann versuche ich es möglichst zu vermeiden,

Christian

dass ich irgendwie so OBS-Sachen mache, weil

Christian

OBS-Sachen sind Dinge, die können gerne

Christian

mehrere Stunden dauern, wo du immer mal nochmal hingucken

Christian

musst. Und irgendwie...

Dominik

Und dann die grüne und dann bringt die blaue die ganze Zeit

Dominik

und dann oh oh. Genau, genau.

Dominik

Ja, ja.

Christian

Genau, genau. Und allein deswegen

Christian

macht es Sinn, das als unterschiedliche Rollen halt

Christian

auch aufzufassen.

Christian

Das muss ja noch nicht mal dann sein, dass eine Person

Christian

immer OBS ist, aber dass du halt zum Beispiel weißt,

Christian

das sind unterschiedliche Zuständigkeiten und ich muss mir das halt auch

Christian

unterschiedlich zurechtlegen. Insofern ist eine

Christian

mentale Separierung dieser zwei Rollen und die

Christian

auch so ein bisschen zu klären,

Christian

was haben die eigentlich zu tun? Erstmal

Christian

ganz sinnvoll. Und wenn du es jetzt über

Christian

DevOps als Portmanteau wieder zusammenklatscht,

Christian

bedeutet es halt nur, die beiden müssen

Christian

trotzdem in einem ständigen Austausch miteinander stehen,

Christian

im konstruktiven Austausch miteinander stehen. Auf der einen

Christian

Seite möchtest du, dass operatives Wissen

Christian

in Projekte reinfließt, während die anfangen.

Christian

Und auf der anderen Seite möchtest

Christian

du auch, dass Entwicklung,

Christian

es sind vier Sachen, also auf der einen Seite

Christian

willst du operatives Wissen in Richtung Entwickler

Christian

bei Projektbeginn haben, à la

Christian

okay, was wollten ihr machen, was wollten ihr für Tools

Christian

nehmen, ah, könnt ihr vielleicht statt der MySQL

Christian

über eine Postgres nehmen, könnt ihr vielleicht, was, wofür

Christian

nehmt ihr den Memcache, komm, nehmt ihr den Redis.

Christian

Da wundere ich mich auch schon manchmal, dass

Christian

das eine Ops-Aufgabe

Christian

ist, sowas zu unterstützen, weil eigentlich denke ich

Christian

mir so, hallo, liebe Entwickler, ihr müsst eure

Christian

Tools halt auch kennen, ja.

Christian

Aber anyway, die

Christian

war zumindest mein Entwickleranspruch

Christian

immer. Umgekehrt möchte ich, dass

Christian

Entwickler wissen, von wie tickt diese

Christian

Anwendung intern eigentlich, und da finde

Christian

ich auch so Sprachen wie Python zum Beispiel angenehm, wo

Christian

du den Source-Code eigentlich immer gleich zur Hand hast,

Christian

dass die Ops halt mehr Einsicht kriegen in

Christian

was macht die Anwendung hier eigentlich? Ist das hier

Christian

gerade ein Bug? Ist das Absicht? Was tut denn das?

Christian

Also wir holen da halt gerne dann auch mal gleich den

Christian

Code raus, um zu sehen, warum rechnet

Christian

der hier? Ah, guck mal da drüben.

Christian

Und dass diese Form von Austausch halt

Christian

dann auch macht, dass Ops zum Beispiel mehr lernen,

Christian

okay, was brauchen Entwickler eigentlich aus der

Christian

operativen Perspektive? Und wenn die Entwickler

Christian

das dann halt mitgekriegt haben,

Christian

wie ist denn das mit dem Ops, dass die dann halt besser wissen,

Christian

ah, guck mal, wenn wir folgende Dinge tun, dann bauen

Christian

wir uns halt schon unser eigenes Grab und ich

Christian

vermeide jetzt halt wieder bestimmte...

Christian

Ja, ein beliebtes Beispiel ist halt

Christian

irgendwie, du renderst irgendeine Page raus,

Christian

wenn man halt serverseitiges HTML-Rendering

Christian

macht, du willst irgendeinen Twitter-Feed einbinden

Christian

und redest halt mit der Twitter-API.

Christian

Programmierfehler für

Christian

10 Euro,

Christian

du gehst halt mit einem synchronen

Christian

Socket per HTTP an diese Schnittstelle ran

Christian

und wenn Twitter in dem Moment meint, ich hab keinen Bock, dann bleibt

Christian

halt deine Frontpage stehen. Dann läuft dir dein

Christian

Threadpool für den Anwendungs-Server voll und dann bist du

Christian

halt komplett down. Und das dauert

Christian

halt so ungefähr 30 Sekunden, bis das der Fall ist.

Christian

Es passiert halt

Christian

immer wieder und das

Christian

kriegst du auch nicht raus, weil die Welt halt so komplex

Christian

ist, dass auch Entwickler, die zwar entwickeln gelernt

Christian

haben und selbst die halt

Christian

schon 10, 20 Jahre dabei sind, auch die machen da

Christian

immer mal Fehler dabei und müssen sich ein bisschen mit

Christian

obs reiben, mit was sind denn die

Christian

Fehler, die jetzt halt momentan typischerweise auftreten.

Christian

Es gibt halt bestimmte Fehler, das ist auch

Christian

wieder so ein Thema aus der komplexen Welt,

Christian

die gleichen Fehler treten die zweimal auf

Christian

und bestimmte Probleme,

Christian

die wir dann über sowas wie Root-Course-Analysis

Christian

oder so erschlagen wollen.

Christian

Da kommt immer ein Root-Course-Analysis.

Christian

Das musst du einmal noch mal kurz erklären.

Christian

Das sind einige Hörer, die sind genauso doof wie ich

Christian

und die wissen nicht, was das ist.

Christian

Die Wurzel-Grundanalyse.

Christian

Jetzt weiß ich mehr.

Christian

Was war, du hast halt bei Fehlern,

Christian

wenn Probleme auftreten, hast du ja irgendwann mal ...

Christian

Also welche Zeile, wo das steht.

Christian

Sozusagen.

Christian

Oder halt auch, welche Komponente ist kaputt gegangen,

Christian

Welche Festplatte ist kaputt gegangen? Hat die Putzfrau gerade irgendwie den Server ausgesteckt?

Dominik

Okay, also wo ist die Lampe an und warum ist die an vor allen Dingen?

Christian

Ja, genau. Es kann ja so eine Kausalitätskette geben, so eine Kette von mehreren Gründen, die aufeinander aufgelaufen sind, warum dann am Ende irgendwie vorne was umgefallen ist.

Christian

Und diese Kette nachzuverfolgen, das nennt sich halt Root Cause Analysis.

Christian

Und die ist halt aus einer auch wieder sehr analytischen Perspektive von, finde bitte raus, wer schuld ist, erschieß ihn und schaff was Besseres an. Und das Dumme ist aber, wenn du halt eben in sowas wie die Black Swan Theorie reingehst oder in die Komplexität, dann wirst du feststellen, im Prinzip ist im Komplexen der Normalzustand, dass ständig irgendwelche Sachen außerhalb des Optimums laufen.

Christian

Das ist halt der Normalzustand und dein System so zu designen und auch dieses Feedback auf Team-Ebene zu haben von, was ist eigentlich normal und wann darf ich mich nicht zu weit aus dem Fenster lehnen, dafür ein Bauchgefühl zu entwickeln und die Praktiken, die halt heute relevant sind, ich kann nicht alle Praktiken, die es jemals gab, aufaddieren.

Christian

Und so wird aber dieser analytische Ansatz gemacht mit, wir machen jedes Mal, wenn was schief geht, eine Root Cause Analysis und wenn wir alle davon dann fixen, dann kann nie wieder was schief gehen.

Christian

Und die Leute wundern sich dann, warum trotzdem halt regelmäßig was schief geht. Und das ist dann halt eine Technik, ja, aus dem Ops-Bereich gibt es noch die, erkläre ich dann auch gerne, Meantime Between Failure und die Meantime to Recovery.

Christian

Dominik, sagst du bitte, dass ich es erklären soll?

Dominik

Ja, ja, müsstest du bitte erklären, wann genau, wie lange man, wie viel Zeit braucht.

Christian

Ja, genau, genau, genau. Also das eine ist, ich kann halt mein System darauf auslegen, möglichst selten kaputt zu gehen. Und das andere ist, ich kann es halt darauf auslegen, möglichst schnell wieder reparierbar zu sein.

Christian

Und Extremwerte sind halt ungünstig.

Christian

Also, wenn man sich die Extremwerte anguckt,

Christian

sage ich, ich will, dass es nie kaputt geht.

Christian

Da wissen wir alle,

Christian

dann musst du so viel Energie vorab reinstecken,

Christian

dass du die Kosten nie wieder reinkriegst.

Christian

Und der Black Swan sagt uns,

Christian

es wird trotzdem auf eine Art kaputt gehen,

Christian

die du nicht vorhergesehen hast.

Christian

Das wäre dann sowas wie Full-Test-Coverage.

Christian

Ja, genau, Full-Test-Coverage mit allen Loops,

Christian

mit allen Grenzbedingungen, mit allen...

Jochen

Also formale Verifikationen irgendwie.

Christian

Ja, genau, genau, genau, genau.

Christian

Und das ist halt, das ist halt, jeder Praktiker guckt dich dann halt an und sagt, das geht halt nicht.

Christian

Und das Dumme ist sozusagen, es wird halt sogar irgendwann kontraproduktiv.

Christian

Du steckst dann irgendwann so viel Energie und Zeit rein, Sachen starr zu machen, damit sie nicht kaputt gehen,

Christian

während aber Starrheit gegenüber einer flexiblen Umwelt eine schlechte Idee ist.

Christian

Also das hält halt relativ lange, so lange, bis es dann so richtig gar nicht mehr hält.

Christian

Du willst halt Methodiken haben, die so flexibel sind, dass du frühe Warnsignale kriegst von,

Christian

das ist hier eigentlich nicht mehr okay, aber ich

Christian

explodiere noch nicht,

Christian

damit du dann nämlich die Möglichkeit hast, aus diesen

Christian

kleinen, schwachen Signalen

Christian

schon mal was zu lernen und dein System dann schon mal

Christian

in die richtige Richtung zu bewegen. Das andere

Christian

Ende ist, statt sozusagen die Häufigkeit

Christian

der Fehler zu

Christian

reduzieren, ist zu sagen, naja,

Christian

ich mache mir den Fehlerfall ganz,

Christian

ganz einfach. Das sind dann solche

Christian

Sachen wie Clean Crash Restart,

Christian

also im Sinne von,

Christian

ich mache, dass meine Anwendung extrem schnell starten

Christian

kann. Ich weiß jetzt nicht, wie lange

Christian

Django zum Hochfahren braucht. Soap hat immer

Christian

urlange gebraucht, bis es mal

Christian

einen Port aufgemacht hat.

Christian

Während dann halt neuere Tools,

Christian

also ich habe halt immer viel mit Pyramid zu tun,

Christian

die machen halt nach

Christian

500 Millisekunden oder so den Port auf

Christian

und fangen an, wieder zu arbeiten.

Christian

Was bedeutet, im Ernstfall kann ich so eine

Christian

Anwendung auch einfach abstürzen lassen,

Christian

wenn es in einen unbekannten Zustand kommt,

Christian

weil ich weiß, die ist in 500 Millisekunden

Christian

eh wieder am Start.

Christian

Und wenn ich dann einen Pool von 10 oder so

Christian

davon habe, dann

Christian

mit einem vernünftigen Loadbalancer, dann denke

Christian

ich mir so, klar, die kann jede Nacht einmal abstürzen,

Christian

ist mir völlig egal, weil merkt keiner.

Christian

Merkt keiner.

Christian

Und dann kriege ich aber solche Infos mit,

Christian

oh du, übrigens gestern Nacht sind zwei Sachen

Christian

kaputt gegangen, hier ist der Stacktrace.

Christian

Geh mal gucken.

Christian

Versus, hm, wir haben jetzt ganz

Christian

lange alle Fehler unterdrückt und jetzt ist das ganze

Christian

System stehen geblieben. Viel Spaß.

Dominik

Jetzt aber nochmal so eine ganz doofe Frage wieder.

Dominik

Was ist denn jetzt eigentlich der Unterschied zu einem

Dominik

Administrator dann?

Christian

Ich habe keine Ahnung, Namen sind schon alle drauf.

Christian

Das weiß ich nicht, naja, genau, ich glaube,

Jochen

ob es ist nochmal ein bisschen älter,

Jochen

irgendwie wurden teilweise auch Opis

Jochen

genannt, was ist Opis, oder weiß nicht,

Jochen

ja, oder Leute, die dann tatsächlich

Jochen

im Rechenzentrum rumlaufen.

Jochen

oder so. Und Admin ist schon so ein bisschen

Jochen

so, der sitzt dann schon im

Jochen

Bürostuhl.

Jochen

Naja, ein Admin war

Dominik

ja. Auf was sitzt du da gerade, Christian?

Dominik

Ich sitze auf einem

Dominik

schönen Bürostuhl.

Christian

Ja, also auch da

Christian

wieder, ich rede schon erstmal

Christian

wieder zur Komplexität drüber. Menschen

Christian

haben halt unterschiedliche Facetten.

Christian

Also Leute in

Christian

so eine eindimensionale Perspektive

Christian

zu schieben, macht den Menschen halt

Christian

eher weniger Spaß, also auch

Christian

weniger als Mensch.

Christian

Ich bin gerne mal im Rechenzentrum

Christian

in Arbeitshose unterwegs, weil ich halt

Christian

irgendwie wissen will, wie ist denn das mit diesen blöden Kabeln

Christian

und ach guck mal, da sind immer diese komischen

Christian

Nasen, die da abbrechen, ja genau und wenn du das nicht

Christian

ordentlich machst, dann hast du nach einem halben Jahr plötzlich ein Kabel,

Christian

das rausrutscht und umgekehrt

Christian

weil daraus

Christian

entwickelst du ja auch ein Gefühl zum Beispiel

Christian

von, wie stabil ist

Christian

so ein Kram eigentlich, anstatt ständig nur

Christian

über Abstraktionen zu reden und deswegen ist

Christian

Multidimensionalität und mehr Facetten

Christian

den Menschen

Christian

in ihrem Alltag

Christian

zu erlauben, ja, total wichtig.

Christian

Operator

Christian

ist der ältere Begriff, der

Christian

stammt dann wirklich schon aus

Christian

dem

Christian

Zweiten Weltkrieg.

Christian

Nee, Industrialisierung

Christian

tatsächlich schon. Also du hast halt,

Christian

das war dann eher so Engineering versus Operator.

Christian

Du hast halt Leute, die

Christian

entwerfen eine Maschine und Leute,

Christian

die die Maschine im Tagesbetrieb am Laufen

Christian

halten. Aber auch

Christian

das sind halt immer so ineinandergreifende

Christian

Tätigkeiten gewesen. Also die hatten

Christian

halt ihr begrenztes Feld von, ja, ich weiß,

Christian

hier, die und die Sachen kann ich machen, da hört irgendwo

Christian

meine Kompetenz auf, dann hole ich halt den Ingenieur

Christian

dazu und dann ist der Ingenieur halt auch vom Reißbrett weg

Christian

und muss dann halt mit der Ölkanne an das Ding ran.

Christian

Der kann aber in dem Moment

Christian

überlegen, was gerade die Konstruktionsprinzipien sind.

Christian

Der andere weiß halt, ja, komm,

Christian

das knarzt jeden Dienstag, da rufe ich jetzt nicht an.

Christian

Ja, da würde

Christian

der Ingenieur, dem würde irgendwie der Hut platzen,

Christian

das darf da nicht knarzen und der andere so,

Christian

Das knarzt seit 20 Jahren, das war wurscht.

Christian

Und das ist halt genau dieses Thema, so Alltags-Know-how, wie die Systeme, die designt wurden, sich dann real verhalten.

Christian

Das ist so das, was ich einem Op angeben würde.

Christian

Und ein Admin war immer auch eher einer, der halt aus so einer Systemmanagement, Systemkonfigurationssicht als ein Ingenieur tätig war.

Christian

Als überleg mir das hier einmal und dann tut das irgendwie.

Christian

Ich neige heute mehr zu dem Ops-Begriff, weil es halt so ein bisschen umfassender den gesamten Lebenszyklus auf der Server-Seite dann widerspiegelt.

Christian

Ja, ich meine,

Jochen

in der FOPs hat man das ja sowieso dann schon im Namen

Jochen

irgendwie mit drin.

Jochen

Was ich an der Stelle noch ganz interessant finde, ist, dass halt auch

Jochen

wenn man

Jochen

jetzt sozusagen das komplett

Jochen

voneinander getrennt hat, auch dieses Problem bekommt, dass

Jochen

die unterschiedlichen

Jochen

ja, sozusagen

Jochen

Facetten da

Jochen

halt unterschiedliche, also

Jochen

der Erfolg wird halt unterschiedlich gemessen.

Jochen

Das war halt also, sozusagen, ich war auch

Jochen

eine Zeit lang Admin

Jochen

und im Rechenzentrum unterwegs und so

Jochen

und das Interessante

Jochen

ist halt, dass

Jochen

sich das halt gegenseitig blockiert, deswegen

Jochen

ist es vielleicht auch nicht so eine gute Idee, das voneinander

Jochen

zu trennen, weil

Jochen

sozusagen der ganze Betriebsbereich,

Jochen

also eben

Jochen

Administration, die ganzen Infrastruktur-Kram,

Jochen

Rechenzentrumsbetrieb, das wird halt

Jochen

daran gemessen, dass es halt nicht kaputt geht,

Jochen

sozusagen, also

Jochen

ja, also ich meine

Jochen

über, dass der Strom

Jochen

da ist, das feiert niemand, aber wenn er

Jochen

ausfällt, ist halt blöd.

Jochen

Das heißt, wenn der ganze Kram funktioniert,

Jochen

dann wird man nicht wahrgenommen.

Jochen

Wenn es kaputt geht, dann ist es blöd.

Jochen

Haha.

Jochen

Genau.

Jochen

Und bei den Entwicklern ist es halt so,

Jochen

bei denen schlägt das ja gar nicht so sehr auf,

Jochen

wenn das System irgendwie insgesamt nicht mehr funktioniert.

Jochen

Und die werden halt daran gemessen,

Jochen

wie viele Features sie halt rauskriegen irgendwie.

Jochen

Und ob das jetzt irgendwie irgendwas verbessert oder so.

Jochen

Das heißt, wenn man dann eine klare Trennung

Jochen

zwischen den beiden Geschichten hat,

Jochen

sind halt sozusagen

Jochen

die optimalen Strategien möglicherweise für Entwickler

Jochen

halt möglichst kaputtes Zeug

Jochen

einfach raus damit, egal.

Jochen

Die werden das schon irgendwie am Laufen

Dominik

halten. Vielleicht steht ja nicht mein Name dran oder keiner.

Jochen

Genau, weil ich meine, ich werde halt

Jochen

nicht dafür bestraft sozusagen, wenn es kaputt geht

Jochen

und aber belohnt, wenn

Jochen

ich genug Features rausdrücke

Jochen

und auf der anderen Seite optimiert

Jochen

man halt darauf, möglichst keine Änderungen zuzulassen,

Jochen

weil ein System, das

Jochen

sich überhaupt nicht ändert, das ist auch relativ stabil

Jochen

und dann blockiert man

Jochen

einfach alle Anforderungen sozusagen oder

Jochen

alle neuen Geschichten so lange,

Jochen

ja, bis halt der Strom dann

Jochen

nicht ausgefallen ist und man seinen Job erledigt hat

Jochen

und, ja,

Jochen

hat aber das Problem, dass es insgesamt auch für die

Jochen

Firma nicht funktioniert und das war halt...

Dominik

Solche neuen modischen Scheiße machen wir nicht.

Dominik

Ja.

Dominik

Ich meine, die,

Christian

das ist halt auch da wieder,

Christian

zum einen, spannend,

Christian

man, DevOps ist im Prinzip

Christian

in der Lage, dort diese Anreize einmal umzukehren

Christian

Im Prinzip kannst du

Christian

dann halt nämlich sagen,

Christian

erst mal messen

Christian

ist zwar eine gute Sache, aber auch da

Christian

Menschen haben halt so den Vorteil, die können so Systeme

Christian

gut austricksen.

Christian

Und wenn du,

Christian

das Schlimmste, was du eben machen kannst, ist, wenn du halt so

Christian

harte Metriken einführst, weil, was werden die

Christian

Leute machen? Die optimieren da drauf hin

Christian

gnadenlos.

Christian

Gnadenlos. Das ist das Problem,

Christian

warum halt Systeme sich dann immer

Christian

ad absurd führen, weil sie

Christian

versuchen, eine komplexe Welt reduktionistisch

Christian

zu betrachten im Sinne von

Christian

Uptime. Das ist

Christian

unsere Welt, danke.

Christian

Und was man

Christian

tatsächlich, manchmal kann man damit spielen, in so einem System kannst du

Christian

zum Beispiel dann sagen, naja, liebe Admins,

Christian

wir messen euch dran, wie viele Features rausgehen

Christian

und liebe Devs, wir messen euch dran, wie stabil

Christian

das Rechenzentrum ist.

Christian

Sondern wie stabil halt

Christian

die Anwendung draußen ist.

Christian

Und dann kriegst du nämlich plötzlich

Christian

eine ganz andere Bewegung da rein.

Dominik

Ja, das wird dann auf jeden Fall dynamisch.

Dominik

Dann jagen nämlich die Devs den Admin durchs Haus,

Dominik

wenn der Server abgerottet ist.

Dominik

Das willst du. Du willst Reibung.

Christian

Du willst Reibung, du willst Dynamik,

Christian

du willst nicht Complacency haben.

Christian

Du willst nicht, dass die Leute zufrieden in ihrer Ecke sitzen

Christian

mit, ah, der Strom ist an.

Christian

Sondern du willst sagen,

Christian

ist ja schön, dass hier der Strom an ist, wo bleiben

Christian

die Features?

Christian

Und das ist halt,

Christian

das ist tatsächlich was, wo DevOps

Christian

eigentlich sich ganz gut positioniert

Christian

an der Stelle. Da sind auch viele Tools

Christian

jetzt eigentlich gut darauf ausgerichtet,

Christian

das eben so zu überlagern, dass man

Christian

dann eben nicht mehr klar trennen kann.

Christian

Okay. Ich würde jetzt sagen,

Dominik

der nächste Marker würde jetzt ganz gut passen, weil die

Dominik

nächste Frage wäre nämlich, wie macht man das Ganze denn jetzt mit

Dominik

Python am besten?

Dominik

Mit Python? Okay. Tja.

Dominik

Wie macht man das denn?

Dominik

Hm. Ja.

Jochen

Achso. Ich meine, wenn man

Jochen

jetzt über komplette Systeme redet, da ist es

Jochen

ja so, dass da gibt es dann halt so, ja,

Jochen

diverse Stacks, die man verwenden kann, um halt

Jochen

zu komplette Infrastrukturen aufzuziehen.

Jochen

Ich weiß aber nicht, ob wir das, also sowas wie

Jochen

Ansible oder halt SaltStack oder

Jochen

OpenStack oder was auch immer.

Jochen

Tja.

Jochen

Und einiges davon ist ja auch

Jochen

in Python tatsächlich geschrieben. Ja, das wäre, möglicherweise

Jochen

ist das halt auch so ein Feld, wo Python relativ stark ist.

Jochen

Ich glaube,

Jochen

viele der, es gibt irgendwie noch

Jochen

ChefPuppet,

Jochen

das ist... Chef, Puppet?

Jochen

Ja, das sind zwei unterschiedliche

Jochen

Geschichten.

Jochen

Das ist irgendwie Ruby oder sowas, ich weiß es nicht mehr so genau.

Christian

Ja, Chef und Puppet sind Ruby und

Christian

ich glaube, Salt ist Python

Christian

und der Enzebel ist definitiv auch Python.

Christian

Ist auch Python und OpenStack ist auch Python.

Christian

Also...

Jochen

Aber ja, OpenStack ist wahrscheinlich alles mögliche.

Dominik

Was ist denn sowas drin? Also für jemand, der es noch nie gehört hat,

Dominik

was wäre jetzt in so einem Enzebel denn jetzt drin?

Christian

Ich würde es vielleicht tatsächlich nochmal von einem anderen Ende her holen, weil Ansible ist sozusagen schon ziemlich weit drin. Auf der einen Seite ist Python in diesem ganzen Umfeld erstmal an sich, wir haben jetzt ja zwei Enden, auf der einen Seite können wir darüber reden, dass wir Anwendungen haben, die in Python geschrieben sind, von denen ich irgendwie möchte, dass die raus in die Welt kommen und das andere wiederum ist, dass Python ja selber so eine gute Sprache ist, um Tools zu schreiben, die Dinge automatisieren.

Christian

Und damit habe ich sozusagen so eine kleine Janusköpfigkeit von dem Ökosystem.

Christian

Ja, es ist halt die Frage, von welchem Ende man anfangen möchte.

Christian

Die so große Systeme, ich tue mich schwer, bei so großen Systemen anzufangen.

Christian

Selbst Ansible ist da mental bei mir ein großes System.

Christian

Eher so ein bisschen die Grundlagen anzugucken,

Christian

ein bisschen die kleinsten Einheiten, in die es sich eigentlich verlegt.

Christian

weil ansonsten glauben unsere Hörer,

Christian

glauben die Menschen da draußen halt,

Christian

um den Post zu machen, muss ich irgendwie Kubernetes rausholen.

Christian

Das stimmt halt nicht.

Christian

Das ist halt kontextabhängig.

Christian

Ich meine, man kann vielleicht mal so ein bisschen skizzieren.

Christian

Auf der einen Seite gibt es halt das Problem der Runtime-Umgebung.

Christian

Ich habe halt mein Python-Skript und brauche dann irgendwie einen Interpreter,

Christian

der die richtigen Dependencies alle so hat.

Christian

das ist so ein

Christian

Spielfeld

Christian

und das andere ist dann halt tatsächlich auch

Christian

so diese Mechanik von, wie

Christian

verteile ich das dann halt von meinem

Christian

Entwicklung, wie mache ich das auf meinem Entwicklungssystem,

Christian

wie mache ich das auf dem Staging-System, wie mache ich das

Christian

dann draußen in der Produktion,

Christian

da kann man so die unterschiedlichen,

Christian

das wären also mindestens mal so zwei Perspektiven, aus denen

Christian

man das mal andiskutieren kann.

Christian

Ja,

Christian

ne, finde ich

Jochen

im Grunde auch genauso richtig, weil

Jochen

ja, also das ist ja auch vielleicht dann tatsächlich das,

Jochen

was Leute praktisch als Problem

Jochen

haben, wenn sie jetzt

Jochen

sich überlegen, okay, ich würde gerne, weiß ich nicht,

Jochen

Pyramid oder Django oder Flask oder was auch immer

Jochen

anwendigen, würde ich gerne eine Webseite

Jochen

oder so bauen und wie kriege ich die jetzt

Jochen

sozusagen live?

Jochen

Ja, also

Jochen

das eine ist natürlich, dass

Christian

Python ein standardisiertes

Christian

Umfeld hat mit den Interpretern.

Christian

Ich meine, die Versionsunterschiede zwischen

Christian

2 und 3,

Christian

ich glaube, das ist jetzt eh gegessen, zumal

Christian

dann machen wir

Christian

ein Begräbnis-Podcast

Christian

Ende des Jahres für Python 2.7?

Christian

Könnte man auf jeden Fall

Christian

machen, ja.

Christian

Ein Python 2.7

Christian

Gedächtnis-Podcast

Christian

zum Jahresausklang.

Christian

Aber auch innerhalb von Python 3 sind die

Christian

Sprachfeatures nochmal so weiter, dass man halt auch da

Christian

zum ersten Mal wissen muss, ah, okay, ich habe eine Anforderung

Christian

von, welche Version vom Interpreter

Christian

brauche ich eigentlich? Da ist die

Christian

Spreizung zwischen 3.3,

Christian

was so die erste vernünftig einsetzbare

Christian

Version war, bis jetzt hoch zu 3.7, in demnächst

Christian

3.8, ja, schon relativ

Christian

heftig, zumal ich auch merke, da waren für mich immer

Christian

wieder Features dabei, die ich

Christian

einsetzen möchte. Also die F-Strings waren

Christian

mit die neuesten Sachen, wo ich sagte,

Christian

oh ja, die will ich unbedingt haben.

Dominik

Das Coolen ist sogar schneller als String-Off, ne?

Dominik

Das kann sein.

Christian

Und das ist sozusagen schon mal so das erste Thema von,

Christian

okay, ich brauche also irgendwie ein Zielsystem, wo die richtige Version

Christian

von diesem Interpreter vorliegt.

Christian

Das ist dann häufig damit gekoppelt, dass

Christian

ich bestimmte Versionen

Christian

von einem Betriebssystem irgendwo habe.

Christian

Genau. Wenn ich

Christian

Docker nehme, dann ist da typischerweise die Auswahl

Christian

nimm dir irgendwie so ein Basis-Image, wo jemand draufgeschrieben

Christian

hat, das hier ist das mit Python-Version

Christian

so und so oder wo alle Python-Versionen drin sind

Christian

oder was auch immer.

Christian

Aber im Prinzip läuft es halt darauf hinaus, naja,

Christian

ich habe erstmal die Frage, welchen Python-Interpreter

Christian

würde ich gern haben. Ich mache es in letzter

Christian

Zeit so, wenn ich kleinere Projekte mache

Christian

und tatsächlich im Sinne von mal so Command-Line-Skripte,

Christian

das ist bei mir relativ viel dran,

Christian

dann gebe ich mir

Christian

Mühe, dass ich am Anfang

Christian

wenn ich noch rumexperimentiere

Christian

und das teilweise auch verteilte Systeme sind

Christian

dann habe ich meinen Editor

Christian

bei mir ist es dann zufällig der Sublime

Christian

mit einem rsync-Plugin

Christian

mache ein einziges Python-File

Christian

und das kann gerne mal für

Christian

den Anfang bei der Entwicklung 1000, 2000

Christian

4000 Zeilen lang werden

Christian

und habe ein rsync-Plugin

Christian

was mir bei jedem Speichern das auf

Christian

7, 8, 9 Kisten verteilt

Christian

und gebe mir Mühe, dass ich nichts anderes

Christian

außer der Standard-Library benutze

Christian

dann brauche ich mir nämlich

Christian

keine Gedanken machen

Christian

und ich meine

Christian

die Standard Library hat einen Haufen Kram drinnen

Christian

da ist halt

Christian

damit machst du dann keine Webentwicklung mit Django in dem Moment

Christian

aber

Dominik

oh ja

Dominik

Entschuldigung, ich glaube das war diesmal

Christian

weg da, halben Meter weggeworfen

Christian

lag zu nah am Kabel

Christian

die

Christian

Standard Library bietet ja schon so viele

Christian

Sachen

Christian

von

Christian

JSON zu, hast du nicht

Christian

gesehen, typische Dinge, die dann bei

Christian

mir relativ schnell dazukommen, als Dependencies sind dann halt

Christian

irgendwie Requests oder irgendwas in der

Christian

Art. Aber

Christian

ich baue selbst bei mir die

Christian

Projekte dann immer erstmal von so einem

Christian

ganz kleinen, minimalen Punkt auf und

Christian

ich mache nicht so dieses, oh, ich habe hier mein Projekt-Template

Christian

und jetzt schütte ich erstmal

Christian

ein Megabyte-Template ins

Christian

Repository, sondern

Christian

fange halt gegebenenfalls wirklich mit einer einzelnen Datei

Christian

an.

Christian

blank, völlig blank und kann auf dem Zielsystem

Christian

auch einfach sagen, hier, Python 3.6, da die

Christian

Datei, poof, mach mal.

Christian

Und kann halt, weil

Christian

ich bin immer der Freund von diesem, ich nerv

Christian

meine Kollegen, mit denen ich

Christian

arbeite, auch an der Stelle, ich will eigentlich

Christian

so schnell wie möglich, eigentlich innerhalb von einer Stunde

Christian

oder zwei, irgendeine Ahnung haben,

Christian

wie das, was ich gerade mache, von Ende zu Ende

Christian

funktioniert, ja.

Dominik

Also dich interessieren die Knoten dann dazwischen, oder?

Dominik

Nee, mich interessiert halt, okay,

Dominik

ich will irgendwie x erreichen

Christian

und dann kann man halt entweder sagen, ah, für x muss ich

Christian

erstmal A, B, C und D machen und dann

Christian

fängt jemand an und macht A total hübsch und

Christian

definiert das durch und macht B total hübsch und definiert

Christian

das durch. Am dritten Tag macht er C

Christian

und am vierten Tag macht er D.

Christian

Dann läuft das Skript zum ersten Mal und er stellt

Christian

fest, nee, das brauche ich alles ja auch nicht.

Christian

Und was ich eher haben will,

Christian

ist, ich rotze da A, B, C

Christian

und D einmal so, gerade mal so hin

Christian

in den

Christian

so wenig Zeilen wie nur möglich mit

Christian

auch wenig

Christian

Fehlerbehandlung, also nur den

Christian

der Happy Path im Prinzip.

Christian

So der Idealfall.

Christian

Der Happy Path, war schön.

Christian

Der Happy Path, ja, genau.

Christian

Um tatsächlich zu sehen, ist das, was ich hier baue,

Christian

gerade überhaupt das, was ich will?

Christian

Oder fange ich schon mal an, Zeug zu polieren,

Christian

was ich gleich in zwei Tagen eben wieder wegwerfe?

Christian

Happy, happy, happy.

Christian

Happy, ja, genau.

Christian

Und das erleichtert,

Christian

dadurch kann ich halt auch mit wenig Dependencies anfangen,

Christian

dadurch kann ich halt, oder auch ohne Dependencies,

Christian

und baue das halt komplett inkrementell auf.

Christian

Und das ist wieder für mich auch so ein Ausdruck von,

Christian

Ich beschäftige mich die ganze Zeit mit meinen Tools,

Christian

um zu merken, brauche ich das hier überhaupt?

Christian

Das muss ich halt im Prinzip jedes Mal validieren.

Dominik

Kannst du nochmal vielleicht einmal ganz kurz so erklären,

Dominik

so einen Abstraction-Layer so drunter,

Dominik

was steht denn dann da in dem Skript so konkret da drin?

Dominik

Klar, das ist nur die Standard-Library, irgendwelche Sachen,

Dominik

aber was macht das?

Dominik

Also ich habe zum Beispiel ein Skript,

Christian

mit dem wir bei uns Ceph-Server managen.

Christian

Ceph ist so ein verteiltes Storage-System

Christian

und da hat jede Festplatte, die du in deinem Cluster hast,

Christian

einen Daemon, der da läuft und die Config

Christian

zu generieren und die Teile aufzusetzen

Christian

ist halt nicht so ganz trivial

Christian

und die Tools, die es dafür schon vordefiniert

Christian

gibt, die haben alle so ihre Meinung darüber, wie

Christian

die Umgebung aussehen soll, wo wir leider

Christian

eine andere Meinung haben und

Christian

deswegen habe ich dann halt irgendwann

Christian

ein Tool geschrieben, wir schreiben gerne Tools,

Christian

die andere Tools

Christian

integrieren, wir machen Glue-Code gern selber,

Christian

so Policy-Code

Christian

und versuchen eigentlich Werkzeuge einzusetzen,

Christian

die Standalone für sich irgendeinen

Christian

konkreten Job haben und wir integrieren uns die dann

Christian

halt und dann habe ich halt so ein Tool, der kann

Christian

dann halt irgendwie die Festplattenkontrolle

Christian

angucken und kann sagen, machen wir mal eine

Christian

neue Partition, machen wir diesmal jenes, bauen das

Christian

mal wieder ab, aber eben mit so Policy

Christian

Entscheidungen wie, ja, da

Christian

musst du vorher mal gucken, ob da drüben in den Logs komische Dinge

Christian

auflaufen, weil das ist ein Indikator dafür, dass gerade

Christian

der Cluster überlastet ist und darfst du das so nicht machen

Christian

und solcherlei Dinge und dann ist das halt

Christian

was, da ist dann der ArcParse mit drin und

Christian

da wird dann mit irgendwie so Prozessen geredet,

Christian

da ist JSON-Depoding drin, da ist so

Christian

Glue-Code, um 5, 6

Christian

unterschiedliche Tools und Prozesse aneinander anzubinden

Christian

und den baue ich halt meistens immer wieder erst mal nackt auf

Christian

und erst wenn der eine gewisse Größe hat, setzt dann das Refactoring ein

Christian

und natürlich hat man so eine Standard-Library im Hinterkopf von

Christian

wie abstrahiere ich mir eine bestimmte API, um Subprozesse aufzurufen,

Christian

wie abstrahiere ich mir eine bestimmte API, um HTTP-APIs anzusprechen,

Christian

aber selbst denen gebe ich eigentlich immer wieder die Chance,

Christian

sich nochmal neu zu beweisen, weil Python nun mal eigentlich so einfach ist,

Christian

um den Happy Path mal schnell runterzuschreiben.

Christian

um dann später nochmal mit der

Christian

Zahnbürste hinterher zu gehen und das irgendwie

Christian

blank zu machen und hübsch zu machen.

Christian

Genau.

Christian

Und das heißt, also im ersten Fall bei mir

Christian

habe ich sogar ein Deployment, da

Christian

passiert nichts außer aus meinem Editor raus

Christian

ein R-Sync irgendwo in die Umgebung rein.

Christian

Und ich nehme den Standard

Christian

Interpreter, der vom System halt mir entgegengeworfen wird.

Christian

Das hört sich so ein bisschen an,

Dominik

also hast du gar nicht so viele Klassen, die haben los,

Dominik

ist das mehr funktional alles?

Christian

Nö, das geht quer durcheinander.

Christian

Also Klassen ziehe ich mir halt dann rein, wenn es halt nötig ist, wenn ich merke, da kristallisieren sich Strukturen raus, die sich halt in Klassen gut abbilden lassen.

Dominik

Machst du dann auch ein extra Modul dafür oder packst du das dann trotzdem alles in die?

Christian

So und das ist halt spannend, also wenn ich dann einen gewissen Reifegrad erreicht habe und merke, ich laufe in die richtige Richtung und das, was ich hier baue, fliegt nicht morgen wieder über den Jordan, dann fange ich an, das halt zu systematisieren.

Christian

Und dann mache ich dann aus dem Repository

Christian

halt mal ein gescheites Package

Christian

in Richtung halt, dass da ein Egg rausfallen

Christian

könnte.

Christian

Beziehungsweise Eggs macht man ja nicht mehr.

Christian

Also eine Sauce Dist oder ein Wheel

Christian

oder was auch immer.

Christian

Aber eben irgendwas, wo eine Setup-Pi drin ist

Christian

und wo man diese ganze Kram, dass man es paketieren kann,

Christian

dass man es auf dem Pi-Pi laden kann, etc.

Christian

Und das Zweite ist, dann fängt es

Christian

halt meistens auch an, dass da die ersten Dependencies

Christian

dazukommen.

Christian

Weil das kommt meistens sogar früher, als dass ich ein Package

Christian

draus mache, wenn ich so kleine Sachen habe.

Christian

Was aber mit den Dependencies halt auf jeden Fall kommt, ist, Jochen kann es bestimmt auch aussprechen, was ich jetzt denke.

Jochen

Ja, natürlich, Virtual Environments oder irgendeine Art zu isolieren halt die Begebung, die man auch schafft.

Christian

Genau, also verlockende Falle ist halt, aber das ist eigentlich auch schon so eine alte Technik, dass die eigentlich nicht mehr vorkommen sollte, ohne irgendwem von unseren Hörern zu nahe zu treten.

Christian

Man kann natürlich jetzt dem System-Python-Interpreter über Debian-Packaging oder über YAML oder was auch immer

Christian

dann noch zusätzliche Libraries mit rein installieren.

Christian

Aber das Problem ist, dann haben halt alle Programme auf diesem System die gleichen Dependencies.

Christian

Ich meine, das ist so ein altes Problem von Paketierung halt an sich, also auch bei Debian.

Christian

Wenn Debian halt sagt, ich paketiere Version 7 und deine Anwendung braucht Version 8, dann hast du halt verloren.

Christian

Und deswegen macht man sowas nicht, dass man Sachen in den Systeminterpreter rein installiert, sondern dafür gibt es halt die sogenannten Virtual-Envs, die sind seit Python 3 auch kein extra zu installierendes Tool mehr, sondern du kannst ja über Python 3-mv-env und dann Verzeichnisname oder wenn du es in deinem Repo direkt machen willst mit Punkt, erzeugst du dir eine virtuelle neue Python-Installation, in der du dann beliebig Dependencies installieren kannst.

Christian

Und dann installierst du die da halt rein.

Christian

Das kannst du mitmeißeln, also das kannst du imperativ machen,

Christian

indem du dann aufrufst bin-pip-install-requests

Christian

oder du kannst auch ein Requirements-File schreiben,

Christian

was sowas dann deklarativ erfasst, wo du sagst,

Christian

hier, ich hätte gerne Requirements und ich hätte es gerne in folgender Version

Christian

oder ich hätte es gerne zumindest größer als Version X.

Christian

Solche Sachen kannst du dann da ausdrücken.

Christian

Das ist dann ein bisschen ergänzend dazu, dass du dein eigenes,

Christian

wenn du dein Skript selber paketierst und sagst, ich habe einen Package, wo auch Dependencies in der Setup-Pi deklariert sind, dann kannst du die über binpip-e. zum Beispiel installieren, dann zieht er die Dependencies auch, wobei da gibt es halt auch so eine Unterscheidung von, wie drücke ich Versionen in einem Paket aus, da gibt es eigentlich die Heuristik, dass man sagt, dass man nur dort Mindestversionen angibt,

Christian

Dass man sagt, ich brauche mindestens Version XY von der Dependency, weil da gibt es ein Feature drin, was ich halt unbedingt brauche ab der Version, aber ich lasse es dir nach oben hin offen, auch neuere zu nehmen und man macht dann gegebenenfalls noch als zweites dazu einen Requirements-Text-File, wo man dann sagt, okay, aber jetzt für dieses konkrete Release legen wir uns einmal auf einen exakten Satz an Versionen fest, das nennt man dann Version Pinning und dort schreibt man dann nur noch rein, okay, jetzt die Requests in exakt Version 2, 3, 4.

Christian

hier oder was auch immer.

Christian

Genau. Das ist so ein bisschen

Christian

hakelig

Christian

im Sinne von

Christian

das gibt dir kein

Christian

garantiert pures Environment, weil

Christian

du kannst das halt vermixen, dass du sagst, du installierst

Christian

Sachen, Dependencies per Requirements Text

Christian

und kannst dann gleichzeitig

Christian

trotzdem noch mit binpip install dazwischen rum

Dominik

vorwerken. Ist da nicht jetzt sogar so eine

Dominik

Neuerung geplant, irgendwie in 3.8, dass man das irgendwie

Dominik

mit in die Verzeichnisse irgendwie direkt reinkriegen

Dominik

kann oder sowas?

Christian

Ja, das wäre jetzt mal interessant, das habe ich jetzt noch nicht auf dem Schirm.

Christian

Ja, das hatten wir irgendwie,

Jochen

ich habe es jetzt aber auch nicht mehr so wirklich genau,

Jochen

also da ist es auf jeden Fall so, dass man

Jochen

PIP irgendwie sagen kann,

Jochen

war das

Jochen

PIP oder ist das?

Dominik

Man kann ja die Version aussuchen, ob der irgendwie

Dominik

Versionen nimmt, die irgendwie im System hängt oder halt die

Jochen

Das ist halt lokal, also das

Jochen

macht halt automatisch ein Environment, das halt

Jochen

lokal in dem Verzeichnis ist, das ist quasi genauso wie

Jochen

wie bei

Jochen

ja, NPM auch

Christian

Ja, okay. Das mit dem System-Byte ist noch ein, es gab früher, also die Option gibt es immer noch als Abwärtskompetenz, früher gab es noch die Variante, dass du dir ein Virtual-Env machst, was aber sozusagen alle Nicht-Standard-Library-Pakete aus dem System miterbt und das ist genau das, was du aber nicht willst.

Christian

Deswegen heißt das auch momentan der Default und ich glaube, das fliegt vermutlich auch irgendwann weg oder es wird zumindest so wenig dokumentiert, dass keiner mehr aus Versehen drüber stolpert und meint, das wäre eine gute Idee.

Christian

Und das Problem, was ich habe, ist eher, dass diese Virtual Envs, wenn du dann, keine Ahnung, dann entwickelst du ein Team und die Requirements-Text entwickelt sich weiter und du sagst dann bin-pip-insta-r-requirements-text, dann kriegst du halt nur die Änderungen.

Christian

Und wenn du aber schon irgendwelche Sachen, keine Ahnung, dann gibt es irgendwas, das ist keine Dependency mehr, dann ist die aber trotzdem noch drin, weil etwas, was in der Requirements-Text nicht drin steht, wird halt nicht rausgeworfen in dem Moment.

Christian

Du hast halt also keine abgeschlossene Hülle von dem, was da drinnen definiert ist

Christian

und kannst dich nicht darauf verlassen, dass nicht noch zufällig mehr Zeug da ist.

Christian

Und das kann aber tricky sein, weil es gibt halt Mechanismen, zum Beispiel in Setup-Tools,

Christian

die haben halt Auto-Discovery für irgendwelche Entry-Points

Christian

und dann werden da Entry-Points aktiviert, von denen du nicht wusstest, dass sie da sind

Christian

und dann geht dir irgendwie alles den Bach runter.

Christian

Das will man halt einfach nicht.

Christian

Und auch das ist so ein Black-Swan-Ding im Sinne von, ja, in vielen Fällen funktioniert das sehr gut,

Christian

Aber nächsten Dienstag geht deswegen halt irgendein Server baden.

Christian

Weil wir haben halt so viel Code,

Christian

der so viel Autodetection für bestimmte Dinge macht.

Christian

Dann kann es halt sein,

Christian

dass nächsten Dienstag tritt halt irgendein Exception auf

Christian

und dann gibt es halt irgendein Tool,

Christian

das hat so Exception-Handling.

Christian

Der geht dann wieder auf die Suche,

Christian

ob es für das Exception-Handling noch irgendeinen Entry-Point gibt,

Christian

der da irgendwie deklariert ist.

Christian

Und deswegen kommt da plötzlich irgendwie Code zum Tragen,

Christian

wo du dachtest, das haben wir doch nie definiert.

Christian

Ja, der war halt noch von vor zwei Wochen da.

Christian

Auch das ist ein Problem, was Docker ja löst.

Christian

Ja, löst Docker das Problem?

Christian

Ja, weil bei Docker bei einem Release fängst du halt immer mit deinem leeren Basis-Image an und baust das halt wieder komplett auf.

Christian

Während wenn du einen Virtual-Env sozusagen zweitverwendest, was ich völlig okay finde, was man machen kann, man muss halt wissen, was die Konsequenz daraus dann halt ist.

Jochen

Ja, naja gut, bei Docker, also so wirklich weißt du ja nicht, was in deinem Basis-Image alles drin ist.

Jochen

Also, wenn du es selber baust, ja klar.

Jochen

Jetzt macht mich diese schöne Welt nicht kaputt.

Jochen

Ja, also klar.

Christian

Ich meine, war jetzt ja auch bei Heise gerade wieder das Thema,

Christian

dass ein Haufen von den Top 500 Docker-Images

Christian

halt keine Root-Passwörter gesetzt hatte.

Christian

Ja, ja.

Christian

Ja, ja.

Christian

Das ist halt, genau, ich meine,

Christian

das ist das ganze Thema Dependency Management, Vendoring.

Christian

Wo kommen meine Sachen her, die ich jetzt irgendwie

Christian

als Route irgendwo in das System reinschieße?

Christian

Es gab

Christian

noch ein Tool, was ich eigentlich jetzt hier noch mit

Christian

einbringen wollte, falls euch das was

Christian

sagt, das ist CC Buildout.

Christian

Buildout, habe ich schon mal

Jochen

irgendwie gehört, aber glaube ich habe es noch nicht verwendet.

Jochen

Das ist ein Tool, das stammt

Christian

halt auch so aus der Zeit, wo die Virtual Env sich gerade

Christian

etabliert haben. Der kann zum einen, kann er das, was

Christian

Virtual Env

Christian

macht, auch machen, nämlich dir

Christian

vom System Python

Christian

entkoppelte Pfade zu liefern,

Christian

wo die Dependencies

Christian

klar ausgesteuert sind. Und was

Christian

ich am Buildout aber spannend finde, ist, der hat

Christian

eben diese Option, dass du über die

Christian

Buildout-Config explizit

Christian

sagst, auf der einen Seite, du

Christian

darfst nur Pakete

Christian

mit folgenden Versionsnummern anziehen

Christian

und wenn die

Christian

wiederum rekursiv Dependencies anziehen, die ich

Christian

nicht dokumentiert habe, hier explizit in meinem

Christian

Version-Pinning, dann fall bitte aufs Maul.

Christian

Und das ist total spannend,

Christian

weil der putzt auf der

Christian

einen Seite sozusagen nach hinten hinweg Sachen, die

Christian

du nicht mehr verwendest. Das heißt,

Christian

das ist immer automatisch garantiert clean.

Christian

Und auf der anderen Seite kannst du halt dich darauf verlassen, dass wirklich nur exakt das Versionsset da ist, was du halt brauchst.

Christian

Und das Ding ist relativ leichtgewichtig in dieser Hinsicht.

Christian

Und ich benutze es halt an vielen Stellen genau dafür, dass ich sage, ich mache mir auf der einen Seite ein Virtual Env, um die Systemtrennung zu erreichen, das ist der Bequemlichkeit halber,

Christian

und installiere darin CC Buildout und mache dann eine kleine Buildout-Config, wo ich sage, ich möchte gerne bitte eine Interpreterumgebung für folgende Packages haben

Christian

Und deren kompletter Dependency-Tree

Christian

muss übrigens durch folgende abgeschlossene Liste

Christian

komplett gedeckt sein

Christian

oder du darfst sie nicht installieren.

Christian

Und das ist tatsächlich was,

Christian

das garantiert dir so reproducible Builds halt sehr gut.

Christian

Okay, cool, muss ich mir mal angucken.

Christian

Habe ich bisher noch nicht so gemacht.

Christian

Ja, das ist so ein typisches Tool aus der Soap-Welt,

Christian

was es über die Soap-Welt raus nie geschafft hat.

Christian

und es hat eigentlich, da hängt

Christian

so ein bisschen mein Open-Source-Herz

Christian

von vor zehn Jahren halt dran,

Christian

das hat eigentlich das bessere

Christian

Engineering. Es hat sich

Christian

halt nur nicht durchgesetzt, das ist so ein bisschen

Christian

Krokodil-Trainer.

Christian

Genau.

Christian

So,

Christian

ja, jetzt haben wir

Christian

so Virtual-Env und...

Dominik

Ja, dann machen wir auch deinen Rap nochmal drum

Dominik

und machen nochmal weiter. Also was habt ihr denn noch?

Dominik

Wie macht man denn dann, wenn jetzt so das

Dominik

Umgebungssetting so gebaut ist.

Dominik

Jetzt haben wir

Christian

erstmal die Möglichkeit, dass wir in Projekten

Christian

überhaupt Umgebungen

Christian

mehrfach bauen können. Also du checkst

Christian

ja jetzt die Requirements-Texte oder das Buildout

Christian

checkst du halt mit ein.

Christian

Und da kommt eine interessante

Christian

Frage, nämlich checkst du zusammen mit deinem

Christian

Code ein oder machst du ein neues Repo?

Jochen

Ja, also ich check das immer

Jochen

zusammen mit allem anderen ein, aber

Jochen

ja.

Jochen

Man könnte natürlich

Jochen

das so machen, dass man den Code

Jochen

in andere Repositorien packt und dann

Jochen

in die ganze Infrastruktur,

Jochen

wie deployed man

Jochen

das Projekt

Jochen

halt in eine andere Geschichte reinpackt.

Jochen

Ja, hm.

Jochen

Das machen wir

Jochen

eigentlich, das machen wir sehr gerne, ja.

Dominik

Also zieht sich dann die Maschine selber immer den Code

Dominik

von Remote und andersherum musst du den mal

Dominik

pushen oder was war jetzt der Unterschied?

Dominik

Ah, das ist noch ein interessanter Vorschlag.

Dominik

Genau. Hm, hm,

Christian

interessant. Also weißt du,

Christian

klar, was du halt machen kannst, ist, du kannst

Christian

jetzt solche Dinge spielen, wie

Christian

auf deinen Zielmaschinen

Christian

machst du dir einen Con-Job,

Christian

der zieht das Repo

Christian

selbstständig alle,

Christian

entweder per Trigger oder irgendwie

Christian

alle fünf Minuten oder was auch immer,

Christian

von einer Production-Branch und

Christian

führt dann irgendwie so ein Build-Skript aus.

Christian

Das kannst du machen.

Christian

Das machen wir auch an ein paar

Christian

Stellen.

Christian

Kommt ja immer darauf an, wovon man es braucht.

Christian

Und ja, genau. Und selbst da kann man eben diese Auftrennung machen, wenn du davon ausgehst, dass deine Anwendung zum Beispiel von unterschiedlichen Leuten mal deployed werden soll, dann macht es halt Sinn, das in unterschiedliche Repos zu legen.

Christian

Oder wenn du es über Teams trennst. Also wir haben es halt häufig, weil wir ja als Dienstleister in Projekten drinnen hängen, wo jemand anders die Software entwickelt, dann haben die halt ihre Repo für die eigentliche Software.

Christian

Und wir haben das Repo

Christian

für das Deployment.

Christian

Wir haben meistens gegenseitig

Christian

auch Schreibzugriffe drauf, aber es ist so mehr ein

Christian

man tritt sich halt nicht unnötig auf den Füßen rum.

Christian

Ja, das ist

Jochen

ich meine, ich weiß nicht, also das, was

Jochen

man da vielleicht, also mache ich jetzt für meine

Jochen

also so privaten, kleineren

Jochen

Geschichten auch nicht, aber wenn man jetzt

Jochen

irgendwie eine größere Sache hat, was man ja

Jochen

vielleicht dann haben will, ist halt

Jochen

Continuous Integration oder Delivery sogar,

Jochen

dass man dann, wenn halt

Jochen

man sozusagen

Jochen

Code, den man irgendwie geändert hat, dann

Jochen

in einen Masterbranch oder so reinpusht,

Jochen

dass das dann halt automatisch irgendwie

Jochen

in einem neuen Bild lostritt und das auch ausrollt

Jochen

automatisch alles, wenn man halt

Jochen

irgendwie so einen CI-Server

Jochen

da irgendwo stehen hat, der das dann macht.

Jochen

Du musst ja einmal vielleicht nochmal für die Leute, die

Dominik

es auch gar nicht kennen, erklären, was ist der Unterschied zwischen Continuous

Dominik

Integration und Delivery und

Dominik

ist das einfach so ein Prozess, der automatisch

Dominik

angestoßen wird, wenn man einen Entwicklungsschritt

Dominik

abgeschlossen hat oder

Dominik

Feature-Entwicklung oder

Dominik

irgendwie Fixes oder worum geht es?

Dominik

Ja, es geht halt

Jochen

im Grunde darum, dass, also was man ganz

Jochen

früher gemacht hat, ist, dass man halt

Jochen

baut die Software irgendwie zu periodischen

Jochen

Zeiten oder halt wenn man

Jochen

mit einer Release fertig ist und

Jochen

dann baut man die halt einmal und dann

Jochen

presst man die auf

Jochen

eine CD oder speichert die auf

Jochen

Disketten und verschickt die mit der Post oder irgendwie sowas.

Jochen

Aber

Jochen

was man ja jetzt eigentlich tun kann, wenn das Ganze

Jochen

sowieso alles mit

Jochen

Netz verbunden ist,

Jochen

dass man das ja auch in kleineren

Jochen

Intervallen macht, was halt den Vorteil hat, dass man

Jochen

nicht sozusagen

Jochen

vor dem Problem steht, das man

Jochen

bekommt, wenn man jetzt so fixe Releases

Jochen

machen möchte, dass man halt,

Jochen

wenn man jetzt, also klassische

Jochen

Geschichte dabei ist halt so,

Jochen

man hat halt

Jochen

so Milestones und dann irgendwann ist man fertig und dann

Jochen

sagt man, okay, jetzt machen wir noch irgendwie eine Woche

Jochen

testen hintendran und dann liefern wir das

Jochen

aus. Und dann fällt an Tag 3

Jochen

irgendwie beim Testen fällt halt auf,

Jochen

oh, wir haben hier ein großes Problem gefunden.

Jochen

Was macht man denn dann? Dann ist es halt irgendwie doof.

Jochen

Dann kann man halt entweder

Jochen

das irgendwie Ducktape auspacken,

Jochen

was diverse Nachteile hat,

Jochen

oder man kann halt

Jochen

irgendwie, ja, sagen, okay,

Jochen

wir können doch nicht releasen,

Jochen

was dann halt auch wieder Nachteile hat. Also man ist in einer Situation,

Jochen

wo man keine guten Optionen mehr hat

Jochen

eigentlich. Und das ist natürlich ein bisschen

Jochen

dumm. Oder man hat halt das

Jochen

Problem, dass man die Arbeit von anderen Leuten,

Jochen

die dann vielleicht auf anderen Branches irgendwie gearbeitet haben,

Jochen

irgendwie integrieren muss und das dann auch

Jochen

nicht richtig funktioniert und einem erst zum Schluss

Jochen

auffällt, dass das alles so nicht

Jochen

funktionieren kann, wie man das geplant hatte.

Jochen

Und das ist halt blöd

Jochen

und das kann man so ein bisschen loswerden

Jochen

oder diese

Jochen

Geschichten sind halt der Versuch,

Jochen

dass sozusagen dadurch, dass man das Release

Jochen

jetzt nicht einmal so ein großes, riesenbrocken Ding

Jochen

macht, sondern man zerteilt das halt in viele

Jochen

kleine Geschichten,

Jochen

das dann halt so undramatischer zu machen.

Jochen

Und damit dann dahin zu kommen, dass das dadurch, dass das halt häufig passiert und alles durchautomatisiert ist, ist ja auch so etwas, was man früher hat man dann viele dieser Prozesse, die nötig sind, um irgendwas zu releasen, hat man dann manuell gemacht.

Jochen

Dann hat man dann mit Chatlisten gearbeitet, weil man sich das nicht alles merken kann und trotzdem passieren dann immer wieder Fehler und alles nicht so toll.

Jochen

wenn man das halt ganz oft macht, dann ist auch

Jochen

ein gewisser Druck da, das halt so

Jochen

zu automatisieren, dass man da im Grunde nur noch auf den Knopf

Jochen

drücken muss.

Dominik

Also das ist jetzt, was man jetzt hat, wenn man jetzt so ein

Dominik

Git-Flow sich eingerichtet hat und das dann irgendwie

Dominik

in so ein Framework reinlädt, dann wird das automatisch

Dominik

getestet, dass man bei Git,

Dominik

Travis oder was habe ich da meint?

Jochen

Travis.ji ist halt so ein Continuous Integration

Jochen

Bar.

Jochen

Oh.

Jochen

Ja, also man hört da so manchmal

Jochen

so komische Geschichten, dass da irgendwie Leute

Jochen

plötzlich irgendwie

Jochen

arbeitslos werden und so in letzter Zeit, ja.

Jochen

Aber ich weiß da halt nichts drüber, keine Ahnung.

Jochen

Ich verwende es immer noch für meine GitHub-Geschichten,

Jochen

weil da gibt es halt eine sehr schöne Integration.

Jochen

Ah, die läuft noch?

Jochen

Ich dachte, die haben sie auch zugemacht schon.

Jochen

Die läuft noch.

Jochen

Travis ist eigentlich durch.

Jochen

Was gibt es jetzt?

Christian

Naja, du hast halt, GitHub kannst du

Christian

ja inzwischen selber machen,

Christian

Bitbucket kann Pipelines, du hast

Christian

GitLab, gibt schon noch einiges.

Dominik

Ja. Okay, die Pipelines werden

Dominik

dann eigentlich integriert. Ich habe das bei Azure mal gesehen.

Dominik

Dann wird dann einfach direkt getestet.

Dominik

Dann kann man sich da was schreiben und dann testet der das

Dominik

direkt durch, also ob es läuft.

Dominik

Einfach auf dem Server integriert insgesamt.

Jochen

Ja, ob die Tests durchlaufen, kann man natürlich

Jochen

machen. Und das kann man halt dann auch nicht nur

Jochen

so machen, dass es halt irgendwie findet speziell,

Jochen

sondern man kann dann auch...

Dominik

Man kann so eine Maschine spawnen, die dann halt auch irgendwo stehen sollte, oder?

Dominik

Ja, könnte man. Aber das

Jochen

kann man im Grunde machen, wie man möchte.

Jochen

Also üblicherweise wird irgendwie

Jochen

eine virtuelle Maschine wahrscheinlich hochgezogen und dann werden

Jochen

halt da die unterschiedlichen Environments,

Jochen

da gibt es so Talks, mit denen kann man

Jochen

sagen, welchen Dingern

Jochen

das halt funktionieren sollte

Jochen

und dann werden Interpreter in unterschiedlichen Versionen

Jochen

installiert und Software in unterschiedlichen

Jochen

Versionen und dann wird das halt, wenn die Tests

Jochen

laufen gelassen und wenn die halt durchlaufen, dann ist halt gut.

Jochen

Aber man

Jochen

kann halt nicht nur das machen, sondern man kann halt beliebige Dinge tun,

Jochen

wie auch irgendwie dann halt

Jochen

ein Deployment lostreten,

Jochen

wenn das dann halt alles funktioniert hat

Jochen

und so, dass das halt im Grunde dann komplett

Jochen

durchautomatisiert ist von

Jochen

irgendwie Entwickler

Jochen

sagt jetzt, okay, ich bin mit dem Feature fertig,

Jochen

macht eine Release,

Jochen

oder macht einfach nur Push auf Master

Jochen

und ja, irgendwie

Jochen

weiß ich nicht, ein paar Minuten später ist es dann halt

Jochen

im Produktionssystem live.

Jochen

Aber

Jochen

zwischen irgendwie, man macht halt irgendwie alle paar

Jochen

Wochen Release und

Jochen

eben so etwas,

Jochen

man checkt Code ein und es geht dann sofort

Jochen

live, gibt es halt alle möglichen Zwischenstufen

Jochen

und die dann, ich weiß

Jochen

gar nicht genau, wie die genauen Definitionen

Jochen

jetzt für die unterschiedlichen Sachen da sind.

Christian

Hätte ich jetzt auch keine, die irgendwie

Christian

formal wären.

Christian

Ich finde es

Christian

spannend, dass auch da wieder diese beiden Extreme

Christian

nur zu betrachten

Christian

eben genau nicht hilfreich ist.

Christian

Wir haben so viele Projekte, wo wir

Christian

ganz unterschiedlich eben diese Zwischentöne eher sehen,

Christian

wo auch Entwickler

Christian

dann teilweise sagen, ich finde es eigentlich ganz gut,

Christian

wenn ihr

Christian

bestimmte Sachen auch nochmal mit anschaut.

Christian

Und das ist halt genau dieses Thema von, warum

Christian

will man denn enger zusammenarbeiten?

Christian

Weil man ja möchte, dass Menschen

Christian

miteinander Wissen austauschen.

Christian

Und dann ist sozusagen dieser, so das geht jetzt hier blind raus, das kannst du schon machen und das funktioniert auch, das hat halt andere Konsequenzen und ich muss mich da anders aufstellen.

Christian

Wir haben halt auch so Flows, wo die Leute sagen, wir können beide auf den Knopf drücken und ich komme nur an, wenn ich mir nicht sicher bin und dann bitte ich dich mal irgendwie noch bestimmte Sachen mit mir gemeinsam anzuschauen.

Christian

Oder einige sagen, hier komm, du kümmerst dich drum, mach einfach wie du willst, drück selber auf den Knopf, wenn du soweit bist.

Christian

Da gibt es halt tatsächlich diese ganzen, wenn du es durchautomatisiert hast, kannst du die ganzen kleineren Varianten davon halt automatisch auch spielen.

Christian

Ja, zu sagen, okay, das läuft jetzt halt nicht vollautomatisch, sondern es läuft jetzt halt nur bis hierhin und dann muss man mal draufdrücken oder dann schicke ich hier nur eine Nachricht ab in irgendein Channel.

Christian

Das lässt sich halt besser erreichen und du musst dich im Prinzip halt auf diese, da auch annähern.

Christian

ich meine, jeden Commit sofort rauszublasen,

Christian

das kommt dann halt auch drauf an,

Christian

wie, was für ein Impact so ein

Christian

Deployment halt hat.

Christian

Wenn wir sind bei,

Christian

okay, das dauert halt nur 500

Christian

Millisekunden, um mal neu zu starten,

Christian

ja, das kannst du fast immer überall machen.

Christian

Wenn du halt Rolling

Christian

Releases kannst, wenn du also sozusagen in der Lage bist,

Christian

alte und neue Versionen deiner Software parallel zu betreiben,

Christian

dann versteckst du das hinter einem

Christian

Loadbalancer, hast irgendwie 10 Instanzen und dann

Christian

updatest du die erste, startest du die neue, updatest du die zweite,

Christian

dann müssen aber halt die Software-Versionen

Christian

mit den unterschiedlichen Datenbankständen

Christian

halt auch zumindest adäquat

Christian

klarkommen. Und das ist halt

Christian

was, was man dann halt bauen muss. Oder du sagst halt

Christian

nee, das will ich nicht bauen, weil

Christian

ich hab halt auch noch irgendwelche Dependencies auf Sachen,

Christian

wo ich das nicht unter Kontrolle habe. Ich brauche

Christian

ein Black Deployment, dann

Christian

musst du halt irgendwas machen, was halt vielleicht nachts losläuft

Christian

oder um drei.

Christian

Ja, genau. Der Trick ist, das kannst du ja

Christian

machen, wenn du dir im Prinzip sicher bist, weil

Christian

das alles so eingespielt ist, dass das halt nicht kaputt geht.

Christian

wie du vorhin meintest, wenn es halt weh tut,

Christian

dann, weil du es halt ständig machst, dann

Christian

optimieren die Leute halt darauf hin, dass man es ständig macht.

Christian

Die alte

Christian

Leier dazu ist doch,

Christian

if something hurts, do it more.

Christian

Genau.

Christian

Je nach Präferenz.

Christian

Ja, genau.

Christian

Nee, aber der Mensch neigt ja dazu, halt

Christian

irgendwie Schmerzen abzustellen, insofern wenn du

Jochen

Genau, man muss das halt irgendwie

Jochen

wegkriegen von dem, es ist irgendwas Außergewöhnliches,

Jochen

schreckliches, wovor alle Angst haben

Jochen

und dann so zu etwas,

Jochen

was halt vielleicht ein bisschen weh tut, aber das

Jochen

man regelmäßig machen muss,

Jochen

wie sie Zähne putzen, keine Ahnung, dann geht das.

Jochen

Genau,

Jochen

also das ist halt so

Jochen

die Idee dahinter und dann

Jochen

genau, wie das dann

Jochen

auf die Maschinen kommt,

Jochen

ja genau, so große Systeme mit

Jochen

Low Balancern oder so, das ist ja

Jochen

auch schon dann etwas, ja, da würde man

Jochen

eben Ansible nehmen oder so und dann

Jochen

das hätte ein Inventory von den ganzen Maschinen

Jochen

und dann könnte man irgendwie so Rolling

Jochen

Updates machen oder so.

Jochen

Ja.

Jochen

Also für so private

Jochen

kleine Geschichten. Also was ich

Jochen

momentan tatsächlich irgendwie selbst

Jochen

am liebsten mache,

Jochen

ist, ich benutze tatsächlich

Jochen

Docker.

Jochen

Also aus Entwicklersicht hat das einige

Jochen

Vorteile. Ich habe früher auch mal

Jochen

das dann irgendwie mit Vagrant gemacht

Jochen

und dann immer komplette Maschinen

Jochen

hochgezogen und so. Aber

Jochen

das dauert halt alles so ewig, wenn man

Jochen

irgendwas ändern möchte an der Maschine, dann muss man

Jochen

da irgendwie, dann ist das

Jochen

gerade wenn man sie dann per Ansible

Jochen

oder so hochzieht, das ist

Jochen

alles ziemlich mühselig

Jochen

und natürlich

Jochen

ist mir auch klar, dass das irgendwie problematisch ist,

Jochen

aber bei Docker ist das halt viel, viel schneller.

Jochen

Da ist die Maschine halt innerhalb

Jochen

von, ja, sagen wir mal, wenigen Sekunden

Jochen

da oder noch weniger und

Jochen

man kann sofort damit was machen.

Jochen

Klar, wenn man was ändern muss,

Jochen

dauert es auch ein bisschen länger, aber das ist alles nicht so schlimm

Jochen

wie das, was man davor hatte.

Jochen

Und es ist vor allem

Jochen

robuster halt,

Christian

weil es halt die Stände ein bisschen besser

Christian

definiert, dass du halt nicht

Christian

mit einem Basis-Image anfängst, was du, also gerade

Christian

beim Vagrant, da sind wir auch noch

Christian

ein bisschen dran. Wir haben für uns

Christian

ja, wir haben ja NixOS als

Christian

Linux-Derivat,

Christian

was dieses ganze Thema wie

Christian

manage ich Runtimes sauber

Christian

gelöst hat. Da ist eher die Frage,

Christian

wie kann ich dann da drinnen wieder unsauber rumpanken.

Christian

Und dann haben wir da halt auch so

Christian

Vagrant-Images und die sind schon relativ gute

Christian

Zustände immer als Basis-Images, dass ich weiß,

Christian

wo ich bin und aber tatsächlich

Christian

NixOS kann halt auch

Christian

solche, installier jetzt mal bitte

Christian

x, y, z, das haben die in dieser Sprache

Christian

drinnen schon verwusst, das ist eigentlich eine schöne Alternative

Christian

zu dem, wie Docker das macht.

Christian

Aber auch das

Christian

ist tatsächlich immer wieder so relativ

Christian

fragil, weil es dann doch noch darauf ankommt,

Christian

wie das Vagrant genau aussieht und

Christian

nervt gerade auch noch ein bisschen.

Christian

An der Stelle ist das

Christian

Docker-Konzept halt zumindest so,

Christian

dass man halt relativ gut produktiv sein kann.

Christian

Ja.

Christian

Ja, und vor allen Dingen, also es hat

Jochen

halt, also was ich, ich kann ja einfach vielleicht,

Jochen

also ich mach das so,

Jochen

ist auch interessant, weil es vielleicht so ein bisschen

Jochen

Der umgekehrte Ansatz ist zudem, man macht halt ein Skript, das man irgendwie remote direkt vielleicht schon sogar entwickelt, um sofort sehen zu können, ob das irgendwie funktioniert oder nicht. Wenn man jetzt irgendwie so eine Webseite zusammenbaut, dann hat man da enorm viel komische Abhängigkeiten auch noch zu anderen Systemen hin, blöderweise.

Jochen

Das ist auch so etwas, was ich irgendwie so ein bisschen schrecklich finde, aber wo ich nicht genau weiß, wie man das irgendwie besser hinkriegt. Und ich fange tatsächlich oft so an, selbst für kleine Geschichten, dass ich halt so ein Cookie-Cutter-Django-Template oder so halt ausführe und dann erstmal so ein riesen Ding da ausrolle.

Jochen

Also ein selbst geschriebenes Template?

Jochen

Nein, nein, ich nehme das, das, das, irgendwie, ja, kriegt man mal nach Django-Cookie-Krater, googelt, ist von den Leuten, die halt auch das Two-Scoops-of-Django-Buch geschrieben haben und, ja, das macht dann halt schon eine ganze Menge Sachen, unter anderem halt, legt es halt auch schon so Docker-Config-Files, also Docker-Compose-YAML-Files an

Jochen

ein großer Vorteil

Jochen

jetzt, wenn man damit arbeitet, ist, man kann es sofort hochfahren,

Jochen

kann Dinge

Jochen

damit tun und vor allen Dingen kann man halt auch lokal

Jochen

das Produktionssystem halt mal

Jochen

hochfahren und dann gucken, weil

Jochen

oft, also es wäre natürlich schön, wenn das

Jochen

identisch wäre, aber

Jochen

lässt sich oft nicht

Jochen

so wirklich komplett

Jochen

durchziehen und dann hat man schon Unterschiede

Jochen

zwischen lokalem Entwicklungssystem,

Jochen

also wenn ich jetzt irgendwas...

Dominik

Hightech-Mac gegen 486er schmeißen?

Jochen

Also genau, und dann auf dem Server sieht es dann doch anders aus.

Jochen

Also die Unterschiede sind halt vor allen Dingen sowas wie,

Jochen

naja, wenn ich halt lokal entwickle,

Jochen

dann ist das halt eher das lokale Filesystem.

Jochen

Einfach, weil ich auch lokal nicht so toll ans Netz angebunden bin

Jochen

und produktiv ist es dann halt irgendwie Google Computer Engine

Jochen

oder AWS oder S3 Buckets oder sowas.

Jochen

Und das verhält sich dann manchmal doch subtil anders

Jochen

oder auch ganz, ganz krass anders.

Jochen

Und dann treten halt Dinge auf, die man halt lokal einfach nicht sieht. Da funktioniert das Problem los. Und dann, naja, wenn man das aber trotzdem mal lokal reproduzieren möchte, weil das halt auch blöd ist, man kann ja auch irgendwie das Debug-Flag sozusagen auf Produktionsmaschinen nicht einschalten, weil ansonsten reicht man halt diverse Sachen, die eigentlich vertraulich bleiben sollten nach außen.

Jochen

Daher ist das halt schon mal, aber das ist halt alles mit dabei und das ist dann natürlich eine ganz, ganz schöne Geschichte, dass es da halt eben über Docker gelöst. Wenn ich das anders machen wollte, wäre das relativ schwierig. Also über Vagrant wäre das dann schon so, geht wahrscheinlich auch noch irgendwie, aber dann wird es halt schon sehr, sehr schwergewichtig.

Jochen

ja, natürlich funktioniert das

Jochen

auch nur, solange die Systeme halbwegs

Jochen

klein sind, wenn das dann irgendwie

Jochen

sehr, sehr viele unterschiedliche

Jochen

Services werden. Also bei mir ist es halt meistens

Jochen

nur in Postgres-Datenbank,

Jochen

es ist irgendwie ein Riddes, es ist irgendwie vielleicht ein bisschen

Jochen

Celery oder so.

Jochen

Das ist sozusagen

Jochen

der Applikations-Server

Jochen

vorne dran meistens, den ich

Jochen

meistens benutze.

Jochen

Der Web-Server

Jochen

einfach vorne dran, der halt

Jochen

so ein Reverse-Proxy auch ist für

Jochen

die Applikationsserver. Applikationsserver

Jochen

ist Unicorn meistens.

Jochen

Und

Jochen

ja, das sind halt vier, fünf

Jochen

unterschiedliche Container-Typen, das war's.

Jochen

Und das kann man auch lokal

Jochen

problemlos noch handeln.

Jochen

Eigentlich.

Jochen

Genau, und

Jochen

ja, meistens

Jochen

mache ich das dann einfach so, dass

Jochen

ich

Jochen

habe halt so Skripte,

Jochen

die, also ich habe

Jochen

zum Beispiel einen Deploy-Skript, mit dem ich

Jochen

das halt, also ich mach das dann halt

Jochen

per SSH und

Jochen

benutze aber auch Python dafür, damit ich einfach

Jochen

nur Python-Skripte ausführen muss.

Jochen

Das lockt sich halt dann irgendwie

Jochen

auf einer Produktionsmaschine ein oder so,

Jochen

checkt halt den Code aus, baut

Jochen

irgendwelche Container neu und startet dann alles

Jochen

neu oder so. Das ist halt so

Jochen

das, was es an der Stelle

Jochen

macht und dann halt auch noch irgendwelche Skripte, die halt

Jochen

lokal und produktiv

Jochen

Systeme komplett abgleichen, also

Jochen

Datenbank-Backups ziehen, das

Jochen

kopieren, irgendwie die

Jochen

vielleicht Daten, die aus

Jochen

irgendwelchen Buckets benötigt werden, ziehen

Jochen

und synchronisieren.

Jochen

Und das funktioniert für mich

Jochen

eigentlich ganz gut.

Jochen

Hat halt so ein bisschen das Problem, dass ich jetzt

Jochen

auf dem Server sozusagen auch

Jochen

Docker laufen lassen muss, was

Jochen

natürlich so ein bisschen ätzend ist.

Jochen

Aber da komme ich

Jochen

natürlich nicht so wirklich drum rum, weil wenn ich das

Jochen

lokal genauso nachstellen

Jochen

können möchte, wie es halt produktiv läuft,

Jochen

dann muss ich das halt so machen,

Jochen

weil ich kann ja den Produktionsverwahr nicht,

Jochen

also wenn das jetzt halt

Jochen

irgendwie, keine Ahnung, das ist halt

Jochen

wahrscheinlich irgendein Debian Stable

Jochen

oder sonst irgendwas, das kriege ich ja lokal

Jochen

irgendwie nur schwer reproduziert,

Jochen

irgendwie in all der,

Jochen

also ja, außer wiederum mit Vagrant und

Jochen

Ansible oder so, aber ja.

Jochen

Ich meine, das ist halt

Christian

ein ungelöstes Problem, so ein bisschen da dran.

Christian

Was mir immer

Christian

negativ auffällt, ist, dass die TechSecs

Christian

immer größer werden, ohne dass wir die eigentlichen Probleme

Christian

gelöst haben.

Christian

Also dieses, wenn du jetzt halt

Christian

einen Docker hast, dann hast du jetzt sozusagen das ganze Thema,

Christian

ja, die Security-Updates für dein

Christian

Zeug musst du halt selber machen.

Christian

Du musst halt das Basis-Image

Christian

nachziehen, musst halt hoffen,

Christian

also du kannst es unterschiedlich machen, du kannst es,

Christian

es gibt welche, es gibt Leute, die machen das

Christian

irgendwie so, dass sie sagen, okay,

Christian

da, wo ich das Docker-Image betreibe,

Christian

rebuilde

Christian

ich den Container

Christian

jeden Tag nochmal

Christian

in dem ich halt noch einen Layer drüber jage,

Christian

der sagt, Upget, Upgrade, Upget,

Christian

Upgrade.

Jochen

Ja, genau, so mache ich das auch. Das habe ich ja auch

Jochen

da drin sozusagen in meinem Docker-File

Jochen

und ich habe halt irgendwie, ich mache das dann

Jochen

Build No Cache und dann muss das halt nochmal neu

Jochen

gebaut werden alles, ja. Ja, genau.

Christian

Aber das ist halt, ich finde das halt so von der,

Christian

von dem konzeptionellen Layering

Christian

eher,

Christian

sagen wir mal, holzklasse. Ja, ja.

Christian

Die,

Christian

die,

Christian

die,

Christian

das andere, was du meintest

Christian

von wegen Produktiv-Server und dem Debug, das ist halt

Christian

spannend, weil du kannst dir

Christian

ja natürlich schon

Christian

das über einen Loadbalancer zum Beispiel aussteuern.

Christian

Also ich mache sowas gerne mal, wenn es wirklich völlig

Christian

abstruse Sachen sind, die halt

Christian

auch zum Beispiel eben temporal

Christian

davon abhängen,

Christian

dass momentan im Internet

Christian

irgendwas komisch ist.

Christian

Wir hatten zum Beispiel mal ein Problem, dass

Christian

Der Satz war super.

Christian

Ja, wir hatten zum Beispiel mal das Problem, dass Leute bei uns nicht deployen konnten und die kamen an und meinten, bei uns im Netzwerk wäre irgendwas kaputt, weil GitHub geht nicht mehr.

Christian

So, und dann gehst du halt irgendwie auf die Suche und dann stellst du irgendwann fest...

Christian

Oh, GitHub offline.

Christian

Nee, GitHub ist online.

Christian

Geht bei uns im RZ aber nur jedes zweite Mal.

Christian

So, also damit bist du schon mal in so einer Art von Problem, die du halt nicht lokal nachstellen kannst.

Christian

Und das muss halt nicht GitHub sein, das kann halt auch irgendwas anderes sein.

Christian

Und da haben wir damals festgestellt, dass GitHub halt über Fastly ausliefert.

Christian

Und unser RZ sitzt netztypologisch so genau in der Mitte zwischen Amsterdam und Frankfurt.

Christian

Das sind so zwei der großen Netzknoten in Europa.

Christian

Und da war es halt so, dass eben...

Christian

Er kann sich entscheiden, wen er will.

Christian

Ja, genau. Es ist manchmal nach Frankfurt und manchmal nach Amsterdam gegangen zu einem Fastly-Knoten.

Christian

Und das Problem war, der Fasti-Knoten in Frankfurt war anders konfiguriert als der in Amsterdam

Christian

und hat auf ein ganz bestimmtes TCP-Flag, was bei uns gesetzt war, allergisch reagiert.

Christian

Out.

Jochen

Habt ihr das Schiebel mitgesetzt?

Christian

Naja, ich weiß ja gar nicht mehr, welches das war.

Christian

Und es mündete halt darin, das ist ja auch die Frage von der Internetarchitektur mit diesen Greyboxes, es mündete halt am Ende darin, dass wir halt irgendwo im Fasti-Support aufgeschlagen sind, um ihnen klarzumachen, dass sie dort ein Netzkonfigurationsproblem haben.

Christian

Das ist sozusagen so, das ist das

Christian

Ops-Ende von diesem Thema von

Christian

was gibt es da an Zeug zu debuggen, ja.

Christian

Oder eben, wenn halt die Webseite

Christian

steht still, warum? Und dann

Christian

gehst halt her und stracest den Python-Prozess

Christian

um festzustellen, guck mal,

Christian

der macht dauernd Sockets zu Twitter auf, aber die

Christian

gehen nie wieder zu, ich glaube, die bleiben hängen.

Christian

Dann stellst du dir fest, ah, Twitter ist die API gerade kaputt.

Christian

Und

Christian

das ist halt, da sind, da ist

Christian

Docker an der Stelle für uns manchmal so ein,

Christian

so ein, ja.

Jochen

Kann man nicht gut reingucken, das stimmt, ja.

Christian

kann man nicht gut reingucken und

Christian

das Tooling ist, also man kann

Christian

ja schon, also man kann

Christian

ja schon, man sieht ja die Subprozesse typischerweise

Christian

im Host

Christian

beziehungsweise bei uns wird das

Christian

Docker-Schwester halt erstmal eine VM und dann

Christian

läuft die VM halt irgendwo auf so einer Infrastruktur

Christian

und du kannst ja die Subprozesse schon

Christian

sehen, das heißt du kannst deine Tools

Christian

wie ein S-Trace da von außen drauf jagen,

Christian

aber es ist so ein bisschen, ah, dann schnell

Christian

zu suchen, wo ist denn jetzt das Dateisystem von dem Ding,

Christian

wo ist denn der Socket, wo ist denn das, das

Christian

ist halt alles viel, viel verdröselt

Christian

und

Christian

ja, was bei uns

Christian

häufiger passiert vom Workflow ist, dass Entwickler tatsächlich

Christian

das Zeug erstmal in Docker bauen, das

Christian

macht sie produktiv und

Christian

wir gehen dann aber wieder her und sagen, super,

Christian

das Docker ist jetzt erstmal die Grundlage, auf der wir das

Christian

auseinanderreißen.

Christian

Dann nehmen wir das alles auseinander und sagen, okay, was

Christian

habt ihr denn hier da? Okay, ihr habt irgendwie die

Christian

russische Postgres, das ist aber nett, das nehmen wir mal

Christian

nicht.

Christian

Oder was halt auch manchmal

Christian

vorkommt, ist, dass Entwickler sich dann sehr

Christian

große Basis-Images bauen,

Christian

wo sie dir nachher nicht mehr erklären können,

Christian

was davon eigentlich in Benutzung

Christian

ist.

Christian

Ja, das heißt, da hast du dann halt so, ich kenne das

Christian

selber, wir hatten früher so 2004,

Christian

2005 rum auch immer mal für irgendwelche

Christian

Web-Projekte dann

Christian

Hilfspackages geschrieben, die dann

Christian

alles konnten, weil das braucht man ja in jedem

Christian

Projekt. Das Dumme war nur, wenn du

Christian

das jemals aktualisieren wolltest, musstest du alle

Christian

deine Projekte anfassen,

Christian

weil dir alle von diesem Ding abhängen, wo alles

Christian

drin ist. Das war

Christian

so ein Nexus an Dependencies

Christian

ist immer schwierig.

Christian

Und vor allem, wenn du halt implizite Dependencies hast,

Christian

die einfach nur von, ja, ich benutze halt das Basis-Image.

Christian

Und wenn das aber dann eine Dependency war,

Christian

die nie gewollt war, und die schaltet

Christian

jemand ab, dann fliegt es dir plötzlich um die Ohren und du weißt

Christian

noch nicht mal warum. Da kommen dann teilweise

Christian

ganz obskure Fehlermeldungen. Wir hatten das, glaube ich, beim

Christian

Thema, da hatte jemand eine Postgres mit

Christian

17.000 Extensions

Christian

und

Christian

unser, also übertriebenermaßen,

Christian

das ist schon das dritte alkoholfreie

Christian

Bier hier,

Christian

die hat dann auch nur das noch quittiert beim Einspielen von einem Dump mit einer völlig obskuren Fehlermeldung,

Christian

die auch kein Postgres-Expert mal so richtig lesen konnte, bis irgendwer meinte,

Christian

ah, wir benutzen ja noch die Extension, so, ah, okay, alles klar, gut.

Christian

Und da merke ich, da ist halt genau diese Klärung dann auch für Ops-Leute,

Christian

was ist hier eigentlich im Einsatz, brauche ich das eigentlich?

Christian

Wenn du halt immer nur die Weihnachtsbaum-Variante hast mit All Features On,

Christian

Dann läuft dir irgendwann weg, dass du keine Handlungsfähigkeit mehr hast, weil du davon ausgehen musst, okay, hier ist alles installiert, kann alles, was hier installiert ist, kann auch noch in Benutzung sein, ich habe keine Ahnung, was ich jetzt tun soll.

Christian

Läuft das noch oder kann das weg?

Christian

Ja, genau. Und das ist so ein bisschen dieses, wir hatten, ich habe eine Zeit lang für Soapcorp consultet und Benji York, der war auch ein guter Ingenieur da, der hatte so einen Spruch, der hieß, test what you fly, fly what you test.

Christian

Und das war nämlich die Frage von, was ist denn die richtige Anzahl von Paketen,

Christian

die ich, also egal ob auf Python-Ebene oder Betriebssystem-Ebene oder was auch immer,

Christian

in Produktion haben sollte.

Christian

Und das ist ein bisschen abseits dessen, was viele für besser halten.

Christian

Der sagt halt, naja, natürlich ist die ganze Test-Suite und die Test-Tools auch in der Produktion installiert.

Christian

Weil du hast es ja mit der Test-Suite getestet.

Christian

Du kannst es ja nicht testen, wie es läuft, wenn die Test-Suite nicht dabei ist.

Christian

Du kannst natürlich ein Abstraktionsargument sagen und machen, diese Testsuite ist nicht das Problem. Also ich mache hier gerade diesen Podcast-Move von, das sind nicht die Roboter, die ihr sucht. Aber nichtsdestotrotz hast du eigentlich eine ungetestete Konfiguration in Produktion.

Christian

Das Gegenargument dazu

Christian

ist immer, oh, du hast den Testcode installiert,

Christian

wenn jetzt zufällig jemand den Testcode anträgt

Christian

und er dann mit deiner Live-Datenbank redet,

Christian

dann ist alles platt.

Christian

Aber da muss ich ganz ehrlich sagen, da ist der Pragmatiker

Christian

bei mir, ich habe mehr Sachen kaputt

Christian

gehen sehen, weil zum Beispiel

Christian

ich eine Dependency hatte, auf die ich mich verlassen

Christian

habe, die nur um die Ecke über die

Christian

Test-Suite kam.

Christian

Und dann ging es

Christian

draußen nicht mehr, weil die Test-Suite und ihre

Christian

Dependency nicht mehr da waren.

Christian

Das ist mir schon öfter mal vorgekommen,

Christian

das Umgekehrte, dass da aus Versehen

Christian

der Testcode aktiviert wird, das habe ich noch nie gehabt.

Christian

Noch nie. Und deswegen ist so meine

Christian

persönliche Historie, dass ich sage, ich

Christian

will halt immer die komplette Umgebung, die

Christian

der Entwickler hatte, nicht mehr

Christian

und nicht weniger, so gut es geht.

Christian

Und deswegen sind so fette Basis-Images

Christian

für uns dann immer so ein bisschen so ein

Christian

rotes Tuch, weil sich dann

Christian

rauszusuchen, was ist da jetzt eigentlich das, was hier benutzt

Christian

wird, woraufhin müssen wir,

Christian

weil dann kommt ja das Nächste, dann will man das

Christian

wie du produktiv und gemütlich auch getunt haben, dass du

Christian

sagst, okay, ich hole hier aus den Ressourcen,

Christian

die ich habe, das Beste raus.

Christian

Wenn da aber irgendwie tausend unbenutzte

Christian

Dinge rumgeistern, weißt du gar nicht, was du anfassen

Christian

sollst.

Christian

Ja.

Christian

Das ist, ich meine,

Jochen

das hat natürlich halt auch einen Vorteil,

Jochen

wenn man das halt alles schön sauber durchspezifiziert

Jochen

hat. Ja, dann

Jochen

weiß man auch, warum man das,

Jochen

also das macht man dann auch nicht, wenn man es gar nicht braucht.

Jochen

Während, wenn man einfach ein Image

Jochen

von irgendwo zieht, dann ist halt da per

Jochen

Unfall schon ganz viel Zeug drin und man weiß halt gar nicht.

Jochen

Ja, genau.

Christian

Wie gesagt, wir nehmen das ja, wir reißen es auseinander

Christian

und wir

Christian

versuchen ja so ein Modell zu machen, wo wir

Christian

die

Christian

ständig

Christian

wieder gebrauchten Sachen, wie so ein Postgres

Christian

oder ein Webserver, die managen

Christian

wir auf eine Art, wo

Christian

man dann trotzdem natürlich lokale Config von

Christian

einem Projekt reinschießen kann und Entwickler

Christian

sehen das im Prinzip auch alles und können sich

Christian

auf diesen Maschinen anmelden und

Christian

an die Teile ran pieksen, aber

Christian

wir bringen da halt diesen ganzen Ballast an Ops-Kram

Christian

dann rein und sagen, okay, wie muss ich das

Christian

jetzt eigentlich ins Monitoring integrieren, wie muss ich das

Christian

dann ins Backup integrieren, wie muss ich das in

Christian

Upgrade-Pfade integrieren, wie muss ich

Christian

dieser ganze Kram,

Christian

dass das halt auch ausdefiniert ist

Christian

und eben nicht nur, ja, ich habe dieses Image

Christian

genommen, weil da ist halt das Postgres mit dem Plugin drin,

Christian

sondern halt, wie

Christian

monitore ich jetzt, dass das Ding ab ist, wie mache ich das

Christian

Backup, etc.

Christian

Das muss man ja mit einem anderen verheiraten und deswegen finde

Christian

ich, ist Docker häufig für mich so ein Tool,

Christian

das hat die Neigung, wenn man das halt

Christian

einfach nur blind Ende-Ende einsetzt,

Christian

dann wird es wieder zum Software

Christian

über den Zaun werfen.

Christian

Ich habe hier was zusammengebaut, du bist bloß

Christian

dafür zuständig, dass der Strom läuft

Christian

und damit machen wir jetzt gerade so ein bisschen

Christian

so einen Kreis zum Anfang.

Christian

Dann haben wir wieder das Problem,

Christian

die Ops sind die, die es über den Zaun

Christian

geworfen kriegen, die sollen machen, dass es nicht

Christian

ausgeht und dass der Strom da ist, haben aber

Christian

keine Chance zu verstehen, was da drinnen eigentlich

Christian

abläuft und ihr eigentlich operatives

Christian

Wissen ins Spiel zu bringen.

Christian

Ja, ja,

Christian

wobei aus meiner Perspektive der Trend,

Jochen

der da momentan

Jochen

so ein bisschen nicht da sehe, ist halt,

Jochen

das ist ja auch das, was einem

Jochen

dann dadurch ermöglicht wird, wenn man jetzt

Jochen

quasi so ein System auch lokal

Jochen

komplett hochziehen kann, dass man halt

Jochen

eben so AWS

Jochen

oder Google Computer Engine,

Jochen

da kriegt man halt irgendwie,

Jochen

kann man auch per API-Maschinen hochfahren,

Jochen

dann schmeißt man da die Container drauf

Jochen

und dann, naja, funktioniert das halt

Jochen

in einem Durchschnitt mehr oder weniger.

Jochen

Genau, und da hat man dann schon eine harte Trennung.

Jochen

Aber sozusagen die Trennung ist halt an der, man bekommt halt Maschine und kann da per Rout und SH drauf.

Christian

Aber das ist jetzt auch nicht viel besser als das mit dem FDP und dem PHP.

Jochen

Ja, genau, das stimmt natürlich auch.

Jochen

Und dann auf der anderen Seite gibt es dann halt so Dienstleister, so was wie Heroku oder so,

Jochen

die dann halt schon sehr viel selber betreiben.

Jochen

Da hat man dann das Problem sozusagen nicht, dass man sich auch um die Datenbank und so selber kümmern muss, sondern man, im Wesentlichen schiebt man da so den Code hin und der läuft dann in der Heroku-Infrastruktur irgendwie.

Jochen

Auch bei AWS dann?

Jochen

Wahrscheinlich auch bei AWS.

Christian

Es ist AWS, Heroku ist ja nur AWS.

Christian

Naja gut, das sind ja auch diese unterschiedlichen Konzepte dann, auf was für Infrastruktur möchte ich aufsetzen, von Infrastructure-as-a-Service, Plattform-as-a-Service zu whatever-as-a-Service.

Christian

Da ist halt auch spannend, diese Frage danach, habe ich halt diese Magic-Services im Sinne von die Postgres, ist da irgendwie Magic irgendwo gemanagt?

Christian

Das heißt, ich weiß auch gar nicht so richtig, was ist da noch an Sachen drinne. Ich habe dann teilweise auch keinen Überblick, wie sind eigentlich jetzt die Latenzen, wie ist denn der Netzwerkpfad zu diesem Ding.

Christian

Bei Heroku kann einem das passieren, wenn man so Add-ons dazu bestellt, dann sind die zwar eine gut integrierte API, die lebt aber irgendwie in einem Rechenzettel am anderen Ende des Erdballs.

Christian

Und wenn man dann halt den Datenschutz irgendwie reinholt, ist so ein bisschen die Frage, weißt du wirklich, wo deine Daten gerade sind?

Christian

Die sind bei Heroku, okay, das heißt, die sind bei Amazon. Das heißt, die sind bei Amazon in Nordamerika.

Christian

Das heißt, ach, da hast du noch die MongoDB geklickt? Ja, nee, dann ist die bei Amazon in da drüben.

Christian

Okay, und ich finde halt an der Stelle, es ist halt so verlockend, sich so Zeug zusammenzuklicken und ich finde das cool zum Experimentieren und was mir so ein bisschen, aber dieser Übergang zu, wann muss man mal den Besen rausholen und dieses Experimentieren ordentlich aufräumen und kriegt man das dann überhaupt noch eingefangen oder ist es dann wirklich eigentlich aus der Hand?

Christian

Und dieses große Argument von, naja, Amazon wird irgendwann der einzige RZ-Betreiber der Welt sein, das widerstrebt mir so massiv, weil das ist aus einem Gedanken der auch informationellen Selbstbestimmung und diesem macht Dinge selber und macht die Fehlerdomänen auch kleiner. Also Amazon wird ja am Ende zu einer einzigen großen Fehlerdomäne.

Jochen

Ja, ja, da ist ja auch, das ist auch gar nicht so lange her, dass da, irgendwo war das in das Virginia-Rechenzentrum oder so, war weg und dann war irgendwie so, na gut, vielleicht ist es auch schon fast, ist schon zwei Jahre her oder so, aber da erinnere ich mich noch gut, da war 80% des Webs war plötzlich irgendwie tot, weil das, weil da ein Rechenzentrum wegen einem Blitzschlag nicht mehr funktioniert hat.

Jochen

Witzigerweise auch die eigene Amazon-Statusseite, also die AWS-Statusseite, die sagen sollte, ob das noch alles funktioniert oder nicht, die war auch kaputt.

Christian

Nee, nee, nee, das war subtiler, das war viel subtiler.

Christian

Ach so, okay.

Christian

Die Amazon-Statusseite ging und hat grün angezeigt, weil das grüne Icon war in der Statusseiten-Software hart kodiert und das rote Icon haben sie aber aus dem S3 gezogen und das S3 war kaputt und dann blieb das grüne Icon da stehen.

Christian

Ach so, ja, okay.

Christian

Das ist schön.

Dominik

Da hatte ich ja nicht mal ein anderes Tennis gehabt.

Dominik

Nur grüne Lämpchen, bitte.

Dominik

Ja, genau.

Christian

Ich merke so, die Themen, die mich halt umtreiben,

Christian

deswegen habe ich ja vorhin auch mit der Komplexität so ausgeholt,

Christian

ist halt die Frage,

Christian

und damit sind wir auch ins DevOps eingestiegen,

Christian

wie macht man aber, dass die Leute halt besser zusammenarbeiten können

Christian

und dass man diesen Know-how-Transfer halt hinkriegt.

Dominik

Wie macht man sich happy, happy.

Dominik

Wie macht man sich happy, happy, happy.

Dominik

Ja, genau.

Christian

weil, das war unsere Schleife zur Digitalisierung,

Christian

diese Erkenntnisse finden ja an vielen Stellen im Kleinen statt

Christian

und das wird jetzt momentan so,

Christian

es hat so Entwicklungen,

Christian

das wird mit so Pinselstrichen werden,

Christian

ganze Systemarchitekturen,

Christian

ganz breit mal auf irgendeinem Gebiet geschrieben

Christian

und dass aber die eigentlichen Schwierigkeiten

Christian

und das wissen die Ops-Leute von den großen Anbietern

Christian

wie von AWS und von Google,

Christian

wenn man sich die Google System Reliability Engineering Dokumente anguckt,

Christian

und so, die wissen, der Teufel

Christian

liegt im Detail. Du kannst es halt nicht

Christian

sagen mit, naja, ich hab's jetzt halt in der Cloud

Christian

und dann ist das halt alles super.

Christian

Im Gegenteil, du hast jetzt halt noch eine

Christian

Abstraktionsebene mehr und

Christian

wir wissen ja alle, also

Christian

jedes Problem kann dadurch gelöst werden,

Christian

dass ich halt noch ein Layer oben drüber ziehe.

Christian

Und

Christian

ja, also ich merke so,

Christian

für mich sind die Lösungen immer an so Stellen, wo ich

Christian

gucke, ich such sie ja eher immer

Christian

im Kleinen und an den

Christian

etwas nicht so ausgetretenen Pfaden,

Christian

um zu gucken, wie kann man das denn so

Christian

zurechtschneiden,

Christian

dass man mit Entwicklern so einen konstruktiven

Christian

Alltag hinkriegt auch an der Stelle.

Christian

Weil eben,

Christian

jetzt haben wir ja gesagt, diese zwei Rollen,

Christian

die etwas diskret sind,

Christian

ob es halt eben auch

Christian

einen anderen Rhythmus, dass man sagt, okay, wir würden

Christian

gerne ein paar Updates ausrollen, wir würden gerne ein paar

Christian

alte Versionen sanieren, wir würden gerne ein bisschen

Christian

dies und jenes machen, das würde ich gerne unabhängig von dir

Christian

können. Ich will das nicht ohne

Christian

einen Entwickler können. Ich will nicht einfach nur

Christian

sagen, so halt, jetzt updaten wir die MySQL

Christian

auf die neuesten Major oder auf die oder das, sondern

Christian

ich will da halt eher so ein

Christian

vernünftiges Verständnis haben von,

Christian

warum sind zum Beispiel welche Komponenten

Christian

für einen Entwickler eher so mit Feingefühl

Christian

zu updaten, während andere

Christian

irgendwie völlig egal sind, die updatest du halt

Christian

durch und da geht nie irgendwas kaputt.

Christian

Um da dann halt auch mal die Augen

Christian

offen halten zu können, was sind denn möglicherweise bessere

Christian

andere Tools für bestimmte

Christian

Probleme oder wo muss man irgendwie eine Integrationsleistung

Christian

noch erbringen oder wo lohnt es sich

Christian

aus beiden Perspektiven zu sagen, hey,

Christian

würdest du die Anwendung da drüben so ein bisschen umbauen,

Christian

dann wäre hier vorne

Christian

alles viel einfacher und

Christian

es fällt weniger Seiten um.

Christian

Naja, ganz herrlicher

Dominik

Blick auf die ganze Mikroarchitektur.

Dominik

Ja,

Jochen

richtig. Ja, im Grunde

Jochen

brauchst du halt, um ein Projekt

Jochen

wirklich komplett machen zu können,

Jochen

brauchst du halt in dem Team, das das Produkt baut,

Jochen

halt all diese Kompetenzen irgendwie drin.

Jochen

Ja, das Problem ist ja, deine Teamgröße ist beschränkt.

Jochen

Ja, das ist dann halt auch das, was einem dann passieren kann, dass man dann irgendwie alles selber macht.

Christian

Ja, genau, NEH.

Christian

Aber NEH ist halt der Trick,

Christian

manchmal geht es beim Neuerfinden des Rades

Christian

ja auch nicht darum,

Christian

das bessere Rad zu erfinden,

Christian

sondern zu verstehen, wie so ein Rad

Christian

funktioniert. Also da

Christian

muss man halt auch der Maker-Szene an der Stelle

Christian

ja noch eine Lanze brechen und sagen,

Christian

viel von diesen

Christian

großen Architekturen, ob das jetzt Kubernetes

Christian

oder halt so diese

Christian

Amazon Magic Elastic Services sind,

Christian

Die versuchen dich ja zum reinen Konsumenten zu degradieren und sagen, benutze mich einfach, dann ist alles gut. Die kochen und drücken halt auch nur mit Wasser. Also in Amazon, irgendwie hast du nicht gesehen, MySQL ist halt immer noch MySQL, vermutlich noch mit irgendwelchen obskuren Patches drin. Aber das läuft dann auch bloß in einer EC2-Instanz irgendwo. Da ist jetzt nicht irgendwie was groß anders. Der einzige Unterschied ist, du siehst es halt nicht.

Jochen

Anekdote am Rand, MongoDB hat irgendwie

Jochen

das, hat irgendwie

Jochen

Lizenz geändert,

Jochen

weil ihnen das ein Dorn im Auge war,

Jochen

dass die ganzen Plattformen jetzt da

Jochen

irgendwie Geld mit verdienen,

Jochen

dass sie... Redis, Redis, nicht Mongo, Redis

Jochen

war es. Ja, aber MongoDB hat das auch irgendwie

Jochen

gemacht. Auch? Oh, okay.

Jochen

Und hat sozusagen dann qual Lizenz

Jochen

Amazon verboten,

Jochen

irgendwie MongoDB anzubieten,

Jochen

woraufhin

Jochen

Amazon irgendwie

Jochen

einen quasi

Jochen

komplett kompatibles, eigenes, selbstgeschriebenes

Jochen

Ding an die Stelle gesetzt hat.

Jochen

Ja, krass.

Christian

Und jetzt kannst du darauf warten, dass

Christian

das sich inkompatibel weiterentwickeln

Christian

wird, damit die Leute halt nicht mehr in der Lage sind, davon

Christian

wegzugehen.

Christian

Also dieser Lock-In

Christian

an der Stelle ist halt auch

Christian

unglaublich.

Christian

Und dafür finde ich

Christian

halt teilweise dann eben der

Christian

klar, bei allem, was

Christian

Flexibilität in Richtung

Christian

Investkosten, also CapEx versus

Christian

Opex und so angeht, ist das alles

Christian

super und du musst halt nicht um Erlaubnis

Christian

fragen, wobei das halt auch...

Dominik

CapEx, Opex, ich bin gerade wieder rausgeflogen.

Christian

Ja, unternehmerisch,

Christian

wenn du halt deine Kosten betrachtest,

Christian

dann ist die CapEx, Opex-Trennung

Christian

ganz spannend. CapEx bedeutet,

Christian

du gibst Geld einmal aus,

Christian

um ein Gerät zu kaufen,

Christian

sogenannte Capital Expenditure,

Christian

also Investitionsgüter.

Christian

Da wird der Wert

Christian

des Gutes, also wenn du zum Beispiel ein Auto

Christian

kaufst, dann hast du deine da 30.000 Euro,

Christian

50.000 Euro, die du ausgegeben hast, die gehen

Christian

auf einmal von deinem Konto runter.

Christian

Jetzt bin ich, glaube ich, dran, dass du

Dominik

baust es dann so ein bisschen und guckst,

Dominik

wie du es... Genau, du brauchst

Christian

das, der Wert des Autos wird wieder in deinen Büchern

Christian

geschrieben, da ist sozusagen das Geld nicht

Christian

einfach nur weg, sondern du hast ja einen Gegenwert dafür bekommen.

Christian

Dafür musst du es halt abschreiben,

Christian

das hat eine bestimmte steuerliche Behandlung etc.

Christian

Und OPEX ist das sogenannte

Christian

Operative Expenditure,

Christian

das sind sowas wie Miete.

Christian

das Geld ist halt in dem Moment weg,

Christian

dafür hast du dir aber erspart,

Christian

einmalig große Investitionen zu tätigen

Christian

und machst halt viele kleine,

Christian

beziehungsweise viele kleine Ausgaben, die sind steuerlich

Christian

halt sofort gültig und

Christian

Amazon erlaubt dir halt, dass du, wo du

Christian

früher mal Millionen in der RZ stecken musstest,

Christian

was du dann runterwohnen musst,

Christian

was dann entsorgt werden muss, etc.,

Christian

kannst du halt ein reines OPEX draus

Christian

machen, hast halt auch kurze Kündigungsfristen

Christian

und so, das ist halt, das

Christian

macht es wirtschaftlich extrem attraktiv an den Stellen.

Dominik

Das ist ja super, weil du erst mal

Dominik

auf die Idee kommst, irgendwie die Kosten

Dominik

selber zu investieren.

Christian

Ja, genau. Ich glaube, Netflix hatte das dann irgendwann auch mal

Christian

gemacht. Netflix hat jetzt auch wieder eigene Adsets mit

Christian

im Mix, weil sie gesagt haben, auf Dauer ist

Christian

Amazon halt zu teuer. Also Amazon ist ja nicht billig

Christian

an der Stelle. Du kannst natürlich viel

Christian

Sachen optimieren, aber da ist

Christian

so für mich als Person auch

Christian

in der ganzen Komplexität, die Amazon selber mitbringt,

Christian

ist mir dann einfach

Christian

teilweise die Lebenszeit zu schade.

Christian

Wenn ich dann höre,

Christian

es gibt Leute, die bezahle ich dafür, um bei Amazon

Christian

um weniger zu betalen, denke ich mir so, jetzt

Christian

reizt es mir.

Christian

Ja.

Christian

Genau.

Christian

Ja, da haben wir

Dominik

jetzt quasi ja die Kurven alle wieder zum

Dominik

Ende gekriegt. Alle losen Endpunkte wieder zusammen.

Dominik

Genau. Das ist ja die Aufgabe,

Dominik

die der Admin dann ja hat.

Dominik

Alles zusammenhängen, der Operator.

Dominik

Fix it twice.

Dominik

Irgendwann mal hatte ich mal so ein Obzeichnen zum

Dominik

ERC-Channel.

Dominik

Wollte ich gerade auch loswerden.

Dominik

Ja, schön, dass ihr

Dominik

wieder so schön viel erzählt habe. Ich glaube, das war die

Dominik

Folge, in der Jochen am wenigsten gesagt hat.

Dominik

Bisher. Also so im Vergleich jetzt

Dominik

zu unserem Gast. Ich nehme das jetzt nicht als Ehre,

Christian

weil das ist mein Fluch.

Christian

Ja, großartig.

Christian

Das ist ja auch beim Zuhören

Christian

sehr interessant. Ja, genau.

Dominik

Das hat mega Spaß gemacht und wieder ganz viel gelernt.

Dominik

Ich hoffe, euch hat es genauso viel Spaß

Dominik

gemacht. Vielleicht, ich weiß nicht, ob wir uns entschuldigen müssen

Dominik

für die Voice-Qualität diesmal oder ob das

Dominik

genauso gut geworden ist wie sonst.

Dominik

Ja. Schreibt uns das in die Kommentare,

Dominik

falls ihr noch nicht wusstet, wir kriegen jetzt Kommentare

Dominik

bei uns. Ja, ich habe die letzte

Dominik

Folge heute mal angehört.

Christian

Oh, ja. Ja, genau. Da ging es um die Kommentare,

Christian

genau. Ich habe auch gesehen, es gab einen sehr guten Kommentar.

Christian

Ah, ja.

Christian

Ja.

Christian

Ja.

Christian

Ja, das war irgendwas, was? Feedback?

Christian

Hallo at peisenpodcast.de

Christian

Jo. Jo.

Dominik

Ich glaube, für heute sind wir sonst weit durch, oder?

Dominik

Wir sind auch schon relativ lang dran, ja.

Dominik

Ja, super, Christian, dass du da warst heute. Das war echt toll.

Christian

Alles gut. Sehr gerne, jederzeit wieder.

Christian

Alles klar, ja dann.

Christian

Okay, bis zum nächsten Mal. Ja, bis zum nächsten Mal.

Christian

Tschüss. Tschüss.