Latest / Coding Buddies | Tech & Dev-Mindset / #121 DevOps 8 - Orchestrierung verstehen ohne Kopfschmerzen
Transcript
- 0:00Container 1 sind wieder hochgefahren, Container 2.
- 0:01Ich hab wieder gestartet ja Service 3 ist wieder online, so
- 0:04weißt du. Coding Buddies Dein Podcast rund
- 0:08um Softwareentwicklung und aktueller Tech News.
- 0:11Herzlich Willkommen. Halli Hallo und herzlich
- 0:25Willkommen zur neuen Folge des Coding Buddies Podcast.
- 0:28Schön, dass du wieder eingeschaltet hast.
- 0:29Lieber zuhören, lieber Zuhörer. Und deine Gastgeber, wie soll's
- 0:32auch anders sein, meine Wenigkeit, der Tino und der
- 0:35fantastische Fabi, der sich wie immer freut über meine Standard
- 0:38Anmoderation. Ja Fabi, was geht ab, wie geht's
- 0:43dir? Tino, Wie geht's?
- 0:45Wie steht's? Ich hab grad so ein bisschen
- 0:46blöde die Kamera gegrinst, weil ich so ein paar Faxen gemacht
- 0:48hab, ich hoffe gut. Dass wir jetzt das immer mit
- 0:50aufnehmen, dann können wir das ja zeigen.
- 0:52Ich hoffe, ich hab dich nicht abgelenkt.
- 0:55Nein, alles gut, mir geht's ganz gut.
- 0:59Würde ich sagen, soweit ich habe.
- 1:01Ich habe letztens, das möchte ich ganz kurz zeigen, ich habe
- 1:03letztens eine krasse neue Erfahrung gemacht, die gar
- 1:05nichts mit Coden zu tun hatte. Hau raus, aber.
- 1:09Ich bin jetzt auf jeden Fall offiziell aufgelevelt in meinen
- 1:12Skills, in meinen wie sagt man alltagskills Ach nicht mal
- 1:18alltagskills nein, es ist, ich habe pass auf, ich habe einen
- 1:20Fliesenspiegel selbst gefliest. Krass, da sind deine
- 1:24handwerklichen Skills genau genau genau im Crafting.
- 1:27Und ich hab, ich hab das noch nie gemacht und ich bin aber
- 1:30eigentlich ziemlich zufrieden. Also ich denke mal wenn man
- 1:33jetzt so Profi ist, dann denkt man sich vielleicht so, ah hier
- 1:37hätte so n keine Ahnung, kreuz weißt du wo das wo die Fuge
- 1:40hinkommt, die hätte vielleicht noch n bisschen besser sein
- 1:42können oder so. Aber ist n Unikat, ist halt dein
- 1:46Werk. Ja, aber es ist nicht schlecht.
- 1:47Weißt du also, es könnte doch es ist, es ist so, weißt du, das
- 1:51erste Mal gemacht. 95% perfekt, aber nicht 100.
- 1:56Das ist aber 95 nicht schlecht. Also ich hab ja ein Bild gesehen
- 1:59und es sah auch zumindest auf dem Bild schon gut aus, muss man
- 2:03sagen. Ja, das war nur.
- 2:04Das ey ich mein, du hast mir ja so ein total verpixeltes Bild
- 2:07geschickt. Ja, aber man hat ja eigentlich
- 2:08gar nichts erkannt oder so ein Katalog.
- 2:11Das war dunkel im Raum. Genau.
- 2:13Das ist doch gar nicht. Das ist doch gar nicht dein
- 2:15Raum, ja. Ja, aber das.
- 2:18Fand ich auf. Jeden Fall also erstmal Chapeau.
- 2:20Ne, dass du das in die Hand genommen hast, find ich gut.
- 2:23Ja man sagt ja auch Entwicklerinnen und Entwicklern
- 2:26oft nach, dass sie 2 linke Hände haben und du warst ja jetzt
- 2:30quasi so n Gegenbeweis ja, also Respekt an dich, fabi, ja.
- 2:34Ich, ich dachte mir, weißt du, deswegen geht es mir auch ganz
- 2:36gut, weil ich einfach zufrieden bin, dass ich so weißt du
- 2:39einfach mal. Ehrliche Arbeit gemacht.
- 2:41Hab sehr gut, sehr gut. Ich find das ist auch n gutes
- 2:45Stichwort, wenn es um erschaffen und bauen geht.
- 2:49Aber bevor wir zum heutigen Thema kommen, noch ganz kurz
- 2:52eine Anmerkung, Liebe zuhören, lieber zuhören, falls dir dieser
- 2:54Podcast gefällt und auch du auch vielleicht mehr wissen möchtest
- 2:57über Fabi Fliesenspiegel, dann lass doch gerne ne Bewertung da
- 3:03Teile den Podcast kommen. Tier ihn, schreib uns, wir
- 3:08würden uns mega freuen, das supported uns extrem und
- 3:12deswegen jetzt geht es auch direkt los mit dem Thema und
- 3:14zwar klar wie. Follow da das ist.
- 3:17N Follow auf jeden Fall. Das hilft uns ungemein und das
- 3:20heutige Thema und jetzt kommt Stichwort bauen, wir machen
- 3:24heute weiter mit unserer def Ops Reihe Fabi Ich hoffe du hast.
- 3:27Sehr schön, wir lieben. Def Ops Wir haben Bock auf def.
- 3:30Ops ja, sei Def Ops. Dev Ops, so das heutige Thema,
- 3:35ist nämlich, was fehlt noch in unserer Reihe.
- 3:37Wir wollen heute mal über Kontinuierisierung sprechen und
- 3:42das ist n ganz ganz wichtiges Thema und auch n extrem
- 3:45spannendes Thema muss ich sagen und ich hoffe wir kriegen das
- 3:47gut rübergebracht, lass uns schauen, dass wir auch wieder so
- 3:51Beispiele und Analogien einbauen um das ganze n bisschen zu.
- 3:55Ja, bildlich darzustellen sage ich mal.
- 3:58Und ich denke, dann wird das eine ganz coole Folge.
- 4:00Oder was meinst du? Ja, auf jeden Fall.
- 4:02Und Containerisierung containerisation ich weiß gar
- 4:05nicht, wie man das so richtig ausspricht, das beide deutsch
- 4:07Englisch ist auf jeden Fall auch ein spannendes Thema und auch
- 4:11ein wichtiges Thema, gerade im Def Ops Bereich, was natürlich
- 4:15jetzt erstmal wichtig ist. Was ist eigentlich ein
- 4:17Container? Darüber hatten wir auch schon
- 4:19mal eine eigene Podcast Folge gemacht, deswegen wollen wir das
- 4:21jetzt nicht zu krass vertiefen, aber.
- 4:23Also wenn das jetzt noch mal interessiert, Liebe Zora, lieber
- 4:26Zora, dann guck noch mal paar folgen zurück.
- 4:29Da gibt es auf jeden Fall ne ausführliche Folge zum Thema
- 4:31Container und aber um das vielleicht noch mal so n
- 4:35bisschen, ich sag mal abzugrenzen, kurz knapp, also NN
- 4:42Container an sich ist ja im Endeffekt ein.
- 4:45Ein Image, was keine Operating systemschicht, also kein
- 4:49Betriebssystem, sozusagen keine Betriebssystemschicht benötigt.
- 4:54Das heißt quasi ein Container ist eine gekapselte Umgebung,
- 4:59was auf dem also die Ressourcen des Betriebssystems benutzt,
- 5:03wenn man das jetzt noch mal abgrenzt zu einem zu einer VM,
- 5:06da ist es ja so, dass im Endeffekt eine VM simuliert noch
- 5:08mal komplett. Ein ganzes OS, also ein ganzes
- 5:12Betriebssystem mit in der virtuellen Maschine und benutzt
- 5:17sozusagen nicht die nicht die Ressourcen des zugrundeliegenden
- 5:20Betriebssystems, sondern du kannst ja auf dann zum Beispiel
- 5:22dem Windows Betriebssystem kannst du noch mal ein Linux
- 5:24Betriebssystem oder andersrum beispielsweise in einer VM
- 5:29laufen lassen und dann hast du im Endeffekt.
- 5:32Sozusagen 2 Betriebssysteme, die du laufen hast.
- 5:35Also einmal auf dem zugrundeliegenden System und
- 5:38dann noch mal in der VM. Das ist beim Container eben
- 5:40nicht so. Was das Ganze auf jeden Fall
- 5:42schlanker macht und auch einfach handlebarer, gerade wenn es
- 5:46jetzt zum Beispiel auch bei Containerisation im Def Ops
- 5:50Bereich auch um Skalierung und so weiter geht, ne?
- 5:54Genau. Also es ist halt nicht so
- 5:56schwergewichtig wie eine VM, wie du gerade schon meintest.
- 5:58Dadurch, dass halt dieser Hostkernel genutzt wird.
- 6:01Und als Beispiel hatten wir ja da Docker genannt.
- 6:03Ich denk mal, wir werden heute auch noch mal so auf Docker
- 6:05kommen, ist immer n. Gutes Beispiel, ist halt auch
- 6:06einfach so der Marktführer. Ja also ich glaub an Docker
- 6:09kommt man nicht vorbei bitte. Kannst du auch Potman nehmen
- 6:12oder so? Gibt es ja auch.
- 6:13Ja, aber wie gesagt ist es halt so.
- 6:15Der Marktführer und ich glaube, dass das spätestens nee, nicht
- 6:19spätestens eigentlich so, sobald man sich mit dem Thema
- 6:22beschäftigt, einem über den Weg läuft.
- 6:23Also auf jeden Fall. Genau.
- 6:26Aber bevor wir vielleicht noch mal zu Docker kommen und wie man
- 6:28vielleicht noch mal so n Container in unserem Kontext
- 6:32containerisierung aufbaut, noch mal ganz kurz, warum das denn
- 6:36für Def Ops wichtig ist, um das Mal in unsere bisherige Reihe
- 6:40einzugliedern. Wir haben ja zum Beispiel über
- 6:43Staging gesprochen, ja, dass man halt in der Pipeline
- 6:47unterschiedliche Stages hat, ne develop stage, ne Test Stage,
- 6:51vielleicht dann die Prot Stage, wo halt wirklich die.
- 6:54Der Service oder die Software an sich produktiv läuft und da sind
- 6:58halt Container einfach absolut Gold wert um halt dieses
- 7:01typische Problem und das hatten wir auch schon oft thematisiert
- 7:04in Works on my Machine um dieses Problem einfach zu verhindern
- 7:08oder sehr stark zu minimieren, weil du halt.
- 7:11Wie du ja so schön meintest, du hast ja diesen Container in
- 7:14einer festen Umgebung und der hat halt immer die gleichen
- 7:17Bedingungen, wenn ich den laufen lasse sozusagen, und dadurch
- 7:20sind wir halt plattformunabhängig.
- 7:22Wir können halt auch schnell. Releasen oder Releases erzeugen,
- 7:28indem wir halt so standardisierte Images haben für
- 7:31diese Container und das ist halt einfach ne grundlegende Basis
- 7:34für unser CICD, für unsere Pipeline und das ermöglicht uns
- 7:39halt erst überhaupt in der Dev OPS Welt so agil entwickeln zu
- 7:43können. Am Ende ja, also das muss man ja
- 7:44noch mal ganz klar herauskristallisieren an dieser
- 7:47Stelle. Ja, auf jeden Fall.
- 7:50Ist auf jeden Fall definitiv wichtig, gerade wenn es jetzt
- 7:53zum Beispiel auch um Dependencies und Abhängigkeiten
- 7:55geht, wenn man sich vorstellt, man müsste lokal alles
- 7:59konfigurieren auf seinem Rechner und dann sozusagen noch den, ich
- 8:02sag mal, Server, auf dem die Anwendung läuft, vielleicht
- 8:06einmal für Prot konfigurieren und einmal für.
- 8:10Weiß nicht dev konfigurieren ne, also ich sag mal im Normalfall
- 8:13im Bestfall sollten die Stages gleich aufgebaut sein und die
- 8:16gleichen Abhängigkeiten haben, aber Ausnahmen bestätigen die
- 8:19Regel. Aber nein, aber was ich meine
- 8:22ist, es wäre ja auch zum Beispiel blöd, wenn du sagst, du
- 8:25hast jetzt zum Beispiel eine Anwendung auf deinem Server
- 8:27laufen nur noch eine andere und hast dann zum Beispiel bei der
- 8:30einen Anwendung, hast du Abhängigkeiten ABC und bei der
- 8:33anderen hast du AEF oder so ne als Abhängigkeiten um es so ein
- 8:37bisschen meta Sprachemäßig zu das Ganze als Beispiel zu
- 8:42bringen, aber. Du willst ja nicht dann auf
- 8:45deinem Server einmal quasi die einen Abhängigkeiten
- 8:47installieren und dann wenn du eine andere Anwendung laufen
- 8:50lassen möchtest sozusagen gleichzeitig vielleicht noch wie
- 8:52wie willst du das hinkriegen und so kannst du mit den mit den
- 8:54Containern das ganze einfach viel viel schöner machen du
- 8:56kannst sagen okay Anwendung 1 läuft in Container 1 mit den
- 8:59entsprechenden Abhängigkeiten die ich brauche und abhängig
- 9:02Anwendung 2 läuft eben im Container 2 mit den
- 9:05entsprechenden Abhängigkeiten die ich da brauche und die
- 9:07kommen sich eben gegenseitig nicht ins Gehege nutzen aber die
- 9:10gleichen Ressourcen von deinem Server beispielsweise und das
- 9:13ist ja sozusagen. Genau das, was im Endeffekt
- 9:16wichtig ist oder wieso man dann vielleicht auch das ganze, wieso
- 9:21das Ganze so wichtig ist. Gerade wenn wir über
- 9:23Orchestrierung reden oder Containerisierung, kommt ja
- 9:26später noch, dann ist es ja nicht nur so, dass du meistens
- 9:30ein Image irgendwie ein, also ein Docker Image laufen lässt
- 9:33oder ein anderes nur also 1 auf einem Rechner oder einem Server,
- 9:37sondern meistens mehrere und darauf wollen wir ja im
- 9:40Endeffekt dann hinaus. Genau.
- 9:43Und wenn wir das Beispiel bringen, dann glaube ich, können
- 9:45wir noch mal ganz klar herausstellen, warum oder wo der
- 9:48große Vorteil gegenüber einer VM dann ist.
- 9:52Aber dazu später mehr. Lass uns mal noch so ein
- 9:54bisschen drauf eingehen, wie man überhaupt so ein Container baut,
- 9:58weil es gibt ja bestimmt auch Zuhörerinnen und Zuhörer, die
- 10:02vielleicht noch da sich noch nicht beschäftigt haben und noch
- 10:05nicht so eine richtige Vorstellung haben, wie das
- 10:07grundsätzlich vom Prinzip her. Abläuft.
- 10:10Und ich finde, das kann man so ganz gut in 3 Schritten
- 10:14gliedern. Ja also und da würde ich jetzt
- 10:16wirklich mal Docker nehmen, weil es halt wirklich wie gesagt sehr
- 10:19verbreitet ist und man dann halt so nen direkten Bezug hat und
- 10:23der erste Schritt. Ist im Prinzip so ne Art
- 10:26Manifest aufzubauen, also eine Beschreibung und das kann man
- 10:30ganz gut mit dem Docker File an sich vergleichen.
- 10:33Ja also du beschreibst halt, wie sieht mein Basisimage aus, ja
- 10:38welche Daten werden benötigt, ich kopiere sie zum Beispiel aus
- 10:42meiner Route sozusagen in meinen, in mein Image, sozusagen
- 10:46in den Container installier dependencies und so weiter also
- 10:50ich beschreib quasi, wie sieht meine Umgebung aus?
- 10:53Genau. Also wenn du jetzt zum Beispiel
- 10:54sagst Basis. Das Image, das könnte ja
- 10:56beispielsweise so was sein wie, sagen wir mal so, ein Node
- 11:00image. Es gibt ja auch zum Beispiel
- 11:02dann, wenn Du von Docker redest, auch bei Docker Hub gibt es ja
- 11:05bestimmte Images, vorgefertigte, wo du dann zum Beispiel sagst,
- 11:08du kannst, lass mich jetzt nicht lügen, ein Image von Node 20
- 11:12haben, wenn du jetzt zum Beispiel, sagen wir mal,
- 11:13irgendeine Anwendung mit Node entwickeln möchtest, dann ist es
- 11:17ja unbedingt notwendig, dass du das eben hast, so genau und
- 11:20dann. Dann hast du.
- 11:21Dann kannst du dir so ein Image ziehen.
- 11:22Es gibt verschiedene Images, auch von offizieller Seite sage
- 11:26ich jetzt mal, dass zum Beispiel Node selber sagt okay, das sind
- 11:28unsere offiziellen Images und die kann man als Basis Image
- 11:32nehmen und sich zusätzlich noch eigene Sachen installieren, wie
- 11:35du meintest diese dependencies und halt seine eigene Anwendung
- 11:38noch sozusagen, also alle Files die man hat rein kopieren in
- 11:42dieses Image. Es ist natürlich alles eine
- 11:43textliche Beschreibung, was dann also was da passieren soll, aber
- 11:47so kann man sich das ungefähr vorstellen, genau.
- 11:50Genau, also wir hatten ja auch so n bisschen Infrastructure is
- 11:52code, also hat mir ne eigene Folge zugemacht und so ähnlich
- 11:56kannst du dir das jetzt hier auch vorstellen in diesem in
- 11:58diesem Manifest. Also du schreibst, du Kodierst
- 12:00quasi diesen Aufbau deiner Infrastruktur in diesem Docker
- 12:05Image dann beispielsweise oder beziehungsweise in deinem
- 12:07Container. Und das die Basisimages ist halt
- 12:11n sehr wichtiger Punkt den du ansprichst.
- 12:13Das geht ja soweit, dass du auch sagen kannst, ich möchte zum
- 12:15Beispiel NN, Ubuntu Image oder so.
- 12:17Ja also da gibt es halt Tausende Varianten und auch sehr
- 12:22spezifische, dass du halt schon gar nicht mehr so viel vorweg
- 12:24konfigurieren musst, weil du einfach dir, so sag ich mal
- 12:27deine. Grundbedingungen einfach schon
- 12:29laden kannst über einen Base Image sozusagen.
- 12:32Eine kleine Anmerkung dazu noch, da würde ich glaube ich noch
- 12:35sagen, dass auf jeden Fall, man kann sich unglaublich viele
- 12:37verschiedene Images holen. Man sollte aber immer
- 12:39reingucken, auf jeden Fall, was im Image steht und dass man sich
- 12:43vielleicht auch, das ist ja auch der Gedanke dahinter, um
- 12:46möglichst oft, also performant zu sein und sage ich jetzt mal
- 12:50wenig, möglichst wenig Ressourcen zu verwenden.
- 12:53Sollte man vielleicht gucken, dass man auch n Image verwendet,
- 12:55wo man wirklich das drin hat was man braucht und nicht noch super
- 12:58viel? Ne.
- 12:58Also wenn du jetzt zum Beispiel wirklich nur eine bestimmte
- 13:01Sache brauchst, dann musst du dir jetzt vielleicht nicht zum
- 13:03Beispiel so n ganzes Ubuntu Image holen, kann aber durchaus
- 13:05hilfreich und notwendig sein, damit du nicht tausendmal sagst
- 13:08so ach ich muss das noch nachinstallieren, ich muss das
- 13:10noch nachinstallieren, ne. Genau so.
- 13:13Genau. Das ist n sehr guter Aspekt,
- 13:15weil es braucht natürlich auch seine Zeit, diese Images
- 13:18aufzubauen und die Container später zu starten.
- 13:21Das dann kommen wir nämlich auch schon direkt zum zweiten
- 13:23Schritt, wenn ich jetzt dieses Manifest hab und ich hab
- 13:25beschrieben wieso n Image aussehen soll für meinen
- 13:28Container später, da muss ich das natürlich bauen, ne, also
- 13:31das enthält dann am Ende den Code ja also im Prinzip den ich
- 13:35eigentlich ausführen möchte, mein Programm, mein Projekt so
- 13:38gesehen. Ne Runtime die Libraries, da ist
- 13:42jetzt alles drin definiert Dank unseres Manifests.
- 13:44Ja, also beispielsweise das Stockerfile und dann kann ich
- 13:47dieses Image bauen und dann hab ich n fertiges Image was ich
- 13:50ausführen kann, laufen lassen kann und im Prinzip meine
- 13:54Anwendung beinhaltet. Ja, das stimmt.
- 13:56Und. Der dritte Schritt ist ja dann
- 13:58eigentlich sozusagen. Jetzt kommt der Container ins
- 14:01Spiel, jetzt erstelle ich mir einen Container, der isoliert
- 14:07eine Instanz dieses Images laufen lässt.
- 14:10Das heißt ich hab ne abgekapselte Umgebung, wo mein
- 14:12Image drin ausgeführt wird, wie ich es so beschrieben hab.
- 14:15Ja, also im Endeffekt ja meine Anwendung.
- 14:17Genau, also du hast im Endeffekt das Image, ist sozusagen dieser
- 14:22Bauplan ne und der Container ist sozusagen ein ne, also.
- 14:26Wie du schon meintest, das ist jetzt redundant, aber genau die
- 14:30Instanz dieses Images. Das heißt du kannst es
- 14:33theoretisch auch 5 Mal bauen und 5 mal laufen lassen, ne und dann
- 14:36hast du quasi 5 mal dein was weiß ich backend frontend frag
- 14:40mich nicht anwendung XY halt laufen wenn du möchtest.
- 14:45Genau und dadurch wie du ja meintest du dadurch, dass du es
- 14:48mehrfach machen kannst, hast du halt dieses einheitliche Setup
- 14:51ne und das kannst du halt für alles immer wieder verwenden,
- 14:53zum Beispiel für Deployments. Ja, und dieses Prinzip dahinter
- 14:57ist ja grundlegend gleich. Ja, also wir haben jetzt Stocker
- 15:01genommen, du hast Potman gesagt, also es ist halt im Prinzip.
- 15:05Ist immer der gleiche Ablauf am Ende?
- 15:07Ja, das heißt dann vielleicht nicht Docker file
- 15:10logischerweise, oder die Syntax ist anders, wie auch immer, aber
- 15:13ich sage mal, diese 3 Schritte sind halt so die die
- 15:15grundlegenden Schritte die man da durchführen muss.
- 15:19Ja, und wenn du jetzt zum Beispiel sagst, OK, du hast
- 15:21jetzt eine CICD Pipeline, warum ist es vielleicht auch
- 15:24interessant, zum Beispiel auch unterschiedliche Docker
- 15:27Container zu nutzen und nicht, dass du beispielsweise sagst,
- 15:29OK, ich nehme jetzt aber einfach ein Docker Container und da
- 15:32lasse ich alles drin laufen die ganze Zeit.
- 15:35Also allein schon wenn du sagst, du hast zum Beispiel eine
- 15:37Anwendung mit einem Test Framework und du willst deine
- 15:40Anwendung testen, so dann brauchst du natürlich dieses
- 15:43Test Framework mit in deinen Dependencies, um sozusagen deine
- 15:47Tests laufen zu lassen. Aber in deiner produktiven
- 15:49Umgebung brauchst du das Test Framework ja gar nicht, das
- 15:51heißt, du kannst es einfach weglassen und das sozusagen raus
- 15:54optimieren. Kleines Beispiel aber um das Mal
- 15:56zu zeigen, wieso du zum Beispiel vielleicht auch einfach
- 15:59innerhalb deines Deployments vielleicht mehrere
- 16:01Dockercontainer brauchst, dann der ist ja jetzt 2, aber.
- 16:04Ja, ja, und es kann ja auch ne unterschiedliche Konfiguration
- 16:07enthalten sein. Ne, dann hast du halt einmal sag
- 16:09ich mal n testimage oder prot Image und da sind aber
- 16:12unterschiedliche Konfigurationen, zum Beispiel
- 16:14gegen welchen Server da gecallt wird, mal so als Beispiel ne,
- 16:18also das ist halt n sehr wichtiger Punkt den du da
- 16:20genannt hast, dass du damit natürlich gerade dieses Staging
- 16:23enorm unterstützen kannst. Am Ende ja genau.
- 16:28Ja, aber warum ist denn jetzt kontainerisierung?
- 16:33Ich nehm mal das deutsche Wort deutscher Podcast du hast recht,
- 16:36es ist eigentlich nicht mal n richtiges deutsches Wort, so
- 16:38schön eingedeutscht, warum ist das jetzt so?
- 16:42N Death Ofs Game Changer, das würd ich gern noch mal ganz klar
- 16:45herauskristallisieren, was wir daran halt so feiern oder
- 16:48beziehungsweise die Death ofs Welt ja nicht nur wir beide.
- 16:52Du hast halt dieses einheitliche Deployment, das hattest du ja
- 16:55glaube ich, eben schon so ein bisschen erwähnt.
- 16:57Du kannst eben konsistente Bilds erzeugen über deine
- 17:00entsprechenden Umgebungen, was geht noch?
- 17:04Schnelle Fehlerfindung und Behebung, weil du ja explizit
- 17:08auch in diesen Einzelnen in diesen einzelnen
- 17:10Dockercontainern eben deine einzelnen, sagen wir mal stages
- 17:15hast oder oder Teile deiner Pipeline, wenn du es denn
- 17:18richtig aufteilst. Was ja im Endeffekt auch dazu
- 17:21führt, dass du nicht in einer großen Maschine oder auf einem
- 17:24großen Server in 1000 logs irgendwie rumsuchst.
- 17:27So was ist denn jetzt hier, was ist da, sondern du hast halt in
- 17:30in in Container und nicht nur, dass du sagst, du hast n
- 17:33Container für zum Beispiel. Weiß nicht deine deine CI oder
- 17:39dein CI teil, beispielsweise ne wo vielleicht auch
- 17:42beziehungsweise dein CD teil wo auch die Tests laufen.
- 17:46Ne was ich gerade eben meinte es ist ja nicht so, dass du dann
- 17:49einen Container hast, wo du dann immer wieder den Container
- 17:51nimmst und deine Tests da drin sozusagen das erste Mal, das
- 17:54zweite Mal das dritte Mal je nach Pipelinedurchlauf laufen
- 17:56lässt, sondern du baust ja in jedem Pipeline auf, in jedem
- 17:59Pipelinedurchgang wieder einen neuen Container.
- 18:02Auf das heißt, du hast ja immer quasi eine kleine kleine
- 18:05gekapselte Instanz, mit der du dann am Ende arbeiten kannst
- 18:10beziehungsweise arbeiten im Sinne von wenn was schief geht
- 18:13oder wenn du irgendwas nachgucken möchtest, dann kannst
- 18:16du halt relativ schnell auch eben gucken, was ist denn in
- 18:19diesem einzelnen Container passiert und musst jetzt nicht
- 18:21quasi noch alles, was vorher passiert ist, auch noch
- 18:23durchgucken. Ja, du hast halt genau diese
- 18:27isolierte Instanz am Ende ne und du weißt dann genau, an welcher
- 18:30Stelle es geknallt hat sozusagen und das kann man halt auch super
- 18:35für die ganze Automatisierung einer Pipeline nutzen.
- 18:39Ja was ja ne Pipeline erst interessant macht, wenn halt die
- 18:42ganzen manuellen Schritte rausfallen und das lässt sich
- 18:46halt. Diese Container lassen sich halt
- 18:48super integrieren in so ne automatisierte Pipeline ne und?
- 18:52Du kannst halt dann am Ende für für das Deployment dann ja auch
- 18:56einfach diese Docker Images auch wirklich deployen, sozusagen ne
- 19:00und sagen OK, jetzt gibt es n neues Image ne neue Version
- 19:03meiner Anwendung und die kann in einem Docker Container
- 19:05hochgefahren werden, beispielsweise ne dafür baust du
- 19:08das Halt auf, Testest das und dann kannst du das ja deployen
- 19:11beispielsweise und. Ja, das ist ja voll integriert.
- 19:16Wenn wir zum Beispiel in der github Welt unterwegs sind, hast
- 19:19du ja auch die github Registry, wo du quasi in deinem Repo ja
- 19:24schon images bereitstellen kannst.
- 19:26Am Ende ne mit Github Actions ist das halt super schnell
- 19:29aufgesetzt, so eine ganz einfache Pipeline, das ist ja
- 19:32wirklich mittlerweile so geil umgesetzt oder umsetzbar Feier
- 19:37ich total und man muss natürlich auch sagen, dass das auch eine
- 19:42Grundlage ist und. Um überhaupt so Microservices,
- 19:47Architekturen, ja wie sehr heutzutage gelebt werden,
- 19:51aufsetzen zu können durch Container und man nicht mehr
- 19:55halt riesen Monolithen hat. Liebe, zuhören, liebe Zuhörer,
- 19:58falls das n Thema für dich ist, dann meld dich doch gerne bei
- 20:01uns. Wir können gerne mal ne Folge
- 20:02machen zu Monolithen versus Microservices.
- 20:05Ja das ist n super spannendes Thema und wovor und Nachteile da
- 20:09drin liegen. Und wenn wir schon beim Thema
- 20:12Microservices sind, kommen wir eigentlich zum zweiten Punkt der
- 20:15heutigen Folge zur Orchestrierung.
- 20:18Weil jetzt wird es ja spannend. Was macht man mit den
- 20:20Containern? Ja, und vielleicht magst du ja
- 20:22mal kurz so ne Einführung geben, Fabi was Orchestrierung ist
- 20:27eigentlich. Genau also, wenn man sich das
- 20:29jetzt vorstellt. Und du sagst ja OK, also
- 20:32Orchestrierung kommt ja erstmal wirklich von.
- 20:35Von Orchester. Also du hast ja quasi.
- 20:38Surprise. Surprise.
- 20:41Da ich, ich weiß nicht, das ist richtig, manchmal ist mein Kopf
- 20:45auch so richtig dumm, ne, weil ich ja so früher so redest du da
- 20:48drüber und denkst so Orchestrierung, Orchestrierung,
- 20:50das klingt irgendwie, es klingt irgendwie wie Orchester so, also
- 20:53das ist ja, und da sind du so, ah okay also.
- 20:56Leider aber ist ein guter Hinweis ja also, dass man dann
- 20:59hat man halt nämlich die perfekte Analogie, schon genau
- 21:01also. Du komponierst im Endeffekt, oh
- 21:04du, du setzt so. Sozusagen deine
- 21:05Gesamtkomposition aus verschiedenen, also deine
- 21:09Gesamtanwendungen aus verschiedenen Dockercontainern
- 21:12zusammen. So gesehen ne, das ist genauso
- 21:14wie ein Orchester, da setzt ja zum Beispiel auch so
- 21:15verschiedene Musikinstrumente zusammen, die dann im Endeffekt
- 21:19ein großes Ganzes ergeben. Und wenn du jetzt zum Beispiel
- 21:22sagst okay, du hast jetzt vielleicht irgendwie so ein 2
- 21:24Container, ist es jetzt an sich kein Ding, da musst du jetzt
- 21:26nicht mit einer großen Orchestrierung starten und so
- 21:28weiter aber wenn du jetzt wirklich in der heutigen Welt
- 21:33sagen wir mal eine große Anwendung hast mit
- 21:37verschiedenen, also wirklich auch mit so einer Micro Service
- 21:40Architektur, das heißt, du hast quasi dein dein Deployment, du
- 21:43hast deinen Server, da laufen dann zum Beispiel verschiedene
- 21:46Services drauf, wie der Name ja schon sagt, also jeder Service
- 21:48macht sein eigenes Ding, also du hast dann vielleicht zum
- 21:51Beispiel so was wie ein Authentication Service, das ist
- 21:53ein eigener Service, der in einem eigenen Docker Container
- 21:56läuft, genauso wie zum Beispiel dann weiß ich nicht das eine der
- 22:00eine Teil deiner App und der andere Teil also wie gesagt
- 22:03Microsoft ist. Das können wir auch noch mal ein
- 22:04bisschen genauer behandeln. In einer eigenen Podcast Folge
- 22:07will ich jetzt nicht genau darauf eingehen, aber man muss
- 22:10sich das ungefähr so vorstellen, dass wenn du eine Anwendung
- 22:13hast, die aus verschiedenen Teilen besteht, kannst du rein
- 22:16theoretisch diese Teile auch einfach trennen und nicht in
- 22:19einen großen Batzen haben, sondern das wirklich sozusagen
- 22:23in einzelne kleine Anwendungen trennen, die du dann aber
- 22:26jeweils in einem Docker Container laufen lässt und dann
- 22:29sozusagen muss das ganze ja irgendwie zusammen spielen, das
- 22:32heißt du brauchst dann. Ja, irgendwie vielleicht
- 22:35Connections untereinander, die müssen kommunizieren können, wie
- 22:37auch immer, ne. Aber Fakt ist auf jeden Fall, du
- 22:39hast dann deine ganzen Container und damit das aber auch alles
- 22:43zusammen funktioniert, musst du halt und jetzt kommt genau der
- 22:46Punkt das ganze Orchestrieren ne aber Orchestrierung an sich ist
- 22:52ja nicht nur, dass du sagst du hast deine ganzen Container
- 22:55zusammen, ne die dann vielleicht in einem.
- 22:58Großen Cluster laufen ne, hier zum Beispiel auch, Stichwort
- 23:01Cubanitis ne cubanitis cubanitis.
- 23:05Ist. Jetzt wieder so prädestiniert
- 23:08dafür, dass man es falsch ausspricht oder jeder es anders
- 23:11ausspricht. Aber es gibt ja auch noch andere
- 23:14Sachen, die Halt wichtig sind bei einer Orchestrierung, ne.
- 23:19Ja, also im Prinzip. Hast du ja zum Beispiel auch
- 23:23dieses Starten und stoppen von Containern, ne?
- 23:26Also da noch mal dieses orchesterbeispiel du dirigierst
- 23:30das ganze ne, du bist jetzt das System was die Container
- 23:33verwaltet und zeigst halt sozusagen jetzt bist du dran,
- 23:38jetzt hörst du auf du und so weiter ne jetzt laufen die so
- 23:42ich find das ist halt wirklich ne gute Analogie ja also du du
- 23:45dirigierst das ganze ne und sagst welcher Container läuft
- 23:48und welcher nicht genauso. Hast du ja zum Beispiel auch in
- 23:52einem Orchester von einem Instrumententyp, was jetzt mal
- 23:56ein spezieller Container in unserem Fall wäre.
- 23:59Ne, mehrere Instanzen, du hast ja mehrere Spieler und
- 24:02Spielerinnen davon, ja zum Beispiel die Geige, geigen, die
- 24:06erste Geige ist Beispiel. Spielst du die erste und die
- 24:08zweite Geige? Und das ist nämlich genau der
- 24:13nächste Punkt, was bei der Orchesterierung wichtig ist.
- 24:15Und zwar Skalierung. Ja, brauche ich von diesem
- 24:18Container mehr Instanzen oder weniger, je nach Last?
- 24:22Ja, also du hast halt auch im Prinzip N Load balancing.
- 24:26Du verteilst die Anfragen dann gleichmäßig.
- 24:29Ne, also logischerweise wenn ich jetzt 4 geigenspieler hab, dann
- 24:32darf ja der eine nicht alle 4 spielen, oder wie soll er das
- 24:35machen, der ist ja sofort überfordert und das geht halt
- 24:38nicht, also verteile ich quasi das auf die 4 Geigen zum
- 24:41Beispiel und das sind alles so Themen was die Orchestrierung
- 24:44beinhaltet, da gibt es natürlich noch spezifische Sachen wie Cell
- 24:50Feeling ist ein riesen Punkt, ja wenn zum Beispiel ein Crash
- 24:54erkannt wird. Ja, dass du sagst, Oh, den
- 24:57Container muss ich mal neu starten, da ist so was
- 24:58schiefgelaufen, aber ich muss irgendwie wieder n Zustand n
- 25:01heilen Zustand erreichen, dass das Ding wieder läuft, am Ende
- 25:06keine Ahnung, der Geigenspieler fällt vom Stuhl.
- 25:09Ja und das klingt einmal komisch, aber du musst ja wieder
- 25:12n Zustand erreichen, dass es wieder harmonisch klingt am
- 25:14Ende, indem du den Stuhl wieder hinstellst und den Geigenspieler
- 25:17da drauf setzt beispielsweise ja und dann gibt es natürlich den
- 25:23Rollbacks. Ja, das passiert nur
- 25:25Geigenspieler. Und wenn das alles nicht hilft
- 25:28und der jedes Mal wieder vom Stuhl fällt, dann machst du halt
- 25:30n rollback und sagst OK, der neue Geigenspieler, das war
- 25:34keine gute Idee, ich nehm die wieder raus, ich nehm wieder den
- 25:37alten. Also um das ganze technisch kurz
- 25:41zu machen. Wenn ich jetzt ne neue Version
- 25:44hab von meiner Software und da läuft irgendwas schief ne und
- 25:46das Self Feeling funktioniert nicht, irgendwie crasht das die
- 25:49ganze Zeit, dann hab ich natürlich auch über meine
- 25:52Orchestrierung die Möglichkeit n Royback zu machen und zu sagen
- 25:57ich dreh das Ganze auf die alte Version zurück und hab erst mal
- 26:00wieder n sauberen Zustand. Ne, und das sind halt Rollouts.
- 26:03Ich kann automatisiert neue Versionen ausrollen, ne und zur
- 26:07Verfügung stellen und rollbacks, ich kann sie automatisch wieder
- 26:10zurückdrehen, sozusagen und wieder auf ne alte Version gehen
- 26:14und das sind so typische Anwendungsfälle, genau also.
- 26:17Gerade wenn wir jetzt sagen, Def Ops hat ja natürlich
- 26:20logischerweise viel mit Automatisierung zu tun, wie du
- 26:23ja auch schon meintest. Man möchte sich ja nicht
- 26:25vorstellen. Angenommen, irgendein Service
- 26:28Crash bei was weiß ich irgendeinem großen Riesen
- 26:30Unternehmen ne vielleicht irgendwas mit Social Media oder
- 26:33frag mich nicht oder hier irgendwas im E Commerce Bereich
- 26:36und dann gibt's dann irgendwie weißt du dann kommt so die Task
- 26:39Force Gruppe setzt sich an die an die Rechner schaltet sich auf
- 26:42die Server dann Container 1 sind wieder hochgefahren Container 2
- 26:45ich hab wieder gestartet ja Service 3 ist wieder online so
- 26:48weißt du und dann so nein sie gehen wieder down sie gehen
- 26:51wieder down verdammt. So, da kommt die, da kommt die
- 26:55zweite Taskforce Gruppe, die das Ganze dann ne irgendwie
- 26:58programmieren Bug fixen muss und so weiter aber in der Zeit
- 27:01passiert halt nichts und deswegen kannst du halt zum
- 27:03Beispiel mit einem automatisierten Rollback, wo
- 27:05jetzt auch wieder Stichwort Monitoring mit dazu kommt, ne du
- 27:08musst ja wissen, OK. Geht denn irgendwas die ganze
- 27:11Zeit schief, damit du dann automatisiert über deine
- 27:13Orchestrierung sozusagen auf so n bestimmtes Signal reagieren
- 27:16kannst? Um zu sagen, OK, pass auf, da
- 27:18ist jetzt n Problem aufgetreten. Wir müssen jetzt zum Beispiel
- 27:21wieder auf die letzte stabile Version zurückrollen, das was
- 27:23wir jetzt gerade neu gemacht haben, das funktioniert nicht
- 27:25und dann läuft wieder alles Punkt 1 und Punkt 2 ist das Team
- 27:29was die Bugs dann fixt sag ich jetzt mal dem was ich gerade
- 27:32gesagt hab, das kann sich dann vielleicht bisschen mehr Zeit
- 27:35lassen oder ist nicht ganz so hektisch.
- 27:39Ne. Ja, ich mein, da braucht man
- 27:41sich ja nur wieder die Analogien nehmen mit dem echten Orchester.
- 27:45Ne, also der Dirigent vorne, der hat ja n unfassbar schwierigen
- 27:48Job. Ja, also er muss ja absolut
- 27:50akkurat sein, er muss genau wissen wer was macht, jetzt muss
- 27:54das richtig signalisieren, damit das ganze Orchester das genauso
- 27:58spielt, wie es gedacht ist. Das Werk, ja und?
- 28:02Und jetzt macht er das ja manuell, in dem Fall.
- 28:05Wie lange macht er das? Keine Ahnung wie lange sowas
- 28:08geht, er hat ja Pausen dazwischen, aber sagen wir mal
- 28:11so er muss nicht wie in unseren Anwendungsfallen 24 7 jetzt so
- 28:17ein Orchester da leiten, weil das würde einfach zwangsläufig
- 28:21zu Fehlern führen und genau das ist nämlich der Punkt, wie du ja
- 28:24schon meintest, das geht manuell nicht, wir brauchen irgendwie
- 28:27toolische Unterstützung um das automatisiert hinzukriegen und
- 28:30ich finde da kann man die Analogie halt auch.
- 28:32Hochziehen, weil wie lange würde das n Dirigent wirklich
- 28:35durchhalten am Stück ja ohne Fehler zu machen.
- 28:38Ja, richtig, also ab jetzt Dirigenten immer automatisieren.
- 28:43Immer Props raus, ihr macht n geilen Job.
- 28:46Ja, aber auf jeden Fall. Wenn ihr das jetzt nimmst, dann
- 28:49ist es natürlich so, dass wenn wir jetzt von Containern reden,
- 28:52dann ist n Container im Endeffekt ein Spieler im
- 28:54Orchester oder eine Spielerin und die Orchestrierung an sich
- 28:59sozusagen, das ist dann sozusagen der Dirigent, ne, also
- 29:01der. Übernimmt dann die
- 29:02Orchestrierung. So, dann haben wir es noch mal.
- 29:04Nicht ich finde, das ist auch ein schönes Beispiel, weil der
- 29:06Klassiker, den können wir ja auch nennen, ist natürlich der
- 29:08Container. Ist so ein Schiff, ja oder so
- 29:12ein Container am Hafen und die Orchestrierung ist dann
- 29:15sozusagen der Hafenmeister, der gesagt, sagt Okay Schiff dahin,
- 29:18Schiff dahin oder keine Ahnung, den Container stellst du da
- 29:21drauf, den da drauf, also man kann das natürlich auch auf die
- 29:25schiffsfahrten mappen, sage ich. Mal wegen Container ganz genau.
- 29:31Warte mal. Bei Docker gab es doch auch, ist
- 29:33doch sogar das Ganze in dem in dem in dem Bild drin von Docker.
- 29:37Ja, stimmt. Der war mit dem Container.
- 29:41Genau. Ja, es ist.
- 29:42Es ist einfach naheliegend. Deswegen finde ich es gut, dass
- 29:44wir das mit dem Orchester machen, aber kommen wir mal zu
- 29:49weiteren Analogien und Beispielen.
- 29:53Und zwar möchte ich sehr gerne eine Analogie noch mal
- 29:56aufgreifen. Die haben wir einfach schon
- 29:58gebracht, die ist bekannt in unserem Podcast.
- 30:00Und zwar möchte ich wieder in die Welt der Restaurants mit dir
- 30:03eintauchen, jetzt wird es wieder kulinarisch, es wird kulinarisch
- 30:07hier im Coding Buddies Podcast. Hol dir was denn genau?
- 30:12Kurze Snackpause und zwar um einfach noch mal klarzustellen,
- 30:18wie sieht die VM Welt aus und. Und wie sieht jetzt unsere neu
- 30:21beschriebene Kontinuierisierungswelt aus?
- 30:24Ja, hau raus und wenn wir jetzt noch mal so in der
- 30:26Restaurantwelt sind und wir gehen noch mal in die VM Welt,
- 30:28wie du meintest eigenes OS ne und schwergewichtig jetzt stell
- 30:33dir vor du hast n Restaurant, du hast ja viele Gerichte ja also
- 30:36du hast ja ne Karte, da ist wieder unser Menü sagen wir mal
- 30:39du hast ne feine aber gute Auswahl so ne ne kleine 20
- 30:43Gerichte so. In der VM Welt so gesehen würde
- 30:49das bedeuten, ich muss jetzt für jedes Gericht ne eigene
- 30:53komplette Küche aufbauen. Ja, also ich muss mir jetzt ne
- 30:56Welt schaffen wo ne Küche drin ist um dieses Gericht quasi.
- 31:00Herstellen zu können, und das ist logischerweise teuer und
- 31:03Ressourcenverschwendung einfach am Ende, weil ich kann jetzt
- 31:07nicht getrennte Gerichte machen, sondern entweder ich mach alle
- 31:10Gerichte auf einmal in einer, also weißt du in einer Umgebung
- 31:14oder ich muss mir halt wirklich mehrere Küchen aufbauen und das
- 31:18ist natürlich einfach Quatsch und deswegen kontinuierisierung
- 31:22bedeutet, ich habe ne Großküche wie in einem Restaurant mit
- 31:26geteilten Ressourcen. Zum Beispiel?
- 31:28Ich habe einen Herd, ich habe einen Kühlschrank und so weiter.
- 31:31Aber da kann ich noch mal gleich einhaken, weil das ist.
- 31:33Das zeigt nämlich auch noch mal, dass du ja zum Beispiel, wenn
- 31:36gerade wenn du jetzt zum Beispiel sagst, du hast eine
- 31:38Küche, wo du alles kochen willst, kann es natürlich sein,
- 31:41dass es vielleicht in der einen Küche eventuell nicht unbedingt
- 31:44auch immer das gibt, was du auch wirklich brauchst für das
- 31:47entsprechende Gericht. Also du kannst vielleicht nicht
- 31:48alle Gerichte wirklich in einer Küche kochen, so ne.
- 31:52Ja. Und genau, wenn du dir jetzt
- 31:56vorstellst, wenn ich so n Gericht herstelle, dann hab ich
- 31:59ja verschiedene Stationen. Ja die die irgendwie notwendig
- 32:04sind dafür oder halt Stichwort Manifest noch mal unsere
- 32:07Umgebung, die ich dafür brauche für das eine Gericht brauch ich
- 32:11n Topf für das andere brauch ich ne Pfanne und so weiter für
- 32:14manche vielleicht auch Topf und Pfanne.
- 32:16OK, aber. Aber am Ende hab ich ne saubere
- 32:19Trennung. Ne, das heißt ich hab nur meine
- 32:20Zutaten und ich hab diese Station und dann kann ich halt
- 32:23meine Gerichte herstellen und der Vorteil dabei ist Stichwort
- 32:28Skalierbarkeit was wir gezeigt haben ey wir müssen jetzt
- 32:32mehrfach mehrfach dieses Gericht kochen.
- 32:35Ja OK ist ja kein Problem weil ich muss ja jetzt nicht jedes
- 32:38mal ne neue Küche aufbauen, gib mir einfach mehr Töpfe und das
- 32:41ist nämlich genau der Knackpunkt dabei, ich setz einfach mehr
- 32:44Töpfe damit auf. Und habe am Ende quasi mehrere
- 32:48Instanzen, wo dieses Gericht gekocht wird.
- 32:51Richtig, gehen wir jetzt mal davon aus, dass man auch auf dem
- 32:55gleichen Herd mehr Töpfe platzieren kann.
- 32:58Das gibt mir einen weiteren Herd, aber gibt mir nicht eine
- 33:01neue. Küche nee, aber das ist eine
- 33:05gute Analogie, weil im Endeffekt hast du ja dann die Möglichkeit.
- 33:10Ne ohne diese riesen Ressourcen die du aufwenden müsstest um
- 33:14sozusagen jetzt zu sagen, ey ich brauch noch n zweiten Herd OK
- 33:17für n zweiten Herd nehm ich noch ne zweite Küche dazu.
- 33:20Super Sache passt ja, das wär natürlich genau Quatsch und
- 33:24jetzt kommt natürlich jetzt zum Beispiel die Orchestrierung mit
- 33:26rein ne oder beziehungsweise ne unsere unsere wie sagt man
- 33:33containerfizierung was ist das das deutsche Wort?
- 33:39Oder also, wenn wir jetzt solche Cubanitis nehmen, und das wäre
- 33:43ja dann im Endeffekt so der Vergleich zum Küchenchef.
- 33:46Ne, weil genau. Der Küchenchef weiß ja dann zum
- 33:50Beispiel, wie zum Beispiel auch der Dirigent im im Orchester,
- 33:54wieviel Töpfe werden denn benötigt.
- 33:56Ne, also weil zum Beispiel der es man weiß ja dann OK wieviel
- 34:00Bestellung kommen überhaupt rein, was muss denn überhaupt
- 34:02gekocht werden, ne Stichwort Load balancing zum Beispiel, das
- 34:05heißt du kannst dann im Endeffekt genau dirigieren und
- 34:08sagen das. Als Küchenchef.
- 34:10So jetzt bitte, wir brauchen so und so viel Töpfe, wir brauchen
- 34:13so und so viel Leute, die jetzt zum Beispiel die Nudeln kochen
- 34:16oder die und die Soße zubereiten und so weiter ne.
- 34:19Und zwar so, dass du dann im Endeffekt auch zum Beispiel
- 34:21sowas wie Überlast Verhinderst, weil es bringt ja auch nichts,
- 34:24wenn du keine Ahnung, sagen wir mal, du hast n Restaurant ne und
- 34:28willst jetzt für ne kleine Gruppe für ne Geburtstagsgruppe,
- 34:31die einfach sehr exquisit sagen, wir wollen jetzt den ganzen
- 34:34Laden mieten, weil wir sind jetzt hier 12 Leute und das soll
- 34:37jetzt wirklich, es ist der 90. Geburtstag und das ist richtig
- 34:40super ne so keine Ahnung. Und dann gibt's jetzt aber ne
- 34:43Großveranstaltung, ne. Ich meine, das liegt auf der
- 34:46Hand, dass man da vielleicht ein Paar mehr, ich nenne es jetzt
- 34:48mal extra Instanzen braucht für, sagen wir mal,
- 34:53kochunterstützung. Ja genau, es ist ja, es ist.
- 34:57Kann man sich wirklich ganz klassisch vorstellen, ne, also
- 35:00der Küchenchef deren Aufgabe ist es ja einfach zu sagen, wann
- 35:06brauche ich denn mehr küchenhilfen oder mehr
- 35:09Köchinnen, wie auch immer mehr Köche aber.
- 35:12Einfach nur zum Beispiel anhand von Veranstaltungen oder von von
- 35:18Wochentagen abhängig. So ist es ja am Ende bei einer
- 35:21normalen kleinen Server Anwendung zum Beispiel auch.
- 35:24Ja wenn du sagst ey, weißt du, am Wochenende haben wir einfach
- 35:28eine höhere Last als Montag, genauso ist es im Restaurant, am
- 35:31Wochenende kommen mehr die Lust haben Essen zu gehen als Montag,
- 35:34wobei vielen Ruhetag ist. Und genau das ist der Punkt ne
- 35:38diese. Effiziente Verteilung von
- 35:40bestellen, verhindern von Überlastung was du gerade
- 35:42meintest und das kann man halt mit diesem Küchenbeispiel mit
- 35:45dem Restaurantbeispiel einfach auch gut verdeutlichen.
- 35:48Am Ende ja. Ja, ich mein, wenn du das ganze
- 35:50jetzt noch mal ein bisschen auf, auch auf auf was technischeres
- 35:53münzt und ich hatte ja vorhin zum Beispiel E Commerce gesagt,
- 35:58es gibt ja auch bei einem riesengroßen E Commerce
- 36:00Anbieter, gibt es ja auch so Special Tage ne wo dann eben
- 36:04besondere Angebote über den Tisch gehen.
- 36:09Und da ist ja auch selbst bei bei denen selber.
- 36:13Sozusagen ist es ja bekannt, dass einfach die Last, also dass
- 36:17einfach viel mehr Leute dann auf die Seite gehen, auf der Seite
- 36:21kaufen und so weiter und das ist ja genau zum Beispiel, das kann
- 36:23man sich gut vorstellen, weil du hast beispielsweise als Service
- 36:26hast du zum Beispiel als als als Micro Service hast du zum
- 36:30Beispiel die Website, wo du nach den Produkten gucken kannst.
- 36:35Wenn du es jetzt aber zur Bezahlung geht, hast du ein
- 36:37Bezahlservice. Das heißt, du musst dann immer
- 36:39gucken und wenn du es richtig stark machst, dann hast du ja
- 36:42zum Beispiel in der Zeit, wo du auf einmal vielleicht sehr, sehr
- 36:45viele User auf deiner Seite hast, die Sachen in den
- 36:49Warenkorb packen und so weiter aber noch nicht bezahlen, weil
- 36:52sie sich denken, ich gucke erstmal noch mal.
- 36:54Ich packe mir schon mal was rein, vielleicht packe ich
- 36:55hinterher wieder was raus, dann hast du vielleicht erstmal zu
- 36:58einem bestimmten Zeitpunkt am Tag hast du eine richtig eine
- 37:01richtig große Last auf deiner Website beispielsweise
- 37:03sozusagen, ich nenne es jetzt mal Produkte.
- 37:05Produkte anschauen, so dieser Service ne und dann musst du in
- 37:10der Stelle ne. Bei deiner Orchestrierung siehst
- 37:13du OK load balancing, ich muss quasi mehr Instanzen von meiner
- 37:16Website hochfahren, damit genügend Leute auch flüssig sich
- 37:19diese Produkte angucken können. Wenn du jetzt aber an einem
- 37:22anderen Tageszeitpunkt zum Beispiel ne keine Ahnung
- 37:25Feierabend bei vielen Leuten die denken sich so so und jetzt
- 37:28kaufe ich mal ne Runde. Da musst du vielleicht den
- 37:30Bezahlservice hochskalieren und mehr Instanzen von deinem
- 37:33Bezahlservice machen, damit auch wirklich nicht irgendwie eine,
- 37:36sagen wir mal, eine Zahlung untergeht, weil es ist ja nichts
- 37:39schlimmer, als wenn du sagst, okay, jetzt möchte ich bezahlen,
- 37:42Herr lädt, was passiert hier gerade, habe ich jetzt bezahlt,
- 37:44habe ich nicht bezahlt, kriege ich mein Produkt oder kriege ich
- 37:46es nicht so ne und damit so was halt eben nicht auftritt, kannst
- 37:49du dann halt genau durch deine Orchestrierung ne genau diese.
- 37:54Verschiedenen zu verschiedenen Zeiten verschiedene
- 37:56Microservices halt eben. Balancen beispielsweise.
- 38:00Genau, ja, sehr gutes Beispiel. Ich mein ich, man kann das ja
- 38:06auch, um noch mal diesen VM vergleich zu machen, ne also
- 38:09wenn du jetzt zum Beispiel sagst lass uns n ganz einfaches
- 38:14Beispiel nehmen, also zum Beispiel E Commerce ja OK.
- 38:18Gehen wir mal das. Also du hast sag ich mal n
- 38:20Webserver irgendwo. Ja, also jetzt zum Beispiel NOJA
- 38:22SN ganz simplen Webserver E Commerce hast vielleicht jetzt
- 38:26noch ja n Angular Frontend oder oder irgendwie was in Python
- 38:30auch sehr beliebt und in dem Fall um das Skalieren zu können
- 38:35mit der Orchestrierung wie du meintest wenn wir uns das jetzt
- 38:37mal in der VM noch mal vorstellen, ne um das noch mal
- 38:39klar zu herauszukristallisieren, in der VM würde das ja bedeuten,
- 38:46dass. Beide Apps, ja, also der
- 38:48Webserver als auch das Frontend ja in einer VM in einer großen
- 38:52VM laufen müssen zwangsläufig und du ne superenge Kopplung
- 38:57dadurch erzeugst. Ja, weil die immer voneinander
- 39:00abhängig sind von ihren Umgebungen, auch das heißt du
- 39:03kannst es nicht unabhängig skalieren, du kannst da nicht so
- 39:06was machen wie. Ja, warte mal.
- 39:08Jetzt sind aber viele auf dem Shop.
- 39:09Ja, also viele auf unserem Frontend unterwegs.
- 39:11Wir brauchen jetzt mehr Instanzen, ja und dadurch hast
- 39:14du halt diesen hohen Overhead oder einfach das Küchenbeispiel,
- 39:18ja der der der Workload geht hoch von keine Ahnung, Spaghetti
- 39:24Bolognese wird ganz ganz viel bestellt gerade, aber ich hab
- 39:26jetzt noch ne Pizza da drin scheißegal schmeiß die Nudeln
- 39:28drauf die du warm. Gemacht hast.
- 39:31Das das funktioniert ja nicht am Ende.
- 39:33Deswegen hast du es da, Pizza. Genau, stimmt genau, dann musst
- 39:37du einfach die Karte kurz und mit Containern kannst du das
- 39:41halt machen, weil dann hast du halt um das Beispiel noch mal
- 39:43von dir aufzugreifen, denn separates Image für zum Beispiel
- 39:46den No JS Server und für die Engula für das Frontend oder
- 39:49Python, wie auch immer, so kann man sich ja aussuchen und du
- 39:52kannst sie unabhängig voneinander deployen, du kannst
- 39:55sie unabhängig voneinander skalieren und kubanet ist jetzt
- 39:58als Beispiel für deine Orchestrierung, erkennt dann zum
- 40:01Beispiel die Last und kann dann in dem Fall Pods mehr Pods
- 40:05starten für. Frontend beispielsweise und du
- 40:07hast halt dieses automatische Management dann und das ist halt
- 40:10ne unfassbar geile Sache, die es wert ist sich anzugucken und wo
- 40:17halt unfassbar viel auch drauf basiert, einfach heutzutage,
- 40:19damit es überhaupt so läuft wie wir es kennen.
- 40:22Ja ja genau. Also wenn man das jetzt ganze
- 40:25das Ganze noch mal zusammenfasst, wir haben es ja
- 40:27jetzt auch relativ. Ausführlich beleuchtet das
- 40:30Ganze. Genau machen wir einen Rapper
- 40:32jetzt hier. Und wenn man sich jetzt mal
- 40:34anguckt, okay, was sind eigentlich so denn am Ende die
- 40:37Vorteile von containerisierung containerisation nenn es wie du
- 40:41magst. Also einmal hast du einheitliche
- 40:44deployments, weil du halt eben immer die gleiche Konfiguration
- 40:47für dein Image beispielsweise hast.
- 40:49Für dein nennen wir es mal Docker Image.
- 40:53Es ist auf jeden Fall plattformunabhängig.
- 40:56Du hast ne riesengroße Ressourcenersparnis.
- 40:59Der Start deiner Anwendung, deines Microservices, was auch
- 41:04immer geht es sehr sehr schnell vonstatten.
- 41:06Du hast ne oder kannst ne bessere Auslastung gewährleisten
- 41:10durch deine Orchestrierung und wie ich schon meinte,
- 41:14Microservices unterstützt halt eben auch Microservices und
- 41:17ermöglicht eigentlich auch ne effiziente sagen wir mal CICD
- 41:22Pipeline im. Gerade im def Ops Kontext also
- 41:25auch eine hohe Automatisierung, was natürlich auch im Def Ops
- 41:29Bereich sehr wichtig ist, sollte man sich quasi immer Fragen im
- 41:32Def Ops Bereich, was kann ich automatisieren wenn ich das
- 41:36schon mehrmals manuell gemacht habe oder wie kann ich es
- 41:40automatisieren und ist halt einfach mal wenn man es so sieht
- 41:44eine Grundlage für diese ganzen Cloud native Architekturen.
- 41:48Ich glaube ohne wird es schwierig.
- 41:53Ja. Und es verhindert die Spaghetti
- 41:56auf der Pizza, haben wir festgestellt.
- 41:57Ja, aber manche mögen. Manche, manche wollen sowas ja,
- 42:05ja, ich glaub dann haben wir das Thema echt gut abgehakt.
- 42:08Hat mir mega Spaß gemacht fab ich find das auch super
- 42:10spannend, ich steh total auf das Thema.
- 42:14Sehr spannend, hat Spaß gemacht. Vielen Dank dafür.
- 42:15Danke dir auch Tino und dann würde ich sagen, kommen wir zum
- 42:18Ende, wenn es noch Themenwünsche gibt, wie zum Beispiel auch
- 42:22Gegenüberstellungen, was wir schon meinten im Micro Services
- 42:24gegen Monolithen, neue versus alte Infrastrukturen, dann
- 42:30schreibt uns ganz gerne einfach über die Mail Instagram,
- 42:33Discord, wie auch immer, die Links dazu gibt es auf jeden
- 42:36Fall den Show Notes. Auch wenn ihr andere Themen
- 42:39habt, die Euch irgendwie interessieren, immer raus damit.
- 42:41Wir können auf jeden Fall gerne ne Podcast folge drüber machen.
- 42:45Ja und ansonsten wird es uns mega mega mega freuen wenn ihr n
- 42:49kleines Feedback, also ne Bewertung für den Podcast da
- 42:52lässt und vielleicht auch einfach den Podcast empfiehlt
- 42:56einfach 2 Freunden oder Freundinnen und denkt natürlich
- 42:59daran um keine Folge zu verpassen, den Podcast natürlich
- 43:02auch zu abonnieren. Ansonsten bleibt mir nichts
- 43:06anderes zu sagen als Tino. Ich werde mir jetzt erst mal was
- 43:09zu essen gönnen, ne schöne Pasta Pizza.
- 43:13Ne schöne Pasta Pizza. Also ich hoffe ihr habt jetzt.
- 43:19Auch. Ordentlich Hunger und könnt was
- 43:20essen und wir hören uns einfach nächste Woche wieder in der
- 43:23neuen Folge deine Coding war das.
- 43:25Gemeinsam besser.