Latest / Coding Buddies | Tech & Dev-Mindset / DevOps #7 - Manuell deployen? Zeit für Infrastructure as Code!
Transcript
- 0:00Denn Infrastruktur wird nur aufgebaut, wenn also dein
- 0:03Secrets Manager kommt, nur mit der Infrastruktur.
- 0:04So na das Henna I Coding genau Coding Buddies Dein Podcast rund
- 0:10um Softwareentwicklung und aktueller Tech News herzlich
- 0:13Willkommen. Halli Hallo und herzlich
- 0:26Willkommen zur neuen Folge des Kolumbolis Podcast schön, dass
- 0:30du wieder eingeschaltet hast, dass wir wieder zusammengefunden
- 0:32haben, deine Gastgeber. Und ja, wie soll es anders sein,
- 0:35meine Wenigkeit, der Tino und der fantastische Fabi, der schon
- 0:39wieder lächelt, er ist, er hat Bock, ich sehe es, ich sehe es
- 0:42einfach, er hat Bock auf diese Folge, er ist bereit, deswegen
- 0:45mag ich ihn jetzt begrüßen fabi was geht?
- 0:47Ab was geht ab? Liebe geht raus an alle draußen
- 0:51im Podcast jetzt einschalten. Wie geht's dir?
- 0:56Alles gut? Ich bin müde, weil ich bin
- 1:00irgendwie müde. Aber Scheiße, hör ich mal viel
- 1:02öfter in letzter Zeit von dir. Was ist da los?
- 1:06Ne, ist wahrscheinlich die Frühjahrsmüdigkeit, ich weiß
- 1:08nicht gibt es sowas? Ich bin Frühjahrsmüdigkeit bei
- 1:12dir anscheinend schon, weil sie ist sehr ausgeprägt, auf jeden
- 1:14Fall aber aber weißt du was ich krass finde ist wenn man so auf
- 1:19einen Monat guckt wir haben schon wieder bald das erste
- 1:22halbe Jahr rum. Crazy oder?
- 1:26Also ein bisschen ist noch ja, ja, ja, okay für die, die es
- 1:29jetzt ganz genau nehmen, aber für mich geht's schon wieder in
- 1:32die Richtung so ja okay das erste Halbjahr ist rum, ich hab
- 1:34grad durchgerechnet, so Alter, das ist ja noch nicht mal Juni
- 1:39ah ich weiß noch zum Blick auf den Kalender, ich weiß was das
- 1:42ist, aber das ist doch krass irgendwie, wie schnell das schon
- 1:43wieder alles geht also ich finde die Wochen die Rasen.
- 1:47Ja, das sowieso. Aber ich finde, dass es so das
- 1:51Jahr geht los. Dann ist auf einmal so März,
- 1:54dann zieht sich der März so n bisschen finde ich und dann
- 1:57denkt man wieder so okay halbes Jahr schon wieder rum, dann hat
- 1:59man irgendwie n weiß nicht, dann ist so Sommer ne das finde ich
- 2:03dauert irgendwie zum Glück bei mir mal n bisschen länger so vom
- 2:06Feeling her und dann ist auf einmal zack wieder Weihnachten
- 2:09also so wenn du gerade so im August direkt zu Weihnachten.
- 2:11Ja, wenn du gerade so im August weißt du, auf der Terrasse sitzt
- 2:14gerade grillst oder so und dann machst du einmal schnipp und
- 2:18zack, ist wieder Weihnachten. Steht schon wieder Rudolf im
- 2:21Garten, so bin ich wieder eingeflogen.
- 2:24Ja, ich finde es auch spannend, wie schnell das einfach immer
- 2:27alles so an einem vorbeizieht. Also ja, man nimmt es ja schon
- 2:31aktiv wahr und ich versuche auch wirklich die Zeit immer zu
- 2:33genießen, ne, aber es ist trotzdem krass wie schnell das
- 2:35geht und warum ich drauf komme ist weil ich finde man merkt das
- 2:39auch so ein bisschen am Podcast so jede Woche ne Folge man denkt
- 2:43immer so von Folge zu Folge aber wenn man sich das so im
- 2:45Gesamtkontext ansieht. Merkt man mal, wie die Zeit
- 2:48vergeht, weil uns ist ja aufgefallen, dass wir auch schon
- 2:51ne ganze Zeit keine Def Ops folge mehr zu der Reihe gemacht
- 2:54haben und das wollen wir ja heute ändern.
- 2:58Ja stimmt und bevor wir aber rein starten.
- 3:03Noch n kleiner Aufruf liebe Zuhörer, liebe Zuhörer, falls
- 3:07dir der Podcast gefällt und auch die Def Ops Reihe zum Beispiel,
- 3:10denn heute kommt wieder eine Folge dazu, dann lass uns das
- 3:13doch gerne wissen. Schick uns auch gerne n Feedback
- 3:15und wenn du Lust hast in den Shownotes findest du n kleinen
- 3:18Spendling, damit würdest du uns mega unterstützen, dann vielen
- 3:20Dank dafür schon mal und dann würde ich sagen Fabi stell doch
- 3:24mal. Das heutige Thema Vorfilm ab,
- 3:27das hab ich gerade ja genau, es geht heute mal wieder um ne def
- 3:32of Folge wie du schon meintest und zwar um nichts weniger
- 3:35Wichtigeres als Infrastructure as Code, also IAC und das ist
- 3:41natürlich sehr sehr wichtig. Also wir haben ja bisher zum
- 3:44Beispiel schon über CIC geredet, Staging über Logging und
- 3:48Observability und das sind ja alles Punkte, wo du irgendwie
- 3:53deine Infrastruktur aufbauen musst und.
- 3:54Ne, also du musst ja irgendwie, du brauchst ja Server, du
- 3:57brauchst n Service, der irgendwie lockt, du musst gucken
- 4:00wie du lockst, wie du vielleicht deinen Logger konfigurierst oder
- 4:03frag mich nicht, ne, du musst wissen wie du ne Stage aufbaust
- 4:08und genau dafür, damit das alles auch richtig flutschen kann, sag
- 4:12ich jetzt mal braucht man halt am besten infrastructures Code.
- 4:16Ne und was jetzt infrastructures Code genau ist, warum das für
- 4:20Def Ops wichtig ist, was da vielleicht für Best practices
- 4:23sind und was es für Fallstricke und Herausforderungen gibt, das
- 4:26wollen wir eigentlich jetzt mal so in dieser Folge besprechen
- 4:28und uns angucken und unsere eigenen Meinungen, Erfahrungen
- 4:33noch mitteilen, so wie immer ne. Ja, klingt auf jeden Fall sehr
- 4:39cool und ist auch n super wichtiger Bereich, also
- 4:42essentiell notwendig, wie man es auch immer sagen möchte.
- 4:45Also es geht. Unserer Meinung nach nicht ohne.
- 4:47Es ist wirklich ein wichtiger Baustein und deswegen lass uns
- 4:52doch mal anfangen mit so ein bisschen Definition was
- 4:56Infrastructure is code eigentlich ist.
- 5:00Wie könnte man das so ein bisschen auf den Punkt bringen,
- 5:02also im Prinzip wenn man es definieren müsste, kann man
- 5:05sagen, es ist im Prinzip die Automatisierung und Verwaltung
- 5:10genau dieser Infrastruktur, die du gerade genannt hast, die wir
- 5:13ja auch in den vergangenen Folgen viel besprochen haben
- 5:15und. Über Code, also dass ich das
- 5:18wirklich codiere sozusagen in Code verfasse, anstatt manuell
- 5:22zu konfigurieren. Ich kann natürlich meine Server
- 5:25auch manuell manuell konfigurieren, du hast meistens
- 5:29Benutzeroberflächen, wo du alles einstellen kannst.
- 5:31Gar kein Thema, das funktioniert alles.
- 5:33Aber es geht jetzt darum zu sagen, Nein, wir konfigurieren
- 5:37es nicht manuell mit Maus und Tastatur und ich brauche n
- 5:40Mitarbeiter quasi jedes Mal dafür, sondern über Code wird
- 5:44das Ganze definiert. Die Infrastruktur, das heißt
- 5:48wenn man das so n bisschen vergleichen sollte, wir haben im
- 5:52Prinzip. Eine Version unserer
- 5:55Infrastruktur für die Serverlandschaft codiert
- 5:58sozusagen. Also ich habe Code, der
- 6:00beschreibt, wie eine spezieller Stand unserer Infrastruktur
- 6:04aussieht. Genau.
- 6:06Wenn man sich jetzt so Pseudocode vorstellt, steht da
- 6:08drin sowas wie fahre einen Server hoch, lade zum Beispiel
- 6:12da folgendes Artefakt hin und deploye Anwendung x auf diesen
- 6:17Server jetzt mal so ganz ganz auf ganz ganz hohen.
- 6:19Einblick aber genauso kann man sich das ja vorstellen.
- 6:21Zieh dir den neuesten Stand von deiner Anwendung genau, führe
- 6:26die Tests aus so. Genau, weil sie da bei CICD
- 6:30sind, ganz genau, und das ist halt, also es hat ja diverse
- 6:34Vorteile. Und zwar gerade weil du
- 6:37meintest, du hast ja zum Beispiel, wenn du deine deine
- 6:40Oberfläche zum Beispiel benutzt, um manuell deine Server
- 6:43Landschaft aufzubauen und deine Infrastruktur, dann hast du ja
- 6:48das Problem, dass du angenommen, du möchtest zum Beispiel Stage 1
- 6:52aufsetzen, ne, also zum Beispiel die Dev Stage beispielsweise
- 6:56über Stages hatten wir auch schon geredet und weiß nicht die
- 6:59QR Stage und die prod Stage so. Und du machst das alles manuell,
- 7:04dann hast du ja eventuell das Problem, dass du sagst, na ja,
- 7:07OK, ich warte mal. Wie hab ich das bei die Dev
- 7:10Umgebung, die hat dich aufgesetzt vor einem halben Jahr
- 7:12aber jetzt brauchen wir ne QR Umgebung ah hoffentlich vergess
- 7:15ich nichts ne also diese wiederholbarkeit, also dass du
- 7:19deine Infrastruktur 1 zu 1 reproduzieren kannst, die wird
- 7:23das wird echt schwierig ne wenn du das nicht irgendwie in in so
- 7:27ne Art infrastructures Code verpackst ne weil zum Beispiel.
- 7:32Erstens musst du dich daran erinnern und vielleicht sagen,
- 7:34ja, guck mal hier, da habe ich ja den Klick gemacht in
- 7:37Anführungsstrichen, da habe ich genau das und das eingegeben,
- 7:41was auch immer, wenn man es jetzt mal so wirklich, ganz
- 7:44salopp sagen möchte. Und wenn du jetzt zum Beispiel
- 7:49sagst, ja gut, du kannst ja auch dokumentieren, ja, aber das ist
- 7:51ein Riesenaufwand, wenn du eh schon den Code schreibst, wieso
- 7:53dokumentieren, das manuell machen, wenn du dann nicht aber
- 7:56einfach sagen kannst okay ich. Ich kann halt einfach meinen
- 8:00Infrastruktur als Code Template nehmen und sagen und jetzt los,
- 8:03bau das so auf, also wiederholbarkeit um es kurz zu
- 8:06fassen ist halt ein Vorteil, der ist halt sehr sehr wichtig.
- 8:10Ja, weil wie du ja meinst, es ist super fehleranfällig, wenn
- 8:12man das denn quasi nicht über IAC macht.
- 8:17Mal angenommen du hast jetzt ein Entwicklerteam und arbeitest ja
- 8:21zum Beispiel. Wie auch immer, an Frontend ne
- 8:24sehen wir einfach mal ne Website und mehrere Leute arbeiten da
- 8:28drauf, pflegen Ihre Änderungen ein und gehen jetzt immer zu dem
- 8:32Dev Ops Mitarbeiter und sagen ey übrigens ich hab jetzt hier in
- 8:35unserer Repository ne neue Änderung reingehauen.
- 8:39Check die doch mal durch. Teste das mal durch, probier mal
- 8:42alles, dann guckst du mal ob das funktioniert und wenn es geht,
- 8:46dann geh mal bitte auf den Server und Roll mal da per Hand
- 8:50die neue Version aus, das heißt Bau da mal zum Beispiel n
- 8:52Container auf und starte mal das Frontend damit das dann quasi
- 8:56global zur Verfügung steht so der macht jetzt 1000 Schritte
- 9:00wenn man jetzt wirklich davon ausgeht der Macht das manuell so
- 9:03und jetzt kommen 56 mal am Tag Leute und sagen ey ich hab
- 9:06übrigens hier den Button geändert ne.
- 9:09Hammer Deployder Swi wird. Na dann hat er wohl viel
- 9:13anfällig, dann hat er aber das ist halt so fehlanfällig, weil
- 9:16der ja da wird niemals was schiefgehen und genau das ist
- 9:20der Punkt ne diese wiederholbarkeit, du musst es ja
- 9:23sehr sehr oft machen. Ne.
- 9:26Und du willst es immer gleich machen und das ist halt wirklich
- 9:29ein riesen Vorteil, wenn einfach festgeschrieben ist durch diesen
- 9:33Code was zu tun ist und absolut klar ist, in welcher Reihenfolge
- 9:38das auch passiert, dass nichts ausbleibt, dass alle Stages
- 9:41durchlaufen wären und so weiter und ein Punkt, der dabei auch
- 9:45noch richtig essentiell ist und den darf man nicht
- 9:48unterschätzen. Diese Infrastructure ist Code
- 9:52kannst du ja genauso versionieren wie dein
- 9:54Softwareprojekt an sich und. Zum Beispiel mit Git.
- 9:57Das heißt, du hast einen riesen Vorteil dadurch, dass du
- 10:01Versioniert eine Version deiner Infrastruktur hast.
- 10:05Und solltest du n Fehler einbauen, kannst du auch immer
- 10:07wieder zurückgehen und so weiter du hast es halt wirklich als
- 10:11Historie abgelegt und dementsprechend auch wie du
- 10:14meintest ne Dokumentation da drin und das finde ich ist halt
- 10:18n riesen riesen Vorteil da die. Musst du halt nicht on top
- 10:20setzen, ne? Als Beispiel angenommen, Du
- 10:23sagst du möchtest den Server noch mal ein bisschen neu
- 10:25konfigurieren, weil da ist dir was aufgefallen und du
- 10:31konfigurierst den Server und auf einmal startet der Server nicht
- 10:34mehr oder was auch immer, dann ist langsam oder kannst dir
- 10:38irgendwas ausdenken was es halt alles so gibt, aber dann kannst
- 10:42du halt genau vielleicht auch wenn du es nicht selber gemacht
- 10:45hast, sondern vielleicht ein Teamkollege der gestern in
- 10:47Urlaub gegangen ist. Dann kannst du gucken, OK, was
- 10:49ist denn jetzt zum Beispiel eine Infrastruktur, was wurde denn
- 10:51verstellt? Ne, wenn du das jetzt, wenn
- 10:53jetzt aber das ganze über irgendeine Oberfläche eingegeben
- 10:56wurde oder sonst was, dann kannst du es halt nicht wirklich
- 10:59richtig gut nachvollziehen, du weißt halt gar nicht, was ist
- 11:01denn gerade passiert, was wurde denn eingestellt?
- 11:04Ne also du du hast halt nicht diese diese Version deiner
- 11:07Infrastruktur dann am Ende und. Das ist halt da.
- 11:10Klickst du dich dann wild durch irgendeine UI durch und
- 11:12versuchst irgendwo zu ergründen, wo sich was geändert haben
- 11:16könnte. Das ist die Hölle auf Erden.
- 11:19Definitiv, ja, genau. Und aber das sind halt diese
- 11:23ganzen Vorteile von infrastructures Code, ne.
- 11:25Also wir haben ja jetzt gesagt, die Wiederholbarkeit, die
- 11:29Versionierbarkeit Dokumentation durch Code und die
- 11:31automatisierte Bereitstellung ne von irgendwelchen Containern von
- 11:34Deiner Software von der neuen Version und so weiter ja das ist
- 11:37natürlich super und jetzt haben wir OK Infrastruktur
- 11:41infrastructures Code, gute Sache und.
- 11:44Wir sind ja jetzt in der Def Ops Folge und dann ist ja die Frage
- 11:46OK, wieso ist der infrastructures Code jetzt auch
- 11:50wirklich wichtig im def ops Kontext sag ich jetzt mal ne,
- 11:53das ist ja an sich jetzt ne gute.
- 11:54Frage, Was ist da der Key? Also was sind die Punkte?
- 12:01Ja, also den einen Hauptpunkt haben wir ja eigentlich schon
- 12:07angesprochen, dass das ganze Halt automatisierbar ist.
- 12:09Ne, also diese Infrastruktur die ich mir aufbaue.
- 12:12Kann ich automatisiert ausrollen?
- 12:15Und davon lebt ja dev Ops irgendwo auch am Ende, dass du
- 12:19halt sagen kannst, OK, ich muss jetzt nicht manuell Server
- 12:22einrichten, Datenbanken einrichten oder oder sei es nur
- 12:26du hast einen neuen Kollegen und der braucht eine
- 12:28Entwicklungsumgebung, die vielleicht ein bisschen größer
- 12:30oder komplizierter ist, dann musst du halt nicht manuell
- 12:33immer alles einrichten, sondern du hast das halt automatisiert
- 12:37in der Hinterhand, sage ich mal und sagst OK, hier pass auf.
- 12:40Lass das laufen und dann bist du am Start sozusagen.
- 12:44Also du kannst ja so n Skript, muss ja nicht nur beispielsweise
- 12:48in der Cloud laufen oder auf irgendwelchen Servern, du kannst
- 12:50es ja auch lokal laufen lassen, je nachdem wie die aufgebaut
- 12:54sind, aber die Möglichkeit besteht ja ne, dass du halt
- 12:57diese Infrastruktur auch lokal bei einem neuen Kollegen zum
- 12:59Beispiel einrichten kannst. Und das finde ich, ist halt n
- 13:02riesen riesen Benefit dabei. Da hatte ich zum Beispiel auch
- 13:06mal was richtig cooles. Ein alter Kollege, der hat dann
- 13:10irgendwann für die, für die ich sag, jetzt mal Abteilung hat so
- 13:14n Skript geschrieben und dann konntest du einfach dieses
- 13:17Skript auf deinem Rechner ausführen, konntest einfach
- 13:20starten und dann wurden eigentlich so die ganzen
- 13:22gängigen Sachen, die man eigentlich so bei uns verwendet
- 13:26hat, dann einfach installiert. Die IDI was weiß ich zum
- 13:30Beispiel ne ne git CLI frag mich nicht docker.
- 13:35Und und so weiter ne, also diese ganzen Sachen wurden halt
- 13:37einfach installiert wurde. Das ist dann halt am Ende zum
- 13:40Beispiel über Homebrew passiert meistens, aber das Ding ist, das
- 13:44ist ja super, super entspannt also in wenn wenn es jetzt zum
- 13:47Infrastructure Code geht ist es ja nicht immer nur und das finde
- 13:50ich gut, dass du das noch mal gesagt hast.
- 13:52Immer nur dieses Remote. Ich setz meine Serverlandschaft
- 13:55für meine Anwendungen auf, sondern es geht ja auch dahin,
- 13:57dass du als Def Ops Team zum Beispiel das Automatisierst und
- 14:01sagst, ey, es gibt n Onboarding, guck mal hier, du brauchst dich
- 14:04jetzt nicht hinsetzen und alles manuell, ne das brauchst du, das
- 14:07brauchst du. Ach jetzt hab ich wieder das
- 14:09vergessen, ich kann ja noch gar nicht arbeiten oder was auch
- 14:11immer, sondern dass du halt wirklich sagst, so OK cool, ich
- 14:14hab hier n Skript, ich führ das aus und eigentlich.
- 14:17Ich sag mal im Normalfall zu 90% kannst du dann sofort loslegen,
- 14:21ne und das ist halt schon irgendwie cool und dann rattert
- 14:23das dann Kaffee. Holen und dann geht es.
- 14:25Los. Genau dann rattert das dann ne
- 14:26Kaffeelänge und dann ist super. Also das fand ich auf jeden Fall
- 14:28richtig cool. Ne, also über sowas kann man
- 14:30natürlich auch nachdenken, dass man halt noch diesen Schritt
- 14:33geht und sagt, was kann man denn automatisieren?
- 14:36Was ja auch irgendwo Infrastruktur am Ende ist.
- 14:38Ne ja und da kommen wir auch gleich zum nächsten riesen
- 14:42Pluspunkt diese Reproduzierbarkeit.
- 14:45Mal angenommen du hast so n. Onboarding Tag ja, also bist
- 14:49vielleicht in einem größeren Unternehmen.
- 14:51Es fangen jetzt ein paar neue Kollegen an, also ja meinetwegen
- 14:5455 neue Kollegen und Kolleginnen, ne, jetzt bist du
- 15:00der eine der sich super in dieser Entwicklungsumgebung
- 15:02auskennt und hast keine hast das nicht kodiert deine
- 15:06Infrastruktur ne also du hast das nicht automatisiert, wie
- 15:10würde das ablaufen? Du gehst zum ersten Kollegen.
- 15:13Richtest das alles ein, erklärst ihm das hier.
- 15:16Du brauchst das, du musst das installieren und so Weitergehst
- 15:19zum nächsten. Du kannst dich ja nicht
- 15:20aufteilen, das heißt, das muss ja sequentiell abgearbeitet
- 15:23werden. Ja, diese diese Einrichtung, und
- 15:26wenn du jetzt aber das ganze Infrastructure is code mäßig
- 15:29aufsetzt, kannst du einfach sagen hier Leute.
- 15:33Das Rebo zieht euch, das richtet euch alles ein und ihr seid am
- 15:36Start, wenn ihr fertig seid, können wir dann alle gemeinsam
- 15:39quasi über die nächsten Schritte reden.
- 15:41Also du kannst es halt parallelisieren, ne und
- 15:44konsistent halten, das heißt es wird bei allen Fingers crosst,
- 15:48aber in der Regel schon ne gleich eingerichtet sein am Ende
- 15:55ich mein Gut der bekanntlich sitzt der Fehler oft vorm PC,
- 15:58wer weiß was der eine oder andere neben dem mittlerweile
- 16:00noch macht, aber. Das ist trotzdem der riesen
- 16:04Pluspunkt dabei. Ne ja richtig und Konsistenz zum
- 16:07Beispiel auch gerade weil wir auch schon über Staging geredet
- 16:09haben. Es ist ja auch immer super wenn
- 16:11du ich ich weiß nicht ob man das, also ich hab es schon
- 16:15erlebt, dass du halt du hast irgendeine ne Umgebung, du setzt
- 16:17halt dann zum Beispiel Prott auf oder so oder QA oder ne meine
- 16:23Lieblingsumgebung nenn sie wie du möchtest und dann sagst du
- 16:26aber ja, aber zum Beispiel. Das funktioniert da nicht so wie
- 16:29da, weil da ist zum Beispiel Prot ist ganz anders
- 16:32konfiguriert als zum Beispiel dev.
- 16:34So also das ist ja wirklich, das ist ja was ganz anderes, und
- 16:36damit hast du dann aber auch schon wieder den Punkt, dass du
- 16:39ja sagst, okay, wie willst du denn auf Dev etwas testen, wenn
- 16:43Prot ganz ganz anders konfiguriert ist?
- 16:45Ne, und damit du halt eben nicht diese in in die Versuchung
- 16:49kommst zu sagen, ey ich möchte jetzt aber vielleicht, dass, das
- 16:52mache ich manuell mal ein bisschen so und das mache ich
- 16:54manuell ein bisschen so, dass du gar nicht erst da.
- 16:57In diese Falle tappen kannst. Ja.
- 16:59Hilft dir halt auch infrastructures Code.
- 17:02Ja, du kannst halt sagen, das ist meine Stage, so ist meine
- 17:04Stage aufgebaut und go ne jetzt mal unabhängig davon, dass du
- 17:08vielleicht irgendwie andere. Services auf anderen Stages
- 17:13wiederum ansprichst also externe Services.
- 17:16Ne, das ist sei mal dahingestellt ne, aber ich mein
- 17:18jetzt wirklich die Konfiguration deines Netzwerkes innerhalb der
- 17:22Cloud oder was auch immer ne also da es gibt so viel was man
- 17:25einstellen kann, was man theoretisch auch wirklich falsch
- 17:27einstellen kann und da ist es natürlich absolut wichtig, dass
- 17:32das wirklich auch immer gleich funktioniert.
- 17:36Ja, weil diese Überraschung, die du dann haben kannst, so
- 17:39komisch. Also bei mir hat es
- 17:40funktioniert, auf meiner Maschine läuft das ja, auf
- 17:43Server a läuft das, das sind somit die schlimmsten Aussagen
- 17:46die man tätigen kann, weil dann stehst du halt echt vor dem
- 17:48großen Unbekannten und denkst dir so was jetzt, also jetzt
- 17:53müssen wir erstmal rausfinden was hier los ist und dann weißt
- 17:56du halt zum Beispiel nicht mehr, dass Kollege XY ja vielleicht
- 17:59noch ein 2 Klicks manuell gemacht hat, irgendwas
- 18:02umgestellt hat. Das ist die Server 5 rechts
- 18:05hinten in der Ecke meinst du genau der böse Server 5 hinten
- 18:08rechts in der Ecke ist es wieder, der ist ja schon
- 18:10mehrfach hier im Podcast aufgetaucht, er ist immer der
- 18:14Übeltäter am Ende. Ja, ansonsten hatten wir auch
- 18:18schon über Versionierbarkeit geredet und finde ich auch
- 18:20Transparenz. Es spielt da ne wichtige Rolle,
- 18:23weil angenommen dieser Punkt, wir sind jetzt noch mal wieder
- 18:26in diesem Modus, wir konfigurieren irgendwas manuell
- 18:30so, dann hast du ja entweder die.
- 18:32Also entweder hast du den Punkt, dass du immer dann wirklich
- 18:35quasi so n Peer Review machen musst, dass noch einer dabei
- 18:38sitzt und man dann zusammen sozusagen verifiziert.
- 18:41OK, wir machen das jetzt so und so und so ne trotzdem nicht gut,
- 18:44wenn es manuell ist. Aber selbst wenn du das alleine
- 18:47machst und dann hinterher sagst du Pass auf, ich hab jetzt das
- 18:49und das so und so eingestellt, aber angenommen du hast keine
- 18:53Ahnung 10 manuelle Schritte gemacht, ne so, dann vergisst du
- 18:56halt vielleicht 2 davon, ne sind vielleicht sogar mehr und dann.
- 19:02Weiß ja gar nicht, also kannst du ja gar nicht dieses dieses
- 19:05ich sag ich nenn es jetzt einfach mal dieses Code review
- 19:07machen ne also wenn du Infrastruktur als Code hast,
- 19:09dann kannst du ja dein dein dein Infrastruktur über den Code
- 19:12anpassen und dann hinterher ganz normal mit Git einfach dieses
- 19:16div machen und sagen guck mal hier habe ich das verändert,
- 19:19hier habe ich das verändert ne also das heißt du kannst nicht
- 19:21nur nachvollziehen. Im Nachhinein, wenn vielleicht
- 19:24was schief geht oder wenn wenn es auch gut gegangen ist, was es
- 19:27für Änderungen gab, sondern du kannst auch super eine Art Code
- 19:30Review für die Infrastruktur machen und das ist halt auch.
- 19:34Ziemlich also eine ziemlich geile Sache, absolut.
- 19:39Und die Verantwortlichkeiten rücken ja auch mehr zusammen.
- 19:41Ich meine, wir reden ja hier in der Def Ops Reihe logischerweise
- 19:44über Def Ops und da geht es ja darum, dass du auch Defs und Ops
- 19:48quasi näher zusammenbringst und dass sie.
- 19:51Halt zusammenarbeiten ne und nicht sag ich mal die Developer
- 19:54das so Rüberreichen nach dem Motto und jetzt sorg dafür, dass
- 19:57es in die Welt kommt und das ist halt n riesen Punkt was das
- 20:01Ganze auch vereinfacht zu sagen wir wir machen das ganze oder
- 20:05nutzen Infrastructure is code ne weil du halt auch quasi sag ich
- 20:09mal an einer Codebasis an einem Fundament arbeiten kannst.
- 20:12Weil diese Skripte beispielsweise ja sehr oft auch
- 20:17mit in dem Projekt Abliegen, das heißt, beide haben ja Zugriff da
- 20:20drauf und können das zum Beispiel Reviewen oder abändern.
- 20:23Definitiv. Also beide Parteien, wenn man es
- 20:26jetzt noch mal getrennt. Betrachtet.
- 20:29Obwohl also beim es ist ja immer so ne Death und Ops so 2 Teams
- 20:33die nah zusammenarbeiten so in meinem Kopf ist das schon so
- 20:36richtig. Es ist halt so ein Team.
- 20:40Also weißt du, also du bist du hast Def Ops durchgespielt,
- 20:43quasi ein def Ops. Du bist ein def Ops.
- 20:46Ja genau das ist ja das Ziel, dann halt wirklich das
- 20:49zusammenzubringen, ja genau was auf jeden Fall.
- 20:53Noch n nächster Punkt ist der mir jetzt direkt einfallen würde
- 20:55wäre, dass man halt einfach auch schneller irgendwas
- 20:58bereitstellen kann. Ne ich meine ja absolut.
- 21:01Klar. Hatten wir auch schon so n
- 21:03bisschen drüber geredet. Einfach angenommen du sagst OK.
- 21:08Du brauchst eine neue Stage und ich hatte es auch schon mal
- 21:11einem alten Projekt. Da haben wir erstmal mit einer,
- 21:14ich glaube wir hatten einfach nur eine Sandbox Stage, weil wir
- 21:17nur gesagt haben okay, wir machen gerade ein MVP.
- 21:19Es gibt eigentlich nicht großartig Daten die irgendwie
- 21:23konsistent gehalten werden müssen, wir können die jederzeit
- 21:25weghauen, alles gar kein Problem, das heißt wir hatten
- 21:28einfach nur eine Sandbox Stage und haben einfach nur damit
- 21:30gearbeitet so und ich weiß aber weil wir mussten halt quasi alle
- 21:38so. Dieses diese, diese neue
- 21:40Technologie, die neue Cloud Technologie sozusagen uns in der
- 21:43ganzen Abteilung drauf drücken, damit man halt damit arbeiten
- 21:46konnte, weil das Halt so n Shit gab und da war es dann so, dass
- 21:51wir erstmal relativ viel ausprobiert haben, ne und dann
- 21:54irgendwann also erstmal so manuelle Testschritte gemacht
- 21:56haben um zu gucken OK, funktioniert das jetzt wirklich
- 21:59richtig wie man sich das vorstellt ne n bisschen damit
- 22:02rumgespielt mit dieser ich sag mal Oberfläche, dass man halt so
- 22:06einfach n Feeling dafür bekommen hat.
- 22:08Und dann hat man das Ganze irgendwann in diese
- 22:11infrastructures Code gegossen, damit man es halt einfach
- 22:14schnell hochfahren kann. Und dann war es aber irgendwann
- 22:16soweit, dass wir gesagt haben, OK, wir brauchen jetzt aber
- 22:18wirklich mal ne ne ne prod stage, ne prod so und.
- 22:23Da war es halt einfach super hilfreich, dass es halt einfach
- 22:26dieses Template gab, um zu sagen okay, wir fahren jetzt die also
- 22:29die die gleiche Infrastruktur noch mal hoch auf einer anderen
- 22:32Stage und nennen die Halt dann prod.
- 22:33So also das ist dann halt diese kleine andere Konfiguration hat
- 22:37einen anderen Namen, hat vielleicht wie gesagt andere
- 22:40Services die angesprochen werden, also beziehungsweise der
- 22:42gleiche Service auf einer anderen Stage wiederum aber
- 22:46hätten wir das manuell gemacht. Ja, dann hätten wir
- 22:49wahrscheinlich deinen ganzen Tag dran gesessen und so hat es halt
- 22:52vielleicht ja, lassen wir jetzt nicht lügen, ne halbe Stunde
- 22:55gedauert, bis wirklich die Infrastruktur initialisiert und
- 22:57hochgefahren wurde, ne? Ja.
- 23:00Also ne krasse, das ist. Natürlich n Riesen genau ist n
- 23:03riesen Unterschied und gleichzeitig halt auch sicherer.
- 23:05Ne also wenn du jetzt das Ganze noch mal manuell aufziehst wird
- 23:08auf jeden Fall was schief gehen, da kannst du eigentlich von
- 23:11ausgehen und genauso ist ja die Frage wenn du jetzt zum Beispiel
- 23:15sagst. Wir brauchen eine neue Stage und
- 23:17wir machen vielleicht kleine Anpassung, weil die Stage ein
- 23:19bisschen anders ist, ne oder eine andere Konfiguration und da
- 23:23geht was schief, dann kannst du es halt auch immer per Rollback
- 23:25zurücksetzen und das genauso schnell, aber wie auch vorhin
- 23:29meintest genau, weil du hattest ja vorhin gesagt, angenommen der
- 23:33Server fährt dann nicht mehr hoch, ja was machst du dann?
- 23:36Das kann halt wirklich Geld kosten, dem Unternehmen ne so
- 23:39ein Server Ausfall beziehungsweise ein Service
- 23:41Ausfall, dass du nicht mehr erreichbar bist.
- 23:44Dann ist es natürlich goldwert zu sagen, ey, wir machen jetzt
- 23:47einfach erstmal n rollback und gehen auf den alten Stand zurück
- 23:51und der Server ist aber n paar Minuten wieder am Start oder
- 23:54vielleicht maximal ne halbe Dreiviertelstunde, je nachdem
- 23:57wie wie groß die Pipeline ist, ne?
- 23:59Da hatte ich auch mal n ganz lustigen Fall ne, weil das ist
- 24:02nämlich wirklich auch interessant.
- 24:03Rollback OK möglich, aber was auch absolut n valider Punkt
- 24:08sein kann ist hatte ich auch schon mal.
- 24:10Die Umgebung war wirklich kaputt, ne?
- 24:13Und wir wussten gar nicht mehr, OK, Mist, was ist denn jetzt
- 24:16los? Und dann haben wir einfach die
- 24:17Komplettumgebung abgeräumt, also wirklich gesagt, komm, schmeiß
- 24:20das alles weg und dadurch, dass man es halt nicht manuell wieder
- 24:23als klicki, klicki, bunti und alles ne aufbauen musste,
- 24:26sondern einfach wieder das Template Reinschießt.
- 24:29Wurde die einmal wieder aufgebaut?
- 24:30Die Umgebung, alles war wieder gut so, also dann halt von
- 24:33Rollback von der vorherigen Version definitiv, aber dass man
- 24:36wirklich sagt, OK ich schmeiß auch einfach alles weg und bau
- 24:38es noch mal neu auf vom vom Scratch so teilweise deutlich
- 24:42schneller, als dass du dann noch mal sagst OK, also manchmal, das
- 24:46ist wirklich auch das Wichtige bei Infrastruktur möchte ich
- 24:48auch noch mal schon mal direkt spoilern, du kannst dich da auch
- 24:53wirklich. In eine Einbahnstraße
- 24:55manövrieren, dass du sagst, wenn du das jetzt konfiguriert hast
- 24:58und das einmal hoch, also live geschaltet hast, diese
- 25:01Infrastruktur, dann kommst du da nicht mehr zurück und deswegen
- 25:05ist es manchmal auch notwendig zu sagen, einmal komplett
- 25:07abräumen, wieder neu hochfahren und diese schnelle
- 25:11Bereitstellung dann wieder. Das ist auch richtig essentiell
- 25:13und das geht auch nur mit infrastructures Code.
- 25:16Ja. Und wenn wir auch bei dem Thema
- 25:20Ausfälle sind oder dass halt irgendwas schief läuft, kann man
- 25:24natürlich auch ganz klar sagen, dass du mit Infrastructure is
- 25:27Code auch die Möglichkeit hast gewisse Sicherheiten einzubauen.
- 25:31Ne, also beispielsweise Security Policies, Checks, das ist ja
- 25:36alles möglich, dass du sagen kannst, beispielsweise weil ich
- 25:40ja vorhin meinte jemand committed was ne Änderung zum
- 25:44Beispiel auf dem Frontend und geht jetzt zu dem Dev ops.
- 25:48Mitarbeiter und sagt hier manuell los geht es.
- 25:50Mach das mal alles ne, dann kann der das natürlich auch checken,
- 25:53vergisst aber vielleicht was oder oder macht es nicht
- 25:56gründlich genug, weil er es schon fünfmal am Tag gemacht hat
- 25:58und genauso kannst du in deine in deinem Code in deinen
- 26:02Skripten genau so ne Security Aspekte auch einbauen.
- 26:05Ja die denn zum Beispiel schon beim Commit gecheckt werden und
- 26:09das sind halt auch Riesenpunkte die dafür sprechen einfach es so
- 26:13umzusetzen. Oder die das schon zur Pflicht
- 26:16machen. Muss man einfach so sagen, ja,
- 26:18definitiv, also es ist ja auch zum Beispiel wenn du sagst, OK,
- 26:21wir haben ne Datenbank und die muss jetzt auf einmal
- 26:23verschlüsselt werden, ne, dann kannst du im Normalfall oder in
- 26:28gängigen sag ich jetzt mal Infrastrukturen die du halt
- 26:32nutzen kannst in der Cloud, wenn du so n infrastructures Code
- 26:35nutzen kannst, hast du halt die Möglichkeit denn sowas zu sagen
- 26:38wie ja hier bitte einmal Datenbank XY verschlüsseln mit.
- 26:43Dem und dem Algorithmus, was auch immer ne.
- 26:45Also da gibt es ja dann verschiedene Konfigurationen was
- 26:47man nehmen kann und das ist aber dann im Endeffekt eigentlich nur
- 26:50eine Zeile die du hinzufügst. Und im Endeffekt hast du, kannst
- 26:56du diese Infrastruktur sozusagen neu deployen und es funktioniert
- 26:58dann auch wieder für alle Stages.
- 27:00Du musst also jetzt auch nicht wieder hingehen und sagen okay,
- 27:01ich habe 5 stages, ich gehe jetzt da rein, klicke hier ja
- 27:04bitte einmal die Datenbank hier verschlüsseln okay dann hier
- 27:08nächste Stage, hier wieder Datenbank wieder verschlüsseln
- 27:10und so weiter. Es kann halt auch durchaus sein,
- 27:13dass du zum Beispiel für eine eigene Stage auch wieder
- 27:15sozusagen einen eigenen Account anlegst.
- 27:17Das heißt, im Worst case musst du dich dann, wenn du es manuell
- 27:19machst, dort einloggen, ausloggen, wieder einloggen,
- 27:22dahin manövrieren, ne. Also es ist halt dann echt ein
- 27:26bisschen was zu tun und so hast du das halt einfach nur mit
- 27:28einer Zeile und dann fire und ne, die sozusagen deployen in
- 27:33Anführungsstrichen, dann ist fertig, dann wird deine
- 27:34Infrastruktur eingerichtet, das ist halt cool, ein guter Punkt.
- 27:41Genau. Also das ist auf jeden Fall.
- 27:42Es ist ja auch n bisschen so Richtung Compliance, ne, dass du
- 27:45halt auch nachweislich, also es ist halt niedergeschrieben als
- 27:49Code, was passiert ne und du kannst es halt nachweisen und
- 27:52wenn es wie Versioniert ist, kannst du auch noch zeigen, wie
- 27:54es sich über die Iteration weiterentwickelt hat.
- 27:57Ne und das sind je nachdem in welchem Projekt man arbeitet
- 28:00halt unfassbar wichtige Punkte auch Richtung The Tracability
- 28:05zum Beispiel. Ja das spielt ja da auch ne
- 28:06Rolle. Aber kommen wir mal noch n
- 28:10bisschen zu der Def Ops Kultur zurück.
- 28:13Da haben wir auch quasi die Reihe mit eröffnet so n bisschen
- 28:16ne diese ganze der ganze kulturelle Gedanke dahinter und
- 28:19da würde ich noch mal gerne aufgreifen, dass wir ganz
- 28:22ursprünglich am Anfang vor Monaten quasi gesagt hatten,
- 28:27dass es ja in dieser Def Ops Kultur auch darum geht
- 28:31Wissensilos abzubauen und da muss man ja sagen, dass
- 28:35Infrastructure escode. N super Mittel dafür ist, weil
- 28:39du halt jetzt nicht mehr den obs Mitarbeiter hast.
- 28:43Also jetzt ohne def. Der jetzt in seinem Büro im
- 28:46Dunkeln da die Server einrichtet und alles dafür sorgt oder alles
- 28:50dafür tut, dass das irgendwie funktioniert, aber keiner weiß
- 28:53was er da eigentlich macht, weil das wäre ja n riesen Wissenssilo
- 28:58am Ende was denn aufgebaut wurde, weil wenn diese Person
- 29:01kündigt im Urlaub ist oder was auch immer.
- 29:04Da halt nichts mehr passiert, wenn dann da Fehler auftauchen,
- 29:06dann weiß keiner was los ist. Und mit Infrastructure is Code
- 29:11kannst du halt auch die Entwickler mit ins Boot holen
- 29:14und dass sie quasi ihre eigene Infrastruktur mitgestalten
- 29:17können. Mit Coden können, dass sich.
- 29:21Die Ops Leute aber, die n bisschen mehr Richtung Ops
- 29:24gehen, ne das ist ja dann auch so n bisschen so Gewichtung sag
- 29:26ich mal bei dev ops sich halt auf andere Aspekte konzentrieren
- 29:31können oder mehr fokussieren können, wie zum Beispiel was
- 29:34hatten wir in der letzten Folge das Monitoring zum Beispiel oder
- 29:37zum Beispiel wie du vorhin meintest Skalierung ne wie kann
- 29:40ich das ganze jetzt auf mehreren Servern ausräumen, wie kann ich
- 29:43das gut skalieren das Ganze. Und da kann man halt sagen, dass
- 29:48so ein so ein Code, diese Infrastructure is code, so ein
- 29:52gemeinsamer Nenner für alle Entwickler sein kann und du
- 29:56dadurch noch enger zusammenarbeiten kannst.
- 29:59Ja, richtig. Und also ist auf jeden Fall ein
- 30:02sehr wichtiger Punkt, also diese, diese, gerade diese
- 30:04Kultur, die dahinter steht, finde ich, ist auf jeden Fall
- 30:09ein wichtiger Gedanke, den sollte man auf jeden Fall auch
- 30:11nicht außen vor lassen und. Weil wir ja vorhin auch noch mal
- 30:15bei CICD Pipelines waren. Ne, also das hat, da hatten wir
- 30:18ja auch gerade über CI und CD auch ne eigene Folge gemacht,
- 30:24wollte ich jetzt noch einmal kurz aufgreifen, weil ich finde
- 30:27es eigentlich irgendwie ganz spannend, dass man ja wirklich
- 30:30sagen kann, wenn du kein Infrastructure als Code hast,
- 30:33dann kannst du auch nicht wirklich continuous deliver ne,
- 30:38weil. Wie gesagt, wenn du diese
- 30:41Infrastruktur als das ist n zungenbrecher, ja wenn du das
- 30:46nicht hast, ne so, dann musst du ja wie gesagt du machst alles
- 30:49manuell, du legst keine Ahnung, du legst n Server an, du änderst
- 30:53deine sicherheitsgruppen, du konfigurierst dein Netzwerk,
- 30:56frag mich noch ne, also du klickst dich da durch und hoffst
- 30:59ja eigentlich, dass es funktioniert, vielleicht bist du
- 31:01routiniert und kriegst das irgendwie hin, ich find es aber
- 31:03irgendwie noch mal gut, auch noch mal zu betonen, dass ne
- 31:07Pipeline. Ne, die ja auch sehr, sehr
- 31:10essentiell ist bei der ganzen Automatisierung von der
- 31:13Bereitstellung von Software und dem zufolge auch von DEV ops,
- 31:17dass eigentlich eine Pipeline da endet, wo die manuelle
- 31:20Infrastruktur oder die Konfiguration der manuellen
- 31:23Infrastruktur beginnt. Ne, weil egal wo du zum Beispiel
- 31:27irgendwas manuell machst. Ne, du willst jetzt zum Beispiel
- 31:30keine Ahnung, du willst willst irgendwie du willst irgendwie
- 31:32Tests laufen lassen so und du musst da irgendwie manuell dich
- 31:35durchklicken. Dann hast du ja im Endeffekt die
- 31:38ganze Automatisierung, die du mit Def Ops erreichen willst,
- 31:41stillgelegt. An der Stelle ne und damit endet
- 31:44das Halt und alles was du sag ich jetzt mal manuell machen
- 31:48musst, bricht ja im Endeffekt dann so n bisschen diesen diesen
- 31:53Pipeline Gedanken von es wird Code wird eingecheckt sozusagen
- 31:57bis hinzu Code wird deployed ne und klar wie gesagt wir hatten
- 32:01ja auch über bei CD über Delivery und Deployment geredet,
- 32:05da gibt es vielleicht. Unter Umständen die Möglichkeit,
- 32:09dass man da einen kleinen manuellen Step machen muss, ne?
- 32:13Der ja aber gewollt ist. Genau in dem Fall noch.
- 32:16Aber ich finde das noch mal so, als als Gedankengang noch mal
- 32:20wichtig zu sagen, Dev OPS ist ja steht ja für Automatisierung,
- 32:23für Geschwindigkeit und wenn du anfängst, dann wieder irgendwas
- 32:27manuell zu machen, dann funktioniert es halt nicht und
- 32:30damit brichst du ja zum Beispiel auch deine ganze CICD Pipeline,
- 32:33beispielsweise ne. Bis auf diesen einen.
- 32:35Ja, das. Ist das ist ein mega guter
- 32:37Punkt, das genauso zu betrachten, weil sobald ich
- 32:40wirklich manuell was machen muss, habe ich halt meine
- 32:43Automatisierung verloren. Also es ist ja logischerweise
- 32:47ne, aber es ist wirklich wichtig, dass mal genauso
- 32:49anzusprechen, wenn ich nicht sage Lauf los Pipeline so mach
- 32:56das was ich was ich möchte und am Ende ist eine neue Version,
- 33:00zum Beispiel die Ploid, sondern da irgendwelche Schritte
- 33:02dazwischen sind. Dann bau ich mir
- 33:04fehleranfälligkeiten rein und hole mir Probleme rein wie ey.
- 33:08Aber vorhin hat das noch funktioniert.
- 33:10Ja, was hast du denn vorhin gemacht?
- 33:12Ja genau das gleiche Hallo, warum sollte ich was anderes
- 33:15gemacht haben, weißt du und dann ah OK ich hab was anderes
- 33:18gemacht und genau das verhinderst du damit, das muss
- 33:22halt wirklich vollautomatisiert durchlaufen.
- 33:24Und das finde ich wirklich eine coole Sache zu sagen okay,
- 33:26sobald ich irgendwie manuell eingreifen muss, habe ich quasi
- 33:29diesen Pipeline gedankenverloren.
- 33:31Ja, also gerade auch das vielleicht noch mal so als
- 33:35Beispiel auf den Punkt zu bringen.
- 33:36Du hast vielleicht eine Pipeline, die funktioniert bis
- 33:38bis auf Dev zum Beispiel oder Prot du willst aber zum Beispiel
- 33:41noch vor Prot noch mal eine Dev Stage dazu bauen, das kannst du
- 33:44vielleicht irgendwie manuell dir dann die Dev Stage aufbauen und
- 33:48die Pipeline läuft dann auf einmal über die Dev stage, weil
- 33:50du die mit einbindet. Ne, aber dieser manuelle Schritt
- 33:54dann diese Stage also aufzubauen, dazwischen zu
- 33:57schalten, das Haut dir ja im Endeffekt diesen diesen
- 34:01Automatisierungsgedanken dann raus ne, also da da ist dann
- 34:04sozusagen dieser Bruch drin, den du ja im Endeffekt über die
- 34:07Infrastruktur as Code am Ende sozusagen dann gewährleistest.
- 34:12Dadurch ne und ich find auch immer weil das ich was, wo man
- 34:17ganz oft vielleicht irgendwie auch mal gerne mal hinkommt mit
- 34:20dem Gedankengang ist und. Das funktioniert in dem und dem
- 34:23Kontext nicht und ich finde immer, dass es trotzdem, egal in
- 34:27welchem Moment es gut ist zu sagen, wie funktioniert es, was
- 34:31ist mein Zielbild, mein wunschbild, wo möchte ich
- 34:34eigentlich wirklich gerne hin und wie kann ich das erreichen,
- 34:38weil oftmals kommt man dann, vielleicht kenn ich auch von
- 34:41mir, dass man halt einfach sagt, so ja, aber das geht doch gar
- 34:43nicht so OK, denken wir mal noch mal anders und sagen, OK, wie
- 34:47können wir das denn erreichen? Ne, weil oftmals hat man dann
- 34:50sowas wie. Ja, aber ich habe gar keinen,
- 34:53weiß nicht AWS, Azure oder was auch immer, das darf ich gar
- 34:55nicht nutzen. Okay gut heißt ja nicht, dass
- 34:59es, dass es nicht geht. Wie geht es ja super.
- 35:06Wichtiger Punkt jedes Projekt ist anders und du kommst
- 35:10vielleicht aus anderen Branchen. Andere Technologie, dass du halt
- 35:15nicht so diesen 0 815, aber nicht negativ gemeint, also
- 35:19wirklich so diesen Standard. Pipeline weg gehen kannst, so
- 35:23wie es quasi neben Lehrbuch steht.
- 35:25Aber es ist auch irgendwo eine Mindset frage.
- 35:27Def Ops ist eine Mindset Frage und das hast du gerade schon
- 35:30wirklich schön gesagt, weil nur weil ich vielleicht nicht 100%
- 35:34es gleich machen kann, heißt es nicht, dass ich nicht 90% davon
- 35:37doch umsetzen könnte oder zumindestens mir eine kleine
- 35:41Pipeline aufbauen kann und da hast du ja schon viel mehr
- 35:44gewonnen als es gar nicht zu haben am Ende ja.
- 35:47Bin ich auf jeden Fall ganz bei dir.
- 35:48Also da muss man halt wirklich offen rangehen und vor allen
- 35:51Dingen lösungsorientiert, das ist halt super.
- 35:53Entscheidend dabei, aber dann lass uns doch, das ist n guter
- 35:57Punkt mal so n bisschen über Best practices reden wie ich
- 36:00denn dahin komme. Ja, also ich meine gut, wenn du
- 36:03jetzt zum Beispiel sagst, wir, also wir haben ja ne
- 36:05infrastructures Code ist Code, was hilft da auf jeden Fall zum
- 36:09Beispiel schon mal Version control, zum Beispiel sowas wie
- 36:12Git oder so einfach das ganze mit Versionieren.
- 36:15Also du hast deine. Software Anwendung, die wird
- 36:17Versioniert ist ja ne ganz klare Sache.
- 36:19Genauso ist es dann halt auch ne klare Sache zu sagen, OK wir
- 36:23versionieren halt eben auch unsere unsere Infrastruktur mit
- 36:25ne. Und da kann man jetzt auch
- 36:30sagen, wenn ich es versioniere und das Ganze wie Code betrachte
- 36:32und so sollte ich es auch betrachten, gelten natürlich
- 36:35auch Coding Guidelines, sag ich mal, aber nicht jetzt.
- 36:41Im Prinzip wie formatiere ich meinen Code ja OKOK, aber es ist
- 36:44ja wahrscheinlich ne andere Skriptsprache als vielleicht
- 36:47deine eigentliche Programmiersprache des Projekts,
- 36:48keine Frage, aber was ich damit meine ist behandel es wie Code
- 36:53das heißt Don't repeat yourself ne mach nicht so n riesen Blog
- 36:57als Skript wo alles irgendwie 534 1000 mal passiert sondern
- 37:02mach es modular. Zum Beispiel hab ich denn Blöcke
- 37:05da drin ja also so Abschnitte meiner Infrastruktur die ich
- 37:08wieder verwenden kann für eine Stay also.
- 37:11Ja, zum Beispiel. Und dass du halt einfach das
- 37:14sauber hältst, verständlich hältst und auch wartbar und
- 37:18skalierbar, also diese ganz normalen Ansätze, die ich bei
- 37:21meinem Code auch haben. Möchte ja richtig don't you Pete
- 37:26yourself. Gutes Stichwort haben wir auch
- 37:28mal eine Folge drüber gemacht, genau das kann man hier auch
- 37:31anwenden. Und ansonsten ne absolute Best
- 37:37Practice und das haben wir leider auch schon anders erlebt,
- 37:39oder? Das sind so typische Fails, die
- 37:42einem begegnen, wo denn alle so die Hände über dem Kopf
- 37:45zusammenschlagen. Wie kann er nur, wie kann sowas
- 37:48nur passieren. Oh mein Gott, das ist ja so
- 37:49peinlich, dass das passiert, Stichwort Secrets in der
- 37:54Pipeline credentials was auch immer.
- 37:57Dass die geleakt werden, dass die mit eingecheckt werden, dass
- 38:00man auf einmal sieht, OK, der hat jetzt ein Secret mit
- 38:02eingecheckt, sein Token, nur ist alles hin, Leute ernsthaft
- 38:08achtet da drauf, es ist verdammt wichtig das nicht zu tun und es
- 38:11kann passieren und da können auch Checks helfen, aber das ist
- 38:16natürlich Best Practice, ganz klar diese Infrastruktur, den
- 38:19Code von den Secrets zu trennen. Ja, was mir noch einfällt ist,
- 38:24was zumindest auch meine Erfahrung widerspiegelt, dass.
- 38:28Dass es gut ist, wenn du eine Anwendung, also eine Anwendung,
- 38:33darf vom Code her niemals wissen.
- 38:36Im besten Fall, welche Stage es gerade ist.
- 38:39Also wenn du jetzt zum Beispiel als kleines Beispiel, wenn du
- 38:42sagst, Du verwendest zum Beispiel für die Prot.
- 38:44Stage, verwendest du zum Beispiel einen den Service XY
- 38:48auch auf der Prot Stage so und aber du hast zum Beispiel noch
- 38:52eine Dev Stage und dieser Service XY hat auch eine Dev
- 38:55Stage, einfach nur um sozusagen die.
- 38:58Eben halt den Traffic von bei irgendwelchen Tests und so von
- 39:01der Prod. Stage auch fernzuhalten, so dass
- 39:04du dann aber zum Beispiel nicht sagst in deiner Anwendung, dass
- 39:08irgendwo in deiner Anwendung zum Beispiel, dass die URL von der
- 39:11Prod Stage drin ist und die URL von der von der DEV Stage von
- 39:14diesem x Service XY, sondern dass du das sozusagen auf der
- 39:19Infrastruktur Ebene, also Infrastructure als Code Ebene
- 39:22als Parameter reingibst, das heißt diese.
- 39:25Du gibst dann im Endeffekt du hast nicht in deiner Software
- 39:30hier URL oder Rest URL zum zur, zur pro Stage und zur Death
- 39:35Stage ne, also du hast nicht 2 ur LS drin, sondern die
- 39:37Anwendung weiß nur wenn ich starte dann bin ich auf
- 39:41irgendeiner Stage und gegen irgendeine URL wenn ich diesen
- 39:44Service anspreche und diese URL kriege ich von außen weil das
- 39:48skaliert tausendmal besser also angenommen du willst eine neue
- 39:51Stage hochfahren und sagst okay die Stage ist jetzt aber zum
- 39:54Beispiel QA und. Und es gibt eine QR URL.
- 39:58Dann ist es ja absolut wichtig, dann zu wissen, OK, wo gehe ich
- 40:02dann hin, klar, aber du musst jetzt nicht deinen Code
- 40:04anfassen, du musst nur von außen sagen, das ist eine neue Stage
- 40:08und die geht zum Beispiel bei Service XY gegen diese URL und
- 40:12das ist an der Stelle wichtig, weil du dann sozusagen nur deine
- 40:16Infrastruktur anpassen musst, nicht aber deine Software.
- 40:20Weil wenn ne, wenn du diese ur LS in deinem Code drin hättest,
- 40:22müsstest du ja sozusagen noch diese neue ur l auch ebenso da
- 40:26hinzufügen und ne neue Stage aufsetzen und das sind einfach
- 40:30so n paar Sachen. Ne Stage sollte niemals selber
- 40:33wissen im Vorfeld oder Informationen über verschiedene
- 40:37Stages drin haben, das skaliert ja auch gar nicht.
- 40:39Hast du 10 stages hast du auf einmal 10 URLS drin oder was?
- 40:41Also ne. Ja, und da Stichwort
- 40:44Skalierbarkeit ist da halt dann auch wirklich der entscheidende
- 40:47Faktor. Am Ende.
- 40:48Genau. Was haben wir denn noch so als
- 40:51Best Practice? Natürlich testen oder
- 40:56automatisierte Checks haben wir jetzt mehrfach gesagt, noch mal
- 40:59angemerkt, weil es wirklich wichtig ist.
- 41:00Du kannst halt auch Infrastructure ist Code abtesten
- 41:04du kannst testen ob alles passt. Du kannst Checks in der Pipeline
- 41:08laufen lassen und das sollte man auch tun, ist halt vielleicht
- 41:12noch mal so ein Thema für sich, da würde ich jetzt gar nicht zu
- 41:14tief darauf eingehen, weil das hat auch ein Riesenfeld, ist
- 41:16also auch wieder hier und. Die Anmerkung, Falls Liebe
- 41:20zuhören, Liebe zuhören das Thema Dich interessiert, lass es uns
- 41:22wissen, machen wir gerne noch ne def Ops folge zu dem Thema, aber
- 41:26würde ich jetzt hier erstmal nicht weiter vertiefen.
- 41:29Richtig, aber, und da können wir noch mal von den Best practices,
- 41:33ne, was soll man machen auch noch mal zu den Fallstricken
- 41:35kommen und Herausforderungen, sowas gibt es ja auch immer,
- 41:37kommt man ja nicht drum rum ne ist richtig.
- 41:42Weil ich sag mal, infrastructures Code ist ja
- 41:44jetzt auch nicht so rulesam all so nach dem Motto, sondern man
- 41:49muss natürlich immer gucken, was man denn wo man sich gerade
- 41:53bewegt. Als Beispiel, wenn du jetzt
- 41:55wirklich sehr, sehr einfache Tasks hast, vielleicht mal kurz
- 41:58was ausprobierst, dann musst du jetzt nicht das ganze
- 42:00Infrastruktur Esco wie ich auch meinte, ne als wir damals das
- 42:05die das angefangen haben zum Beispiel mit dem neuen Cloud
- 42:07Service zu arbeiten. Ne, in meinem alten Job
- 42:10sozusagen, wo ich mal gearbeitet hab.
- 42:13Da probiert man sich erstmal aus erstmal so ne Art Proof of
- 42:16Concept schaffen und dann kann man das ganze sozusagen
- 42:19hinterher vielleicht noch mal infrastoctors Code gießen, aber
- 42:22vielleicht ist der Task auch einfach nicht komplex genug in
- 42:26Anführungsstrichen. Ne ja großer Punkt, weil es
- 42:34einfach n riesen Overhead wär, muss man ganz klar so sagen,
- 42:37denn einfach an der Stelle und. Was natürlich auch ein
- 42:40Fallstrick sein kann, ist ein Mix aus Infrastructure is code.
- 42:46Ja, also dass du quasi deine deine ganze Infrastruktur
- 42:50kodiert, vorliegen hast und gleichzeitig eine Art Drift
- 42:53stattfindet, weil vielleicht manuelle Änderungen noch gemacht
- 42:55werden, falls das zulässig ist. Das kann passieren und du
- 42:59einfach irgendwie in so einen undefinierten Zustand kommst.
- 43:04Auch schon erlebt. Das ist ganz schwierig, das ist,
- 43:07da muss man auch wirklich aufpassen.
- 43:09Gerade also man kommt relativ schnell mal so in die Versuchung
- 43:13zu sagen, ah, ich pass auf, ich mach, ich teste das mal kurz
- 43:16manuell, ich mach ich, ich gieß das jetzt nicht in
- 43:18infrastructures Code, sondern ich probier es einmal kurz aus,
- 43:21dann wird das, dann macht man das und dann stellt man es aber
- 43:24nicht zurück, weil man es halt, man ist abgelenkt und vergisst
- 43:29es und dann ist auf einmal irgendwie und du denkst dir, so
- 43:30was ist denn hier passiert, keiner weiß mehr was los ist.
- 43:33Völlige Panik, das ist auf jeden Fall auch sehr wichtig.
- 43:38Was ich auch schon mal hatte, da muss man auch ein bisschen
- 43:42aufpassen manchmal, wenn du zum Beispiel.
- 43:44Manchmal hat man Momente, wo du so gewisse Schritte brauchst,
- 43:49dass du sagst, okay, du willst deine Infrastruktur aufbauen,
- 43:53brauchst aber bestimmte Secrets zum Beispiel, und diese Secrets
- 43:57müssen aber in einem Secret Manager in deiner Infrastruktur,
- 44:02in einer Cloud Infrastruktur zum Beispiel liegen, so.
- 44:06Und dann ist halt die Frage ja gut, aber dein Secret Manager
- 44:09gehört ja eigentlich zu deiner Infrastruktur.
- 44:11Also du kannst ja sozusagen den Infrastrukturen theoretisch
- 44:13nicht aufbauen, bevor du nicht alle Secrets hast.
- 44:16Und deine Infrastruktur wird nur aufgebaut, wenn also dein
- 44:19Secrets Manager kommt nur mit der Infrastruktur.
- 44:21So na das Henna iphone. Genau.
- 44:24Also das sind manchmal auch so, ich sag mal vielleicht
- 44:26Fallstricke, wo man sich immer noch mal n bisschen überlegen
- 44:28muss. Kann es denn vielleicht sein,
- 44:30dass du deine Infrastruktur in 2 Steps aufbauen musst, dass du
- 44:32sagst, OK, erstmal step 1, du? Ne erstellst den Secrets
- 44:37Manager, dann legst du deine Secrets an die du brauchst und
- 44:40dann kannst du den Rest sozusagen machen.
- 44:43Also sowas hatte ich auch schon ne.
- 44:45Ja, also man muss ganz klar sagen, so ne Pipeline oder so ne
- 44:51ganze Infrastruktur kann halt unglaublich komplex werden und
- 44:55diese dieser hohe Grad an Komplexität.
- 44:58Sorgt meistens für viele Abhängigkeiten.
- 45:00Versteckte Abhängigkeiten, die auf den ersten Blick dann gar
- 45:03nicht mehr so ersichtlich sind, obwohl es da natürlich hilft,
- 45:05wieder sauberen Code zu haben, der quasi transparent ist.
- 45:10Aber das bringt natürlich einfach Probleme mit sich.
- 45:13Und jetzt wo du es angesprochen hast, so diese 2 Steps, aha, das
- 45:16muss ich machen. Nee, ich muss erst das machen,
- 45:18das zeigt ja auch, dass man ne gewisse Lernkurve benötigt.
- 45:24Ja, also. Es kommt in dem Moment, wenn ich
- 45:27sage, ich möchte mich mit Death Ops beschäftigen, kommt ne
- 45:29riesen Tool Landschaft auf einen zu, ne was alles möglich ist.
- 45:33Es gibt 1000 verschiedene Möglichkeiten sowas umzusetzen.
- 45:37Das heißt du hast halt so n so n Tooling Overhead der erstmal
- 45:41bewältigt werden muss und die Lernkurve halt auch gemeistert
- 45:44werden muss. Das muss man ja auch fairerweise
- 45:46sagen, es ist ja nicht so. Infrastructure is Code, habe ich
- 45:49jetzt gehört. Die Folge vielen Dank ihr
- 45:52beiden, ich leg jetzt los und ich mach das heute Abend ist
- 45:55fertig, also wenn dann Chapeau wenn man sich vorher nie damit
- 45:58beschäftigt hat. Also man muss halt schon
- 46:00wirklich bisschen Zeit und Hirnschmalz da reinstecken, aber
- 46:06wie gesagt es lohnt sich am Ende sehr sehr.
- 46:08Dolle, selbst wenn du von einem Cloud Service zum Beispiel auf
- 46:10den anderen Umsteigst ne wie gesagt das ist das was mir halt
- 46:13in der Vergangenheit passiert ist.
- 46:15Und das hat dann ja wirklich für alle gegolten.
- 46:17Und dann hattest du auf einmal wirklich, wir wussten OK, in x
- 46:23Monaten in so einem halben Jahr oder so müssen wir wirklich
- 46:26komplett alles, alle Anwendungen, die wir in unserer
- 46:29Abteilung quasi entwickeln, die mussten umgestellt werden und
- 46:33dann denkst du dir so, OK, das wird richtig krass, weil gefühlt
- 46:36keiner hier oder die wenigsten haben irgendwie ne Erfahrung mit
- 46:40dem neuen Cloud Dienst und dann denkst du dir so OK dann.
- 46:43Da musst du jetzt aber wirklich erstmal einen Gewissen, sagen
- 46:47wir mal, eine gewisse Lernkurve an den Start bringen, damit du
- 46:50es im Endeffekt hinterher händeln kannst.
- 46:52Und dass es auch wirklich funktioniert.
- 46:55Also es war auf jeden Fall keine einfache Aufgabe, weil man
- 46:58wirklich es ist komplex wie du meintest.
- 47:01Ja, kommt natürlich auf den Cloud Service drauf an.
- 47:05Ja, aber wenn wir jetzt zum Beispiel Edger oder Abs nehmen,
- 47:09das ist das ist, das ist gigantisch.
- 47:12Sich damit auseinanderzusetzen, richtig, ist einfach auch so,
- 47:16ja. Hast du noch was?
- 47:20Nee, magst du noch n Fazit ziehen zur Folge?
- 47:23Ja, also cool Infrastructure is code ist ne coole Sache, coole
- 47:29Sache, Daumen hoch ja nee also. Ich würde mal sagen, wenn man
- 47:33wirklich sagt, OK, ich mein es ernst mit def Ops und möchte in
- 47:37diesem Bereich eintauchen und da mitarbeiten, dann führt halt an
- 47:39infrastructures Code kein Weg vorbei.
- 47:42Ich würde sogar sagen generell eigentlich nicht mehr, also wenn
- 47:46man jetzt sag ich jetzt mal in diesem dabei ist
- 47:49Softwareentwicklung zu lernen, wenn man da gerade eintaucht
- 47:53oder vielleicht früher also ne in in einem frühen Stadium dabei
- 47:56ist, dann kann man jetzt auf jeden Fall schon wissen das
- 47:59kommt auf einen zu ne. Vielleicht noch nicht direkt,
- 48:02aber es wird auf jeden Fall kommen und das ist eigentlich
- 48:06relativ fix, dass man sich irgendwann damit beschäftigt und
- 48:10es geht jetzt auch nicht genau um die einzelnen Tools, also ist
- 48:13es jetzt diese Cloud oder der Cloud Service oder frag mich
- 48:17nicht mehr, also diese darum geht es nicht, sondern es geht
- 48:20wirklich darum auch die Prinzipien dann zu
- 48:22verinnerlichen, also die Automatisierung, dass man damit
- 48:25super automatisieren kann, dass man damit eine super gute.
- 48:29Transparenz schaffen kann über seine Infrastruktur, die man
- 48:32aufbaut, und dass es natürlich unglaublich effizient ist.
- 48:36Und was natürlich immer wichtig ist, nicht gleich
- 48:40mammutprojekte. Nehmen, klein anfangen, aber
- 48:42wichtig ist irgendwann einfach wirklich mal anzufangen, damit,
- 48:45sich irgendwann damit zu beschäftigen.
- 48:48Genau, ja, schön zusammengefasst habe ich eigentlich auch gar
- 48:54nichts mehr hinzuzufügen. Wie gesagt, der letzte Punkt ist
- 48:56wichtig, auch wenn die. Eine steile also, auch wenn
- 49:01einem quasi dieser Overhead erstmal gegenüber steht zu
- 49:04sagen, wo fange ich jetzt an, ich muss jetzt irgendwie mich
- 49:06für Tools entscheiden. Es gibt natürlich auch, das ist
- 49:09ja nichts. Neues in der
- 49:10Softwareentwicklung. Richtig, das ist ja nichts
- 49:12Neues, das kennt ihr doch alle. Aber es gibt halt auch zig
- 49:15Tutorials, es gibt bekannte Anbieter, wo man das, also wo
- 49:19man wirklich ein bisschen an die Hand genommen wird, ansonsten
- 49:22kommt gerne in unseren Discord vorbei.
- 49:25Liebe zuhören, liebe Zuhörer, falls du das noch nicht bist,
- 49:27also noch nicht Teil unserer Discord Community bist, da gibt
- 49:30es auch Leute, die sich da sehr gut mit auskennen und helfen
- 49:33können. Und wie gesagt, der erste
- 49:35Schritt ist der schwerste, aber danach macht es auch wirklich
- 49:38Spaß. Ist ein cooles Thema, womit man
- 49:40sich auf jeden Fall heutzutage auseinandersetzen sollte,
- 49:43absolut Jo fabi würde ich sagen, haben wir das Thema doch wieder
- 49:48ausführlich besprochen. Blick auf die Uhr.
- 49:51Wir sind auch schon wieder fortgeschritten in der Zeit,
- 49:53aber es ist immer noch im Rahmen.
- 49:54Also alles gut, ja, da bleibt mir doch eigentlich nichts mehr
- 49:59zu sagen, außer wenn Dir die Folge und der Podcast gefällt,
- 50:02dann lass auf jeden Fall eine Bewertung da, das würde uns mega
- 50:06freuen und auch mega helfen und schreib uns auf jeden Fall auf
- 50:10der Podcast Mail oder im Discord über deine Erfahrung mit
- 50:13infrastructures Code auch bei Fragen Haus in Discord rein.
- 50:17Wie Tino meinte, Da sind Leute, die gerne helfen und ich würde
- 50:22sagen, wir hören uns in der nächsten Folge wieder und zwar
- 50:24nächsten Donnerstag. Macht es gut, deine Coaling
- 50:27Buddies. Gemeinsam besser.