Latest / Coding Buddies | Tech & Dev-Mindset / Was sind eigentlich Container?
Transcript
- 0:00Brauch eigentlich nur die Seal. Eigentlich brauch ja nicht das
- 0:01ganze Kladderadatsch drumherum und da ist Kladderadatsch ist
- 0:06ein Wunder wundervolles Wort Coding Buddies Dein Podcast rund
- 0:12um Softwareentwicklung und aktueller Tech News.
- 0:15Herzlich Willkommen. Halli Hallo und herzlich
- 0:30Willkommen zur neuen Folge vom Coding Buddies Podcast mit mir,
- 0:34dem Fabi und natürlich auch dem Tino, der mir hier virtuell
- 0:37schon gegenüber sitzt und ins Mikro grinst.
- 0:42Moin. Tino geht ab.
- 0:44Wie geht's? Herzlich Willkommen.
- 0:47Alles alles gut zu weit, alles gut.
- 0:50Ich bin bereit für die Folge, ich habe Bock, du bist bereit,
- 0:54das ist schön, wir können ja auch gleich relativ schnell rein
- 0:57starten, vorher wollen wir noch mal einmal ganz kurz.
- 1:00Uns starten wir doch nicht schnell rein.
- 1:04Na gut. So gut wie ich wollte mich noch
- 1:08mal in unserem Namen bei Kai bedanken, denn Kai hat eine
- 1:12kleine Spende über den. Wir wollen unseren Spenden Link
- 1:16in den Shownotes hat uns eine kleine Spende zukommen lassen
- 1:20und das nicht zum ersten Mal. Also vielen, vielen Lieben dank
- 1:23Kai vielen vielen Dank. Das freut uns mega und auch an
- 1:28Johanna einen großen Dank, denn Johanna hat auch was gespendet
- 1:31und hat dazu geschrieben, dass sie zwar eigentlich gar nicht
- 1:33ursprünglich aus der Softwareentwicklung kommt, aber
- 1:37Berührungspunkte hat und unsere Infos super hilfreich findet und
- 1:40das freut uns natürlich mega. Ja, auch vielen Dank an dich,
- 1:43Johanna, vielen Dank. Alright genau, und jetzt würde
- 1:47ich sagen, bevor wir ins Thema starten, ich weiß ja, geht es
- 1:51noch mal ganz kurz. Kleiner Reminder, es läuft ja
- 1:53gerade die Implementierungsphase noch von unserem aktuellen
- 1:56Programmierwettbewerb Flappy Buddy und da gibt es natürlich
- 2:01coole Sachen zu gewinnen, da auf jeden Fall mitmachen ist.
- 2:06Also wenn ihr Infos dazu braucht auf unserer Homepage auch in den
- 2:09Show Notes verlinkt Tino, Was gibt es denn da zu gewinnen?
- 2:11Sagt doch mal kurz. Ja, also der erste Preis, also
- 2:15der erste Platz, bekommt 2 Tickets für die WEA Developers
- 2:17Konferenz dieses Jahr im Juli findet sie statt in Berlin, die
- 2:24Leute und Jungs und Mädels von WEA Developers haben uns quasi 2
- 2:27Tickets gesponsert für unser Turnier, auch da noch mal vielen
- 2:29vielen lieben dank und das ist natürlich mega geiler
- 2:32Hauptpreis, denn das ist die größte Entwicklerkonferenz
- 2:35Europas und es gibt jedes Jahr unfassbar spannende Themen und
- 2:38Vorträge. Und Platz 2 und 3 bekommen
- 2:41jeweils eine limitierte Flappy Buddy Tasse.
- 2:45Ich habe auch den Prototypen vor mir und trinke gerade einen
- 2:47Kaffee dadraus sie sieht fantastisch aus, Leute wirklich
- 2:50allein dafür lohnt sich schon und Platz 2 kriegt zusätzlich
- 2:53noch einen Wunschgutschein im Wert von 50.
- 2:56Euro sehr sehr geil. Ich trinke übrigens auch aus dem
- 2:59Prototypen, jeder braucht. Ja, einen Prototypen.
- 3:03Um es für gut zu befinden, ganz genau.
- 3:06Und für alle, die sich sagen, Ey, ja, ich mach zwar nicht beim
- 3:09Wettbewerb mit, möchte aber vielleicht doch irgendwie noch
- 3:11was in Benefit haben. Coding Buddies 10 gibt 10% auf,
- 3:17zum Beispiel wenn auf auf n Ticketkauf zum Beispiel bei bei
- 3:20der WEA Developer genau ja super OK, dann haben wir ja das
- 3:25organisatorisch abgehakt, jetzt können wir das Thema starten,
- 3:27ist die Werbung wieder vorbei, jetzt genau was worum geht es
- 3:32denn heute? Hau doch mal raus.
- 3:35Wir haben uns heute n Grundlagenthema ausgesucht, was
- 3:38so in aller Munde ist oder sehr weit verbreitet.
- 3:41Aber vielleicht weiß der eine oder andere, der vielleicht noch
- 3:44so am Anfang der Softwareentwicklungskarriere
- 3:46steht, noch nicht so wirklich was damit anzufangen und es ist
- 3:49aber wirklich n sehr wichtiges Thema und deswegen denke ich, es
- 3:51ist cool, wenn wir da heute mal so ne grundlagenfolge, so ne so
- 3:55ne überblicksfolge machen und zwar zum Thema Container in der
- 3:58Softwareentwicklung klingt doch gut und da einfach auch mal
- 4:01klären quasi. Warum sind Sie so wichtig?
- 4:04Was sind überhaupt Container und ja, quasi als Ziel setzen da den
- 4:09Überblick zu geben, damit jeder sich nach der Folge denkt, ach,
- 4:11jetzt weiß ich, was Container sind und ich weiß, warum sie
- 4:14wichtig sind. Ganz genau.
- 4:16Zusätzlich wollen wir auch noch n bisschen das ganz abgrenzen zu
- 4:19VMS, also virtuellen Maschinen, also weil man könnte sich ja
- 4:23vielleicht denken, so OK, virtuelle Maschinen hab ich auch
- 4:25schon mal gehört, irgendwie ist das für mich alles so ein Brei,
- 4:28dass man da auf jeden Fall auch noch mal n Überblick kriegt.
- 4:30Was denn überhaupt? Der Unterschied dann zu einer
- 4:32virtuellen Maschine ist, ne. Ja, ich mein um das ganze Mal
- 4:37einzuleiten, können wir uns ja mal folgendes Szenario
- 4:39vorstellen. Stell dir immer noch mal eine
- 4:43Zeit vor Containern vor oder auch virtuelle Maschinen, wie du
- 4:47gerade genannt hast du wirklich mal komplett ohne mit Feuer?
- 4:49Machen noch so eine. Sache ja genau, also du hast
- 4:52quasi, du warst gerade so in der Höhle am Feuer machen und
- 4:55nebenbei ist dein Windows PC hochgefahren weiß ich nicht was
- 4:58war das für ein Windows 95? Nein, also ganz so weit
- 5:03natürlich nicht zurück aber schon in die in das Zeitalter
- 5:07der PC s. Und jetzt stell dir noch mal
- 5:10vor, du hast du jetzt mehrere Leute die an gewissen Projekten
- 5:13arbeiten oder Leute kommen dazu oder du musst einfach ja
- 5:19Software Lösungen die du bereitstellt skalieren.
- 5:22Und wie anstrengend war es eigentlich immer gleiche
- 5:26Bedingungen zu schaffen auf dem Zielsystem oder auf deinem
- 5:29eigenen System um überhaupt erstmal in die Entwicklung zu
- 5:32kommen oder gewisse Softwarelösungen laufen lassen
- 5:36zu können alle. Sag ich mal Abhängigkeiten
- 5:40aufzulösen und das ist halt genau der Ansatzpunkt, wo man
- 5:43sagt, OK, da, da hat man was für gebraucht, das hat einfach
- 5:46unfassbar viel Zeit gefressen und war fehleranfällig hoch 10
- 5:51ne und da kam oder kommen auch immer noch.
- 5:55Die Container ins Spiel und deswegen lass uns doch mal kurz
- 6:00definieren, was sind Container und wie können Sie jetzt dabei
- 6:03helfen zu sagen, Hey, wir können jetzt ganz einfach auf PCA und b
- 6:08das gleiche laufen lassen und müssen nicht erst mal gucken was
- 6:12ist bei A anders, was ist bei B anders, wie kriegen wir sie
- 6:14gemeinsam? So, ja, aber was du gerade noch
- 6:17gesagt hast hier mit diesem gleiche Umgebung schaffen und so
- 6:20weiter ne also ich meine das kennt man ja heutzutage
- 6:22tatsächlich auch irgendwo noch. Also angenommen du hast jetzt
- 6:25zum Beispiel, ich rede jetzt ein bisschen aus dem Nähkästchen,
- 6:28weil ich finde das gerade so bei bestimmten App Frameworks, wenn
- 6:31du mit Apps arbeitest. Da hatten wir ja zum Beispiel
- 6:34auch in kürzerer Vergangenheit mal so das Problem, dass quasi
- 6:39auf du hast es eingerichtet, ich habe es eingerichtet, wir haben
- 6:42irgendwie entwickelt und dann hatten wir es in Repo geballert
- 6:45und. Und ich hab mir das dann zum
- 6:46Beispiel gezogen und du hast jetzt gezogen und dann wusste
- 6:49man erstmal ging es nicht, weil irgendwie einer hatte ne falsche
- 6:52Version von von ne Android ne falsche Android Version oder was
- 6:56auch immer drauf auf dem Rechner.
- 6:58Sowas ist halt auch manchmal einfach nervig.
- 7:01Ne genau. Und das ist genau der Grund
- 7:02warum man sich sowas wie Container dann überlegt hat.
- 7:05Also weil Spoiler war. Wir haben es da halt nicht
- 7:08verwendet und dann haben wir natürlich genau diese Painpoints
- 7:10wieder gespürt. Ja, richtig, genau und also n
- 7:13Container an sich. Ist ja im Endeffekt eine
- 7:16virtuelle Umgebung, bei der sozusagen Software oder
- 7:21Softwarepakete mit entsprechenden Abhängigkeiten
- 7:24sozusagen gebündelt werden. Und ein Container heißt ja nicht
- 7:28um, also ohne Grund Container, weil es geht ja wirklich darum,
- 7:31dass du wieso ein Schiffscontainer hast, wo du
- 7:34bestimmte Sachen reinpackst ne und dann wird das halt einfach
- 7:38dann, dann hast du alles was da drin ist.
- 7:39Ne und das das was du brauchst. Aber ich hab da noch ne ganz
- 7:44kleine Analogie mal wieder mitgebracht.
- 7:47Also theoretisch ist natürlich auch die Containeranalogie auch
- 7:50irgendwo ne, also der Vergleich mit Containern auch irgendwo ne
- 7:53Analogie, da kommt es ja her, aber um sich das vielleicht noch
- 7:57mal n bisschen anders vorzustellen, wenn man also
- 8:00angenommen, man hat zum Beispiel n Restaurant ne und sagt ich
- 8:03möchte jetzt essen irgendwie verfügbar machen und es soll
- 8:06irgendwie immer gleich schmecken, ne?
- 8:11Und wenn du jetzt zum Beispiel sagst okay, du hast jetzt die
- 8:13klassische Installation auf einem Computer ohne Container,
- 8:17so wie wie du es am Anfang gesagt hast, eine Windows 95 in
- 8:21der Höhle mit dem Feuer, da kann man sich das ungefähr so
- 8:26vorstellen. Wenn du das mit diesem
- 8:27Restaurant vergleichst, dass du eigentlich, wenn du sagst okay,
- 8:31du hast irgendwie ein Rezept, also du verschickst am Ende
- 8:34nicht das Essen, sondern verschickst eigentlich nur das
- 8:36Rezept und hoffst halt, dass. Die Küche, in der das dann
- 8:41nachgekocht wird, dieses Rezept, auch wirklich alles da hat, also
- 8:44dass du quasi die gleichen Zutaten auch wirklich dort
- 8:47vorhanden hast, die du brauchst, dass du wirklich auch den den
- 8:49richtigen Herd hast, dass du, dass der Herd auch die richtige
- 8:52Temperatur erreicht, solche Sachen, ne, das ist sozusagen
- 8:55die Analogie zu diesem Rechner. Wenn du jetzt sagst, OK,
- 8:58virtuelle Maschinen, das ist ja, gehen wir auch noch ein bisschen
- 9:01näher drauf ein, aber das ist ja so ein Zwischenschritt, da würde
- 9:04man im Endeffekt in dieser Analogie ne kleine Miniküche
- 9:08verschicken. Wo du sagst, OK, das ist hier,
- 9:10guck mal das ist ne Küche, da ist n Herd dabei, da ist n Ofen
- 9:13dabei, da hast du noch ne Pfanne die Gewürze, das hast du alles
- 9:16mit drin und gibst das dann sozusagen raus und dann kannst
- 9:19du dir das Essen nachkochen so und dann hast du ja irgendwie
- 9:23mehr oder weniger alles was du brauchst.
- 9:24Da ist natürlich aber relativ ja gut, man merkt schon relativ
- 9:29schnell, dass da man da ne miniküche verschiffen muss, das
- 9:31ist vielleicht nicht gerade sehr effizient und so n Container an
- 9:34sich, das ist. Kannst du dir dann in dieser
- 9:37Analogie so vorstellen, dass du eigentlich essensboxen
- 9:41rausschickst, wo das Essen, was du brauchst, sozusagen alles
- 9:44schon drin ist? Ist fertig.
- 9:45Das ist immer das Gleiche, also jede Essensbox, die du
- 9:48rausschickst ist quasi immer das gleiche, was da drin ist.
- 9:50Und du hast halt genau das was du willst, ist dort vorhanden.
- 9:54Ja, ist eine ganz coole Analogie und ich finde, es zeigt halt
- 9:57auch einen wichtigen Punkt, wenn man jetzt schon mal bei VMS ist.
- 10:03Weil, was man sagen kann, auf jeden Fall auch, was man jetzt
- 10:05an der Analogie schon versteht, ist, dass Container auf jeden
- 10:08Fall viel leichtgewichtiger sind als VMS, weil wie du so schön
- 10:12gesagt hast, ne VM. So du schickst die ganze Küche
- 10:15mit, wir werden das gleich noch mal genau technisch fachlich
- 10:18definieren, aber das zeigt halt auch schon in der Analogie, Hey
- 10:21warte mal das eine, da schick ich quasi viel weniger oder ich
- 10:24brauch viel weniger als bei bei der ganzen Küche die ich
- 10:27mitschicke und sage ey hier hast du ne ganze Küche, jetzt musst
- 10:30du aber noch kochen sozusagen. Das ist auf jeden Fall eine
- 10:32ganz, ganz coole Gegenüberstellung, weil wenn man
- 10:37sich jetzt einen Container anguckt.
- 10:39Also du hast gesagt, das ist eine virtuelle Umgebung, die
- 10:42bündelt quasi Abhängigkeiten, die also die Software quasi um
- 10:46gewisse Prozesse laufen zu lassen oder Funktionalitäten
- 10:52anbieten zu können, Softwarelösungen zu beinhalten
- 10:55und. Deswegen lass uns doch mal
- 10:57gucken, was was beinhaltet. So n Container.
- 11:00Du hast ja auch gesagt, so jetzt so am Hafen so n schöner
- 11:03Schiffscontainer, was kann da jetzt so alles drin sein ne?
- 11:07Also wir haben natürlich zum einen den Code der Anwendung
- 11:10sagen wir mal also wir wollen jetzt ne Anwendung innerhalb
- 11:12dieses Containers laufen lassen, dann ist natürlich da auch.
- 11:16Der Code drin sag ich mal. Also die Anwendung an sich, die
- 11:18ausgeführt werden kann. Wir haben die Abhängigkeiten,
- 11:22das haben wir jetzt ja schon mehrfach gesagt, weil das ist
- 11:24halt wirklich der große Benefit, dass ich immer dadurch ne
- 11:27Umgebung schaffe, wo drin unsere Anwendung laufen kann, das ist
- 11:31ja der große Vorteil, das heißt nicht Dein PC muss dafür sorgen,
- 11:35dass alle Abhängigkeiten da sind, sondern die sind jetzt
- 11:38Gekapselt in unserem Container, zusammen mit der Anwendung.
- 11:42Was sind so Abhängigkeiten, Bibliotheken, Frameworks, alles
- 11:46alle, so alle Randbedingungen, die wir quasi brauchen.
- 11:49Wir haben eine Konfiguration auch wahrscheinlich da drin
- 11:52liegen, wie soll unsere Software laufen, wie soll sie
- 11:54aufgestartet werden, gibt es verschiedene Modi die ich quasi
- 11:58von außen triggern kann, sozusagen ja und eine
- 12:02Laufzeitumgebung ne, also das ganze muss natürlich auch sag
- 12:06ich mal. Ne Runtime haben um ausgeführt
- 12:09werden zu können. Das heißt, dass ich von außen
- 12:11sagen kann, Container A leg los oder ich gebe jetzt jemand
- 12:15Container a und sag drück Start so und dann macht Container a
- 12:19was es soll so wie er hergestellt wurde sag ich mal ne
- 12:24also im Prinzip bei dir mit dem Essen so wir haben da alles
- 12:27vorbereitet es ist genau das was der Kunde erwartet nach dem
- 12:31Motto hier hast du jetzt deinen Teller.
- 12:33Lass dir schmecken. Weißt du ja genau, Besteck ist
- 12:36auch noch drin, weil du kannst ja theoretisch nicht davon
- 12:39ausgehen, dass so wirklich Besteck überall vorhanden ist.
- 12:41Nur mal so als Beispiel ne. Also du hast halt wirklich alles
- 12:43was du im Endeffekt brauchst um dein Ziel zu erreichen.
- 12:46In der Analogie war es natürlich, dass man das Essen
- 12:49essen kann, ne. Genau.
- 12:51Aber. Was, wo ich irgendwie dran
- 12:53denken muss, ist, wenn man jetzt zum Beispiel oder noch NN
- 12:57gewisser Vorteil davon von von solcher containerisierung,
- 13:00Containerisierung wie Containerisation, wie man das so
- 13:03nennen mag, ist ja auf jeden Fall, dass du ja, wie du schon
- 13:08meintest, du brauchst es nicht auf deinem Rechner, es ist nur
- 13:10in dem Container, bedeutet also wenn du den Container wieder
- 13:14wegschmeißt, hast du keine Veränderungen.
- 13:17Auf deinem zugrundeliegenden System, und das ist ja irgendwie
- 13:21das Schöne, weil angenommen, und das ist mir auf jeden Fall schon
- 13:24mal passiert, dass man ne Node version hatte, ne und du hast
- 13:28Node Versionen, die dann vielleicht auch kompatibel sind
- 13:31mit anderen Frameworks und ab einer bestimmten Version ist das
- 13:34dann nicht mehr so. So, und dann musst du zum
- 13:37Beispiel vielleicht, also du hast dann vielleicht irgendwie
- 13:39dein dein System und sagst, OK, ich bin jetzt an der und der
- 13:42Anwendung dran, was auch immer ich möchte jetzt irgendwie auf
- 13:44einer, ich muss jetzt irgendwie meine Note Version updaten, so
- 13:48und dann machst du das vielleicht weil du ja die an mit
- 13:52dieser Anwendung arbeiten möchtest oder wie auch immer
- 13:54oder daran entwickeln möchtest. Ja.
- 13:57Und dann hast du aber eventuell das Problem.
- 14:00Dass du halt wieder bei einer anderen Anwendung vielleicht
- 14:03wieder ne andere Notversion haben musst.
- 14:05So klar kann man sich jetzt hinstellen und sagen, ja gut,
- 14:08Update doch immer so. Das ist natürlich auch das
- 14:10Beste, aber die Praxiserfahrung zeigt, dass das nicht immer so
- 14:14hundertprozentig so gut funktioniert, dass man sagt, sei
- 14:16mal immer to date ne, warum auch immer, sicherlich kann man sich
- 14:22hinstellen und sagen NÖ, aber das gibt es bei mir nicht.
- 14:24OK, das ist auch sehr sehr gut, wenn es das nicht gibt.
- 14:27Aber wenn du in dieser Situation bist und dann zwischen diesen
- 14:30Node Versionen switchen musst, kann das durchaus anstrengend
- 14:33sein und definitiv, das kann man halt super vermeiden, wenn man
- 14:37zum Beispiel das Ganze in Container packt.
- 14:40Also gerade wenn ich jetzt in so einer Welt wie in der
- 14:43Webentwicklung unterwegs bin, weil du jetzt Node zum Beispiel
- 14:46genannt hattest. Das ist ja auch sehr
- 14:49schnelllebig und du kommst schnell an dem Punkt, dass
- 14:51irgendwas nicht mehr unterstützt wird.
- 14:53Neuere Version verlangt, dann hast du aber vielleicht noch
- 14:55ältere Projekte, die auf älteren Versionen sitzen und genau dann
- 14:59kommst du genau in diese Bredouille oder was du meintest
- 15:02vorhin mit unserem mit unseren noch gar nicht so lang, ist noch
- 15:06gar nicht so lange her, die Erfahrung.
- 15:08Mit mit der App Entwicklung, dass wir da auch verschiedene
- 15:11Frameworks genutzt hatten, die dann auch genau diese
- 15:14Abhängigkeiten hatten. Und dann hat sich bei einem
- 15:16sozusagen die Uhr schon weiter gedreht in der Version, der ist
- 15:20schon ein bisschen neuer unterwegs gewesen als der andere
- 15:22und dann hat es einfach gar nicht mehr zusammengepasst.
- 15:24Und dann konfigurierst du a. Das läuft aber nicht mehr beim
- 15:27anderen, der konfiguriert B und dann läuft es bei A nicht mehr
- 15:30und so ist es ja im Prinzip ein Hin und her irgendwann und das
- 15:34ist halt der riesen Vorteil. An Containern, dass du sagen
- 15:38kannst, OK, diese Anwendung, die ich jetzt in diesen Container
- 15:41packe, hat ihre eigene Umgebung und sie läuft unabhängig von
- 15:45meiner Umgebung, und das ist das Entscheidende dabei.
- 15:48Also ich kann dir das geben und egal wie es bei dir aussieht.
- 15:51Es wird laufen, solange du halt quasi die die Runtime hast.
- 15:55Ne, Wir haben ja gesagt, es muss natürlich auch ne
- 15:56Laufzeitumgebung gehen, damit du es laufen lassen kannst.
- 15:59Ne, das ist natürlich immer noch ne Sache, die brauchst du aber
- 16:03das ist wirklich n sehr geringes Übel im Vergleich zu der Welt
- 16:06wie es vorher war, wie wir es jetzt schon erklärt hatten und
- 16:10dann kann ich dir das einfach geben und du kannst es laufen
- 16:12lassen, dich muss ja nicht mal interessieren.
- 16:15Also du solltest schon wissen was da drin läuft, ja klar.
- 16:18Auch hinsichtlich Security und Isolation.
- 16:20Da kommen wir auch noch drauf, das ist nämlich auch ein
- 16:22wichtiger Punkt, aber einfach im Prinzip genau, im Prinzip kannst
- 16:26du es aber, wenn du weißt, was es ist, es ausführen und nutzen
- 16:29sozusagen und musst dir keine Gedanken um das in Leben so
- 16:33gesehen machen. Aber das ist, finde ich, auch
- 16:35ein ganz guter Punkt, den du nennst.
- 16:37Wenn man jetzt das Ganze noch weiterdenken möchte.
- 16:40Du hast natürlich auch einfach dann in diesem Moment genau die
- 16:43Möglichkeit zu sagen, ich habe hier einen Container.
- 16:48Den kann ich quasi überall dort, wo ich dann eben diese
- 16:51entsprechende Runtime auch eben hab, kann ich das halt auch
- 16:53laufen lassen, also auch genau die gleiche, ich sag mal eine
- 16:57Instanz dieser klasse nenn ich das jetzt einfach mal so aus der
- 17:01Objektorientierung, aber weißt du, dass du halt wirklich sagen
- 17:04kannst? OK, das ist der Container und
- 17:06egal wo ich diesen einen solchen Container sozusagen
- 17:09instanziiere. Dort ist genau das auch wirklich
- 17:13da. Also du weißt was du da hast.
- 17:15Das ist wie eine Kopie dann am Ende und ohne irgendwelche
- 17:19Konflikte mit irgendwelchen Versionen hier, Versionen da
- 17:22oder was auch immer, sondern es funktioniert einfach.
- 17:24Genau, lass uns mal, weil wir jetzt schon gesagt haben, also
- 17:31das war jetzt schon so ein großer Vorteil, lass uns doch
- 17:34mal gucken wofür warum das Ganze mit den Containern und mal jetzt
- 17:38so wirklich die. Benefits noch mal klar
- 17:40rausstellen, weil ich finde, das motiviert am meisten, sich mit
- 17:44diesem Thema auseinanderzusetzen.
- 17:45Wirklich mal zu verstehen oder sich vor Augen zu führen, was
- 17:49bringt das ganze und wir hatten jetzt ja sage ich mal, ich nenne
- 17:53es mal, es ist halt portable einfach, das heißt du kannst es
- 18:00einfach auf jedes Zielsystem bringen, wie wir es gerade so
- 18:02erklärt hatten, es ausführen und das läuft, das heißt so ein
- 18:07Container. Kann auf jedem System, wo eine
- 18:10Runtime existiert ne. Da können wir auch mal Beispiele
- 18:13für Tools nennen oder ich mach es jetzt.
- 18:15Also Docker ist glaub ich n Begriff den jeder jetzt
- 18:17mittlerweile irgendwann mal gehört hat, wahrscheinlich oder
- 18:21bald hören wird, weil Docker einfach so das bekannteste Tool
- 18:25ist dafür, das heißt um dir jetzt das Beispiel mal zu
- 18:28vollenden, du hast Docker installiert und kannst einfach
- 18:32dann auch n Dockercontainer ausführen und du musst nicht
- 18:35irgendwas noch bereitstellen, dafür sag ich mal genau.
- 18:39Genau, und im Prinzip kannst du so sagen, wenn du so n Container
- 18:44hast, kannst du den Lokal zum Beispiel dir bei dir laufen
- 18:46lassen. Die Anwendung es testen oder
- 18:49halt natürlich auch in Produktion überführen.
- 18:50Es kann genauso auch dein Zielsystem im Production quasi
- 18:54dann in diesem Container laufen, was auch wirklich ne gute
- 18:57Practice ist. Ja genau ne, also nicht, dass du
- 18:59jetzt wieder anfängst production mäßig zu sagen ne ich hab jetzt
- 19:02n normales System und sorg dafür, dass da wieder alles
- 19:05bereit liegt sozusagen. So nicht also.
- 19:08Das ist ja, das ist ja das Schöne am Container, du kannst
- 19:11es halt überall verwenden, das ist ja auch ne gute Practice,
- 19:14gerade im Bereich von Def Ops zum Beispiel, dass man wirklich
- 19:16sagt, alle Umgebungen, die ich habe, sind möglichst identisch
- 19:20und damit kann, das kannst du natürlich mit Containern
- 19:22schaffen, ne, und also wir haben ja auch ne def Ops Reihe in
- 19:26unserem Podcast. Liebe Zürer lieber zürer, wenn
- 19:29es dich interessiert, da gerne mal reinhören passt perfekt.
- 19:32Rein das Thema Def Ops. Und.
- 19:35Es gibt ja neben Docker auch noch andere Container Services.
- 19:38Docker ist natürlich das bekannteste an der Stelle, es
- 19:41gibt ja zum Beispiel noch pottman, hab ich persönlich
- 19:44bisher noch nicht genutzt, muss ich sagen, also ich hab da auch
- 19:47bisher sehr viel eigentlich. Das ist sogar der Vorgänger.
- 19:50Ich weiß es nicht. Pottman ist mir aufgekommen, als
- 19:53Docker irgendwann angefangen hat.
- 19:55OK, also sag ich mal Geld zu verlangen für einen einen, wenn
- 20:00du jetzt zum Beispiel ne ne Firma bist, die ne gewisse
- 20:02Mitarbeiterzahl hat. Und da kam mir dann potman
- 20:05unter. Vorher kannte ich tatsächlich,
- 20:08also also ich kenne es auch nur als Alternative und es ist,
- 20:10glaube ich auch immer noch ne kostenfreie ne, also das ist
- 20:12wirklich dann noch das Argument für Potman.
- 20:15Mein ich mein ich ja, aber wie gesagt korrigiert gefährliches
- 20:19Unwissen. Genau.
- 20:21Schreibt uns, wenn ihr es genauer wisst.
- 20:23Aber was ich noch sagen wollte ist, wir können auf jeden Fall
- 20:26ja mal n irgendwie ein Einstiegsbuch.
- 20:28Über Container können wir ja mal in den Shownotes verlinken, da
- 20:32könnt ihr uns dann auch unterstützen, wenn ihr Lust habt
- 20:34und Lust habt dieses Buch zu kaufen und durchzulesen.
- 20:38Bücher, gute Sache. Sehr guter Punkt, ja, komplett
- 20:42unterschätzen. Aber wir gehen jetzt mal nicht
- 20:43auf das Büchermedium ein. Ich find Bücher auch immer noch
- 20:46klasse Podcast. Ist viel cooler, ja.
- 20:48Genau. N anderer Punkt und auch mal auf
- 20:52die Vorteile wieder jetzt zu kommen, den ich super wichtig
- 20:57dabei finde und wir haben es auch immer jetzt schon so
- 20:59mitschwingen lassen, ist halt die Skalierbarkeit ne also nicht
- 21:02nur ich kann es portabel von A nach B bringen ne also es ist
- 21:06easy, dass ich es auf allen Systemen ausbreiten kann.
- 21:08Genau dieser Grund sorgt natürlich auch für ne super
- 21:11geile Skalierbarkeit, ich kann es halt wirklich in die Maße
- 21:14bringen und auch sämtliche Systeme sozusagen ausrollen.
- 21:18Und das ist natürlich perfekt für beispielsweise
- 21:22Microservices. Cloud Anwendung, also wirklich
- 21:26das, was so die Hot topics auch momentan mit sind.
- 21:30Ne, dafür ist es halt einfach wirklich essentiell, muss man so
- 21:35sagen, es geht nicht ohne. Du kannst es ja auch so
- 21:38vorstellen, wenn du jetzt zum Beispiel irgendwie du hast
- 21:40angenommen, du hast irgendwie ne Anwendung, die willst du halt
- 21:42auch, zum Beispiel auch in verschiedenen Regionen launchen
- 21:45beziehungsweise hosten, dann kannst du halt sagen, OK, ich
- 21:48hab halt meinen Source Code von dieser Anwendung und den kann
- 21:51ich halt jetzt zum Beispiel in was weiß ich Amerika, Europa,
- 21:54Asien, was auch immer, kann ich das halt eben hosten und und im
- 21:58Endeffekt muss ich aber nur in Anführungsstrichen halt n
- 22:00Container zusammenbasteln und den irgendwo hochfahren ne genau
- 22:04und kann das dann in der entsprechenden Region halt eben
- 22:05auch ausrollen. Genau.
- 22:07Und da, wir hatten ja vorhin gesagt, es liegt ja auch
- 22:08meistens ne Konfiguration mit dabei, das heißt, du kannst sie
- 22:11ja auch noch dementsprechend konfigurieren.
- 22:14Ja, wenn du jetzt zu unserem, da sag ich mal, weil du jetzt
- 22:16meinst unterschiedliche Regionen wird es ja wahrscheinlich auch
- 22:18unterschiedliche Konfigurationen geben, dann schon.
- 22:21Durch irgendwelche Gesetze oder so.
- 22:22Vielleicht ne. Genau, und das sind halt
- 22:24einfach. Super Beispiele, ne, also auch
- 22:27zum Beispiel Lastverteilung ne wenn du jetzt sagst ey OK ich
- 22:30hab an einer Region ne totale Überlastung und ich kann jetzt
- 22:33ganz schnell weitere Instanzen hochfahren um ne Lastverteilung
- 22:38quasi vornehmen zu können, weil ich durch diese Container es
- 22:43halt sehr schnell umsetzen kann und nicht anfangen mir erstmal
- 22:46irgendwo n Server aufzusetzen zu gucken ob da alles installiert
- 22:49ist et cetera ne. Finde ich aber auch n ganz guter
- 22:52Punkt, der also wo ich direkt an was nächstes denken muss.
- 22:55Von einem Vorteil ist natürlich, dass du nicht nur ne schnelle
- 22:59Bereitstellung hast, sondern du kannst halt auch sehr gut n
- 23:01Rollback machen, da hatten wir auch mal in einer Def Ops folge
- 23:04drüber gesprochen, aber sage ich jetzt mal so Releases oder
- 23:06release Strategien, dass du sagst OK, du hast jetzt
- 23:09vielleicht n. Neuerungen ausgerollt in deiner
- 23:11Anwendung merkst, die funktioniert nicht und sagst
- 23:14halt einfach OK, dann fahr ich halt den alten Container zum
- 23:16Beispiel hoch mit der alten Anwendung da drin mal so als
- 23:19Beispiel ne du also. Das ist Mega vorderpunkt genau.
- 23:22Also du kannst halt wirklich. Also Sekunden klingt n bisschen
- 23:26übertrieben, aber du kannst wirklich sehr sehr schnell
- 23:28diesen Fallback einfach wieder aktiv schalten.
- 23:31Genau. Wirklich neuer Container
- 23:33runterfahren, der alte Container wieder hochfahren und das dauert
- 23:36nicht lange und dann ist die Anwendung wieder in der
- 23:38vorherigen Version. Die funktionierte, wo jetzt
- 23:40vielleicht der Fehler nicht drin ist, wieder am Start und das ist
- 23:44halt auch n Riesenvorteil. Ne nimm noch mal dein Beispiel
- 23:47mit Versionsupdates jetzt hast du deine Note Version in den
- 23:51neuen in deiner neuen Software Version hochgepackt ne also
- 23:54geupdatet hast die jetzt auf deinen auf deiner Umgebung
- 23:58installiert und sagst ich muss jetzt aber die alte wieder
- 24:01hochfahren. Oh, jetzt muss ich die aber
- 24:02erstmal noch mal wieder bauen. Ah, geht ja gar nicht mehr,
- 24:06nicht mehr kompatibel. Jetzt haben wir aber n
- 24:08Riesenproblem und genau das ist halt der Grund ne das.
- 24:11Ist halt einfach ne Zeit, also ne zeitfrage, dann am Ende ne
- 24:16definitiv ansonsten ja Konsistenz hatten wir ja auf
- 24:18jeden Fall schon gesagt, dieses typische wenn es bei mir läuft
- 24:21läuft es überall, angenommen man hat dann halt eben die
- 24:24entsprechende Runtime, aber dann funktioniert es natürlich und
- 24:29was ich auf jeden Fall noch. Anbringen würde wäre auf jeden
- 24:34Fall eine gewisse Effizienz oder Ressourcennutzung und also wir
- 24:39können das ganze halt super schnell starten und es ist halt
- 24:42ein geringer Overhead von diesem Container.
- 24:45Man sagt ja auch immer Container sind sehr light, weit im
- 24:47Verhältnis zu und da würde ich gerne auch mal direkt in den
- 24:50Vergleich zu einer VM springen im Vergleich zu einer virtuellen
- 24:54Maschine, weil zum Beispiel bei einem Container ist es ja so,
- 24:57dass du im Endeffekt eigentlich nur also nur den Kernel des
- 25:04zugrundeliegenden Betriebssystems brauchst.
- 25:07Genau den teilst du dir. Genau, und das ist ja zum
- 25:10Beispiel bei einer VM ganz anders.
- 25:13Das heißt, bei einer VM hast du ja nicht nur deine
- 25:16Abhängigkeiten, den Code und so weiter was du alles meintest,
- 25:20sozusagen gekapselt wie bei einem Container, sondern auch
- 25:23noch ein ganzes Betriebssystem dazu, also quasi aus der
- 25:27Analogie jetzt die kleine Miniküche und.
- 25:30Die du da mit Reinpackst. Ja, also man kann sich das also
- 25:35wer noch nicht mit einer VM gearbeitet hat.
- 25:37Man kann sich das halt wirklich so vorstellen, dass du einen PC
- 25:41hast und darauf lässt du einen virtuellen PC laufen mit allem.
- 25:44Also du hast halt wirklich dein dein eigenes Betriebssystem da
- 25:47drauf. Ein Klassiker ist halt ja keine
- 25:51Ahnung, hast einen Windows PC und willst eine Linux Instanz
- 25:53also Distribution noch laufen lassen.
- 25:56Ja, also wenn du es jetzt wirklich innerhalb von deinem
- 25:59Windows als virtuelle Maschine laufen lassen willst.
- 26:02Ich will jetzt nicht darauf eingehen, dass du natürlich auch
- 26:04beide parallel installieren kannst.
- 26:05Okay ja, wissen wir, aber wir gehen ja von VM s aus und dann
- 26:10hast du halt wirklich dieses Betriebssystem in deiner VM
- 26:13laufen und mit allen Ressourcen die dazu gehören.
- 26:17Das heißt es ist auch, es verbraucht auch viel viel mehr
- 26:20Speicher, du musst halt viel viel mehr Speicher bereitstellen
- 26:23um eine VM. Zu installieren, zu
- 26:26initialisieren und laufen zu lassen im Vergleich zum zum
- 26:30Container. Richtig, das da sind wir dann
- 26:34noch mal zurückgesprungen. Sozusagen noch mal kurz
- 26:38sozusagen die Ressourcennutzung, ne, wie wir jetzt quasi, das war
- 26:42ja der Bogen zur zur VM, was ist das, was die Container natürlich
- 26:47deutlich ressourcensparender macht, also nicht nur die
- 26:50Rechenleistung sozusagen, die du brauchst am Ende ne, sondern
- 26:53auch den Speicherplatz wegen. Du brauchst ja doch ein
- 26:55Betriebssystem. Auf jeden Fall guter Punkt.
- 27:00Genau. Also das ist halt der riesen
- 27:01Unterschied. Betriebssystem hast du ja
- 27:03gesagt, du hast auf einer Seite dann halt in der VM ein eigenes
- 27:06Betriebssystem und beim Container nutzt du quasi dein
- 27:10Host System, den Kernel davon genau anderer Punkt Isolation,
- 27:16weil ich ja auch vorhin meinte du solltest schon wissen was du
- 27:20da ausführst. Nicht einfach irgendein Docker
- 27:21Container hochfahren, aber da ist das.
- 27:25Sag ich mal Isolation. Genau das richtige Stichwort,
- 27:27und zwar in einem Container. Hast du eine Prozessisolation,
- 27:33das heißt, was da drin läuft, läuft auch isoliert und betrifft
- 27:37nicht dein sag ich mal den äußeren Ring von deinem System.
- 27:42Man kann sich das so vorstellen, du startest diesen, diesen
- 27:44Container, diesen Prozess und was da drin passiert bleibt da
- 27:48drin. Also es gibt dir halt schon sag
- 27:50ich mal schon nen hohen Schutz. Der Unterschied ist aber, wenn
- 27:57wir jetzt davon ausgehen, bei einer VM und du hast ein eigenes
- 28:01Betriebssystem laufen, da hast du natürlich noch eine viel
- 28:03höhere Isolation, da kannst du halt wirklich sagen, ich bin
- 28:05jetzt in meiner ganz eigenen Welt, ich teile mir nichts, es
- 28:09ist meine Welt und ich habe eigentlich so die höchste
- 28:12Isolation, die man sich dann, die man so erreichen kann, also
- 28:15da muss man schon sagen, die ist noch mal höher als bei einem
- 28:19Container an sich. Ja gut, du hast ja meistens
- 28:23immer noch irgendwo logischerweise vor und Nachteile
- 28:26dann ne, das ist auf jeden Fall n Vorteil von der VM.
- 28:30Ja ja. Da muss man ja fair sein.
- 28:32Genau, definitiv, definitiv aber ne.
- 28:35Es geht ja mal n bisschen, dann meistens darum so welchen
- 28:38Anwendungsfall braucht man denn ne gerade wenn du jetzt zum
- 28:40Beispiel wirklich, dass die die Vorteile nutzen willst oder
- 28:43brauchst, die wir ja vorher besprochen haben, ist natürlich
- 28:46wieder n Container ne super Sache.
- 28:50Genau, du hast ne. Allein die Ressourcennutzung ist
- 28:53halt ein riesen Nachteil einer VM und wie wir meinten so beim
- 28:57Micro Services Cloud Anwendung, da brauchst du halt nicht dein
- 29:00eigenes Betriebssystem hinter jeder Anwendung dann da wirst du
- 29:05ja wird dir das Wasser bis zum Hals stehen in der Ressourcen
- 29:08Nutzung wenn du halt jedes Mal so viel brauchst um ein Docker
- 29:11Container hochzufahren sage ich mal.
- 29:16Man muss trotzdem auch noch mal sagen, auch wenn der die
- 29:18Isolation oder der Schutz geringer ist, ist ja trotzdem
- 29:21hoch. Ne.
- 29:21Also du hast natürlich immer die Möglichkeit irgendwie noch nach
- 29:24außen zu kommunizieren, aber ja OK, trotzdem sag ich mal wenn
- 29:30was schief geht in deinem Container kannst du ihn
- 29:32jederzeit runterfahren, löschen, das ist schnell weg damit weißt
- 29:38du alles, alles läuft halt in seinem eigenen Prozess, ja.
- 29:41Das stimmt. Aber selbst wenn du ihn
- 29:43runterfährst, kannst du ihn schnell wieder hochfahren.
- 29:45Super Sache, ja genau, aber doch nicht so schlimm.
- 29:47Und wieder starten, wenn man sich jetzt die Portabilität
- 29:52anguckt, haben wir gesagt, die ist beim Docker, beim Docker sag
- 29:56ich schon, siehst du, das ist so, das ist so im Kopf ne, wenn
- 29:58man das mal Docker Container sagt Nein, bei Containern
- 30:00allgemein ist die ja sehr hoch, haben wir ja ausführlich
- 30:03besprochen und ist quasi nur an ne Runtime geknüpft, du musst
- 30:06sie halt irgendwie starten können.
- 30:08Bei einer VM sieht das schon wieder ein bisschen anders aus,
- 30:11weil da hast du halt die Bindung zu dem.
- 30:15Ja, ich sag mal hyperweise, also zu deinem System, auf dem du die
- 30:18VM laufen lässt und das heißt dein System muss zum Beispiel
- 30:23erstmal unterstützen, dass du diese virtuelle Maschine laufen
- 30:26lassen kannst sozusagen. Also da gibt es halt schon
- 30:29Abhängigkeiten dann. Ja, fällt.
- 30:34Fällt dir noch was ein? Dann theoretisch ganz kurz noch
- 30:36zu dem letzten Punkt. Du hast ne ne kleine
- 30:39Abhängigkeit, hast du ja auf jeden Fall, auch bei Docker
- 30:41logischerweise, weil du brauchst ja wie gesagt irgendwie die
- 30:46Docker bei Docker ja, also die Docker Runtime, wenn du Docker
- 30:49verwendest, ja du. Brauchst halt ne Runtime um den
- 30:52Container laufen zu lassen für den Container die Runtime, je
- 30:56nachdem von was du welchen Container kriegst.
- 31:00Also eine Kleinigkeiten gibt es ja immer, aber es liegt ja auch
- 31:03einfach dem zugrunde, weil du lässt ja auf einem System etwas
- 31:08laufen, also irgendwie muss es ja lauffähig werden und da ist
- 31:12ja bei beiden Sachen irgendwas was du brauchst auf jeden Fall.
- 31:16Genau. Ja, du hast.
- 31:17Logischerweise hatten wir schon angesprochen, natürlich die den
- 31:20Speicherverbrauch, der ist bei einer VM logischerweise deutlich
- 31:23höher, weil es halt eben ein eigenes Betriebssystem
- 31:26mitbringen muss. Und das hast du halt bei einem
- 31:30Container nicht. Das braucht halt wie gesagt
- 31:32nicht ein ganzes Betriebssystem, sondern greift nur auf den
- 31:34Kernel vom zugrundeliegenden Betriebssystem zu, um das ganz
- 31:40kurz noch mal zu sagen, falls jetzt irgendjemand Kernel, ja
- 31:42was ist der Kernel, das ist jetzt nicht irgendwie hier der
- 31:46Kernel, sondern das ist quasi. Eigentlich, so das Gehirn vom
- 31:53Betriebssystem, was dafür sorgt, dass sozusagen, das ist die
- 31:56Brücke zwischen der Software und der Hardware, von so einem
- 31:59Gerät. Und genau das wird sozusagen
- 32:02dann geteilt am Ende beim Container und eigentlich ist es
- 32:06nur das, was man braucht, was natürlich eine schöne Sache ist,
- 32:09eine Sache, um mal ganz kurz einen kleinen Exkurs zu machen.
- 32:13Ich hatte mich mal gefragt, weil wir jetzt auch so oft über
- 32:16Docker geredet haben, aber ich habe mich mal gefragt, wieso zum
- 32:19Beispiel bei einem Mac? Oder beim Linux System da da
- 32:24kannst du ausschließlich die Docker CI installieren.
- 32:28Das kannst du aber bei Windows nicht und da brauchst du halt
- 32:32richtig dieses an dieses Programm Docker Desktop ne und
- 32:37also theoretisch könntest du das unter Windows auch machen, aber
- 32:41rein praktisch ist es eher, also nicht so handhabbar.
- 32:45Und da hab ich mich mal gefragt, wieso das eigentlich so ist,
- 32:47weil ich mir auch irgendwann mal dachte, so, ja komm, ich kann
- 32:49doch, also es ist länger her, aber da dachte ich mir so, ich
- 32:52brauch eigentlich nur die Seal. Eigentlich brauch ja nicht das
- 32:54ganze Kladderadatsch drumherum und da ist.
- 32:58Kladderadatsch ist n wundervolles Wort.
- 33:03Und das fand ich irgendwie ganz interessant.
- 33:06Es geht nämlich darum, dass du ja wie wir, wie wie wir eben
- 33:09gerade gesagt haben, nur nutzt, nur den Kernel des
- 33:11zugrundeliegenden Betriebssystems, aber das.
- 33:13Kannst du eigentlich bei Windows nicht machen, weil Docker und
- 33:17Docker Container oder auch zum Beispiel von Pottman, die wollen
- 33:21eigentlich einen Linux Kernel und den hast du ja irgendwo bei,
- 33:26also bei Linux sowieso gegeben, bei Mac mehr oder weniger auch
- 33:29gegeben, aber bei Windows nicht das heißt und das ist jetzt so
- 33:32eine Kleine, wie sagt man so eine kleine Ausnahme bei Windows
- 33:38Docker Desktop bringt quasi eine eigene kleine Mini VM mit.
- 33:43Die dafür sorgt, dass man ein Linux Kernel hat.
- 33:47Das heißt, eigentlich läuft Docker gar nicht mit dem Kernel
- 33:52von Windows, sondern eigentlich nur mit dem Linux Kernel von der
- 33:56kleinen Mini VM. Das Ganze nennt sich das, ist ja
- 33:59also WSL 2, weiß nicht ob einem das was sagt, also ne das ist ja
- 34:03im Endeffekt die das Windows Subsystem von Linux Nummer 2.
- 34:08Aber das ist halt. Aber das ist halt das, was da
- 34:11sozusagen passiert, weil die meisten Systeme, auch wenn wir
- 34:17jetzt gerade so von Webanwendungen und Infrastruktur
- 34:19und so weiter geredet haben, die Laufen ja auf, sag ich jetzt
- 34:22mal, Linux System. Logischerweise ist ja auch
- 34:24kostenfrei, Open Source und so weiter und demzufolge läuft
- 34:29Docker oder auch pottman andere Container Services verlangen
- 34:34halt n Linux Kernel ne und das ist halt.
- 34:38Der Grund, warum zum Beispiel Windows da noch extra so n so n
- 34:43ne Anwendung, sag ich jetzt mal mitbringt.
- 34:45Und das. Tanzen wir aus der Reihe.
- 34:47Aber. Das war mir, das war mir ne Zeit
- 34:49lang gar nicht klar und ich fand es auf jeden Fall super
- 34:51interessant. Ja, ist es, das hab ich mir so
- 34:54auch noch keine Gedanken drüber gemacht, muss ich ehrlich sagen
- 34:56wo ich unter Windows das auch wenig verwende.
- 34:59Wahrscheinlich liegt es auch daran, ja, aber ja gut, sehr
- 35:03guter Punkt, danke für die Info. Das ist auch ne gute Überleitung
- 35:08und zwar was sind denn so Einsatzbereiche?
- 35:10Du hast ja jetzt schon gesagt, OK es benötigt den Linux Kernel
- 35:13und da ja viele Anwendungen und Server auf Linux laufen
- 35:17funktioniert das Halt so. Wir haben gesagt OK Container,
- 35:22moderne Microservices, Cloud Anwendungen auch im Bereich
- 35:26Deployments Super verbreitet V. Ms haben v MS noch ne
- 35:31Daseinsberechtigung und da kann man sagen.
- 35:35Ja, auf jeden Fall. Auch gerade so bei so Legacy
- 35:38Anwendungen. Also so veraltete Systeme, aber
- 35:41nicht im negativen Sinne, sondern dass sie einfach schon
- 35:43wirklich älter sind und oder halt auch so Multi OS Umgebung
- 35:48ne wenn du jetzt sagst OK ich muss aber unbedingt brauch ich
- 35:51da jetzt noch mal n was ich meinte ich hab n Windows PC und
- 35:53da drin muss ich jetzt aber noch mal n Linux laufen lassen wie
- 35:57auch immer dann die Konfiguration aussieht wir
- 35:58hatten das zum Beispiel damals so ne kleine Story aus der
- 36:03Vergangenheit ich hab. In einer meiner allerersten
- 36:06Projekte hatten wir auch Windows Laptops und hab dann bin dann in
- 36:14ein Projekt gekommen, wo aber unter Linux entwickelt wurde und
- 36:20da hat man auch VM s verwendet. Das heißt ich habe eine VM
- 36:22bekommen auf meinem Laptop und habe dann darin quasi meine
- 36:27Entwicklungsumgebung gehabt. Also ich konnte theoretisch.
- 36:32Und das habe ich auch teils so gemacht in meiner Windows
- 36:34Umgebung. Coden ne, also an mein Teil des
- 36:38Projekts arbeiten aber die Gesamtumgebung, die
- 36:41Gesamtsoftware die zu kompilieren laufen zu lassen et
- 36:45cetera war einfach innerhalb dieser VM, damit jeder quasi die
- 36:49gleichen Bedingungen hatte um auch damals schon zu sagen, EY
- 36:54das sind so unglaublich viele Abhängigkeit, es war wirklich n
- 36:56großes Projekt mit sehr sehr vielen Teil Softwarelösungen.
- 37:01Wenn ich das jetzt irgendwie hier mal im Gesamtheitlichen
- 37:04laufen lassen möchte oder so das das das kriegt kriegen wir nicht
- 37:07mehr eingerichtet. Auf irgendeinem Einzel PC.
- 37:09Wenn jetzt einer neu anfängt, da wären wir nie fertig, so nach
- 37:12dem Motto Ne und demnach gab es diese all Mighty VM sag ich mal
- 37:18und da war alles voreingerichtet und das.
- 37:22Ging also für damalige Verhältnisse muss man sagen, war
- 37:25das eine smarte Lösung, einfach zu sagen okay, wir machen das so
- 37:29und hier hast du die VM und du bist relativ schnell an Start
- 37:32gekommen damit. Ja, das ist auch nicht.
- 37:35Es war eine gute Lösung, aber also hast du gute Erfahrungen
- 37:38mit VMS gemacht oder auch mal eine andere Frage noch direkt
- 37:42hinterher. Hast du schon mit vielen vms
- 37:44gearbeitet? Na also, in dem Projekt hab ich
- 37:48ne längere Zeit da drauf gearbeitet und privat hatte ich
- 37:51auch mal so ein 2 mal ne VM benötigt.
- 37:55Aber ich würde jetzt nie nicht behaupten, dass ich super
- 37:58erfahren damit bin. Nee, also.
- 38:01Ich mein, im Endeffekt ist es ja die Bedienung von einer VM ist
- 38:04sag ich jetzt nenn ich es mal. Bedienung ist natürlich sehr
- 38:06einfach, weil du ja im Endeffekt eigentlich nur ne Art Rechner
- 38:10auf dem Rechner bedienst, wie du es ja vorhin so schön gesagt
- 38:12hast. Ja, aber es es.
- 38:14Ist halt auch manchmal mit der Konfiguration nicht so einfach.
- 38:17Gerade wenn du zum Beispiel sag ich mal nach außen kommunizieren
- 38:21willst innerhalb deiner VM, das ist jetzt n triviales Beispiel,
- 38:25aber das musst du halt erstmal überhaupt konfigurieren, ja,
- 38:27weil die wie gesagt die VM ist isoliert, die hat keinen
- 38:29Netzzugang sag ich mal ne von sich aus erstmal und wenn du
- 38:34aber sagst ich brauch den aber in meiner VM und möchte jetzt
- 38:36quasi über meinen. Meiner Umgebung ins Netz gehen
- 38:41über mit innerhalb der VM sowas ne.
- 38:43Also du hast halt schon konfigurationsaufwand
- 38:46irgendwann, aber das hält sich in Grenzen, jedenfalls für die
- 38:48Anwendungsfälle. Die ich hatte also bei mir, ich
- 38:53hab echt selten mit einer VM gearbeitet und was mich
- 38:57irgendwie immer echt genervt hat bei einer VM wenn ich mal damit
- 39:02gearbeitet hab war. Dass ich das Gefühl hatte, dass
- 39:05sie echt nicht, also eigentlich nie flüssig lief.
- 39:08Das ist natürlich. Es mag daran liegen, ne, dass
- 39:11ich halt einfach den das zugrundeliegende Betriebssystem
- 39:15der Rechner ne, der hatte einfach nicht genug Power,
- 39:18wahrscheinlich ne das um um halt eben auch noch sozusagen noch n
- 39:21zusätzlichen Rechner, also n zusätzliches Betriebssystem noch
- 39:24nebenbei laufen zu lassen, mag ja alles sein, aber trotzdem ich
- 39:29dachte mir immer so wie nervig ist das mit einer VM zu
- 39:32arbeiten. Also das war auf jeden Fall,
- 39:35weiß ich nicht irgendwie ne, das ist halt genau diese
- 39:38Ressourcennutzung, die wir angesprochen hatten.
- 39:40Ne, du brauchst halt wirklich viele Ressourcen um das
- 39:43vernünftig laufen zu lassen. Ja genau, auf jeden Fall.
- 39:46Aber ich finde noch mal ganz kurz, um kurz diesen Vergleich
- 39:49noch mal vielleicht fertig zu machen.
- 39:51Eine wichtige Sache finde ich ja zum Beispiel bei einem, wenn
- 39:54wenn du es vergleichst so ne VM und ne und und n Container.
- 40:00Dann hast du ja bei einer VM wirklich auch zusätzlich
- 40:03dadurch, dass du halt dieses Betriebssystem drauf hast und
- 40:05weiter hast du ja wirklich die Möglichkeit, wieso ne ne Art UI
- 40:08das diese virtuelle Machine wird virtuelle Machine die virtuelle
- 40:13Maschine zu bedienen, ne bei einem Container ist es ja eher
- 40:18so, dass du etwas tatsächlich virtuelles hast, was irgendwo
- 40:21läuft. Also du kannst dich drauf
- 40:23zuschalten mit einer Art Konsole, aber du wirst jetzt.
- 40:26Nicht, sag ich jetzt mal mit einer Maus und Tastatur, dann da
- 40:30rumklicken und so weiter ne, das ist ja wirklich sehr.
- 40:34Ist nicht der Anwendungsfall. Dahinter genau das, das wollte
- 40:36ich gerade sagen, es ist, es ist halt einfach n anderer
- 40:38Anwendungsfall, auf jeden Fall, aber das ist ja vielleicht noch
- 40:42mal interessant zu sagen, angenommen man würde jetzt zum
- 40:45Beispiel denken, so OK, ich kann entweder das nehmen oder das
- 40:47funktioniert beides gleich, aber das eine ist
- 40:49ressourcenschonender sozusagen, das ist es ja dann im Endeffekt
- 40:52nicht, ne ja. Ne.
- 40:58Ja, also viel mehr habe ich jetzt in der Gegenüberstellung
- 41:02auch nicht. Wir könnten noch mal bekannte
- 41:08Tools noch mal so nennen zum Abschluss also wie gesagt,
- 41:10Docker ist jetzt so oft gefallen, weil es einfach so im
- 41:12Kopf verankert ist. Also Docker als Tool für
- 41:15Container halt, ich würde auch sagen, es ist am meisten
- 41:19verbreitet, das ist das bekannteste.
- 41:23Wer sich damit auseinandersetzen möchte, es gibt auch das
- 41:26Docahub, das kann man noch mal anmerken.
- 41:28Hier an der Stelle, wo man sich auch fertige Images ziehen kann
- 41:32und einfach auch mal so seine ersten Schritte in der Welt der
- 41:35Container machen kann. Das git super viele.
- 41:38Für Git ist das Docahub für Docahub.
- 41:41Ja, genau, und. Wie gesagt, wir werden mal ein
- 41:45Buch verlinken, noch so zum Einstieg ist auch immer nicht
- 41:48schlecht, es gibt super viele. Tutorials auf jeden Fall.
- 41:50Es lohnt sich extrem, sich mal mit Containern
- 41:52auseinanderzusetzen. Pottman hatten wir schon genannt
- 41:55als Alternative, das ist übrigens ein Punkt, da will ich
- 41:58mal auf jeden Fall gerne mal mit einfach mal arbeiten, um das Mal
- 42:01zu nutzen, weil ich habe es halt wie gesagt öfter mal gehört,
- 42:04bisher eigentlich nur mit Docker gearbeitet, weil wie gesagt auch
- 42:07gerade wenn Du zum zum im Arbeitskontext machst, dann hast
- 42:10du ja oftmals so er dann. Docker, weil kennt ja jeder,
- 42:13wird oft benutzt, passt schon so nach dem Motto Ne, aber da will
- 42:18ich das will ich mir auch auf jeden Fall mal gerne angucken
- 42:20okay okay dann nehme ich dich jetzt und unsere Zuhörerinnen
- 42:22und Zuhörer bei Wort und du kannst ja berichten, wie es denn
- 42:25ist. Bin ich gespannt was du
- 42:29berichtest soll? Wir gucken uns das zusammen zum
- 42:30Beispiel mal auf Twitch und unsere Livestreams an, habe ich
- 42:34mich auch noch nicht mitgearbeitet und ich wette es
- 42:36ist auch cool, also es wird auch seine Daseinsberechtigung haben.
- 42:40Was mir noch einfällt ist, wir haben ja gesagt, jetzt kannst du
- 42:43mehrere Container laufen lassen. Lastverteilung skalieren ist
- 42:48sonst wie oft replizieren. Jetzt ist natürlich die Frage,
- 42:53Wer ist noch Herr darüber das alles zu verwalten irgendwann
- 42:57und da gibt es natürlich auch Tools für Cubanedes, zum
- 43:00Beispiel um einfach so eine Orchestrierung von vielen
- 43:04Containern hinzubekommen und die verwalten zu können, auch ein
- 43:07super spannender Bereich. Liebe Zuhörer, lieber Zuhörer,
- 43:10falls sich das interessiert, lasst es uns wissen, können wir
- 43:12auch gerne mal eine Folge zu machen.
- 43:13Das wäre quasi so die Advanced Topic Folge dann zum Container,
- 43:18dass man das quasi diese ganze Orchestierung denn automatisiert
- 43:22die Skalierung automatisiert so ein Load Balancing macht, das
- 43:26ist auch ein unfassbar spannender Bereich am Ende.
- 43:29Definitiv und auch super wichtig heutzutage.
- 43:31Ne ja. Was wir noch machen könnten ist,
- 43:38ich glaub wir haben noch n bisschen Zeit.
- 43:39Ich hab grad mal auf die Uhr geguckt, wir werden doch nicht
- 43:42rausgeschmissen hier. Der Manager guckt.
- 43:47Schon aus mit euch. Ihr habt jetzt genug Podcasts
- 43:51aufgenommen? Nein, okay zurück zum Thema, so
- 43:55Best Practices vielleicht auch wenn es jetzt um Einstieg geht,
- 43:59was worauf kann man achten? Das sind natürlich jetzt keine.
- 44:03Goldenen Regeln, sondern ich würde mal sagen, so Erfahrungen,
- 44:06die wir gemacht haben oder wie wir das handhaben, würde ich
- 44:09jetzt noch ganz cool finden, so zum Ende, bevor wir noch mal so
- 44:11ein kleines Fazit geben, Fabi, und da haue ich einfach mal 1
- 44:15rein, weil wir jetzt schon sag schon Docker Hub genannt hatten.
- 44:19Es gibt ja unfassbar viele Images, die du nehmen kannst für
- 44:23deinen Container und diese riesen Auswahl reicht auch von.
- 44:29Super schlanken Images, wo wirklich nur sehr sehr basic
- 44:33Sachen vorbereitet sind. Bis hinzu hier hast du n Image
- 44:37und kannst die Welt regieren, damit hast du übertrieben gesagt
- 44:40ne, also weißt du wo dann einfach wo du einfach alles
- 44:42hast. So und das ist natürlich macht
- 44:45ja auch keinen Sinn, du musst dir ja überlegen was brauche
- 44:47ich, was sind meine Dependencies und ich würde halt immer den Weg
- 44:51gehen so schlank wie möglich. Weil nur das, was man noch nur
- 44:55braucht. Rein Theorie.
- 44:56Genau. Und selbst wenn ich dann später
- 44:59merke, ich brauch noch was, dann kann ich das ja
- 45:01hinzukonfigurieren es hindert mich ja niemand in meiner
- 45:04Umgebung Sachen zu installieren, auch noch mal n Punkt den man
- 45:06anmerken kann, ich kann ja auf einer ganz ganz basic Grundlage
- 45:11anfangen und wenn ich dann merke hey ich brauch aber noch hier.
- 45:14Note package irgendwas. Dann kann ich mir das ja immer
- 45:18noch dazu installieren. Ja genau, ein Note ist ganz
- 45:21interessant. Also ein gutes Stichwort.
- 45:23Es gibt ja zum Beispiel von Note auch diverse Images, die du dir
- 45:28bei Docker Hub, was du ja schon gesagt hattest, dir ziehen
- 45:32kannst, als Basis Image zum Beispiel jetzt natürlich für
- 45:36dein Docker Image und du kannst. Also es gibt dann zum Beispiel,
- 45:40sagen wir mal Note 20 oder so ne als Image und es gibt noch dann
- 45:45zum Beispiel auch die alpine Version und die alpine Version
- 45:47ist meistens deutlich lightwriter als dann zum
- 45:51Beispiel guter Punkt. Ja, also so als als kleines
- 45:53Beispiel dafür was du meinst, ne, also da hast du dann zwar es
- 45:57ist entschlackt, da quasi das ganze, es ist weniger drin, aber
- 46:01es ist meistens dann oder muss man dann vielleicht noch mal
- 46:03genau nachgucken was da drin ist und ob einem da nicht vielleicht
- 46:06doch was fehlt, aber da kann man halt dann sagen OK.
- 46:10Angenommen das reicht, dann nimmt man halt lieber.
- 46:12Das ist halt schneller, braucht dann noch weniger Ressourcen und
- 46:15so weiter genau und ein zweiter Punkt, der mir noch so einfällt
- 46:21ist, weil wir auch so über Cicd gesprochen haben.
- 46:24Automatisierung ist natürlich halt auch Container, wirklich
- 46:29sage ich mal im kleineren Stil, oder was heißt kleinerer Stil?
- 46:34Feingranulat zu verwenden. Vielleicht formuliere ich es mal
- 46:37so, also es macht jetzt auch keinen Sinn zu sagen, ich mache
- 46:39mir jetzt einen riesen Container und da ist alles drin, sondern
- 46:43dass man sich wirklich mal überlegt, sich das ganze
- 46:46sozusagen zu Kapseln und dann einzelne Container für die
- 46:49einzelnen Anwendungen laufen zu lassen.
- 46:51Ja, so. So also, dass man halt auch
- 46:53wirklich diesen Grundgedanken von Anfang an trägt, sage ich
- 46:57mal so. Ja, auf jeden Fall.
- 46:59Und was auch. Also was ich oftmals mitgekriegt
- 47:03habe ist, wenn du zum Beispiel, sagen wir mal, du hast eine
- 47:05Anwendung und dann wird gerne mal immer alles sozusagen beim
- 47:11Erstellen von dem Image, wenn du jetzt sagst okay ich ne wie wir
- 47:13vorhin gesagt haben, du brauchst irgendwie ein Basis Image,
- 47:16meistens wahrscheinlich, du willst da noch irgendwie deinen
- 47:18Code reinkriegen und dann wird auch gerne mal dann einfach der
- 47:22gesamte Code einfach rein kopiert, so ohne dass man sich
- 47:25das vielleicht noch mal ein bisschen genauer anguckt.
- 47:28Also. Beispielsweise sowas wie es
- 47:30bringt ja nichts, wenn du Abhängigkeiten die die du auch
- 47:34gar nicht einchecken würdest, in dein Repository mit zu kopieren,
- 47:38weil die kannst du ja da drin aufbauen.
- 47:40Also wieso alte Abhängigkeiten, die vielleicht noch, ich sag mal
- 47:43blöd gesagt von gestern sind, die brauchst du ja nicht heute
- 47:46in deinem Container habe ich schon erlebt, ist wahrscheinlich
- 47:49auch no brainer, aber wollte ich trotzdem einfach noch mal.
- 47:53Sagen. Geht ja auch in die Richtung
- 47:54noch zu dem zweiten Punkt, also dass man sich das halt auch
- 47:56wirklich überlegt, dann bin ich ganz bei dir, weil es ist halt
- 48:00leicht zu sagen, Ey komm von der Route alles rein, so nach dem
- 48:04Motto ist aber nicht immer der die Best Practice dahinter.
- 48:09Ja super spannendes Thema, ich würd noch n kleines Fazit mit
- 48:13dir geben wollen Fabi wenn du Bock hast hast du noch hast du
- 48:15noch kurz? Warte ja doch, ich.
- 48:18Muss gleich schaffen, OK. Also ich fang mal an, also was
- 48:23sind Container noch mal zusammengefasst?
- 48:25N Container ist im Prinzip die virtuelle Umgebung, die Software
- 48:29mit allen Abhängigkeiten bündelt und quasi ne ne Funktionalität
- 48:33bereitstellt. Mal ganz einfach gesagt, das
- 48:35heißt ich hab ne Softwarelösung da drin die und ich es kommt
- 48:37alles mit um das laufen zu lassen.
- 48:40Und ich weiß nicht, ob das jetzt vielleicht rausgekommen ist.
- 48:42Ich, ich versuch da gerade noch mal die Folge live Revue zu
- 48:45passieren. Man kann sich das ja selbst
- 48:46zusammenbauen, man sagt, ich nehm das mit rein, ich nehm das
- 48:48mit rein, ich nehm das mit rein, ne man ist ja sozusagen selbst
- 48:51in der Lage zu sagen wieso n kleinen Lego Baukasten, dass du
- 48:54alles dir reinpackst in diesen Container und sagst, OK, das ist
- 48:56es jetzt und jetzt ab in die Presse sozusagen ne, also nicht
- 49:00in die Müllpresse, sondern. Ab in den Papierkorb damit.
- 49:04Genau. Genau, und das ermöglicht dann
- 49:07halt auch diese Anwendung, unabhängig von der Umgebung
- 49:10laufen zu lassen. Was jetzt so wirklich der der
- 49:13der Riesen Benefit dahinter ist. Genau, und da hast du dann
- 49:16natürlich einfach die Möglichkeit zu sagen, ey, ich
- 49:19kann das. Portabilibil ich kann, ich weiß
- 49:23nicht, wie man das Wort da einbringt, also es ist portabel,
- 49:25du kannst es einfach von einem System aufs andere bringen und
- 49:28du hast natürlich auch eine gute Skalierbarkeit, wie wir auch
- 49:31meinten. Im Endeffekt kannst du sagen,
- 49:33ey, ich lass jetzt meine Anwendung auf zig System einfach
- 49:35mal laufen und kann die hochfahren ohne Probleme.
- 49:38Genau dann haben wir uns noch angeguckt, weil sich
- 49:42wahrscheinlich der eine oder andere dann denkt, so Hey, warte
- 49:45mal, das klingt irgendwie so total wie eine virtuelle
- 49:47Maschine. Was ist der Unterschied?
- 49:49Haben wir das ja auch mal ein bisschen gegenüber gestellt, da
- 49:51noch mal kurz zusammengefasst. Also Container Vorteil ist, du
- 49:54teilst dir nur den Kernel mit deinem Host System, eine VM
- 49:58braucht ein komplett eigenes Betriebssystem, Riesen
- 50:01unterschied Anwendungsfälle würde ich sagen Container ideal
- 50:06für moderne und skalierbare Softwarelösungen, Wir hatten ja
- 50:09gesagt so Micro Services, Cloud, Architektur, Architektur und
- 50:12Anwendung also ja es sind jetzt so Buzzwords, aber da wird es
- 50:16halt auch wirklich eingesetzt. Und VMS, wo du halt vielleicht
- 50:20mehr Isolation noch brauchst. Dass du wirklich, dass ich will,
- 50:22jetzt komplett meine eigene Welt haben, einen eigenen Sandkasten
- 50:26und oft bei traditionellen Anwendungen.
- 50:30Ich meinte ja so Legacy Projekte oder Multi US Umgebung, da wird
- 50:34das halt auch noch eingesetzt und hat auch auf jeden Fall
- 50:36seine Daseinsberechtigung. Definitiv.
- 50:40Ja, also im Endeffekt. Wie gesagt, ich war irgendwie
- 50:43nie so richtig der Fan von VM nutze ich auch heute aktuell
- 50:46nicht, bist auch kein Fan von Docker, Docker sag ich schon
- 50:49Container, es ist immer Docker, du weißt genau was ich meine,
- 50:52Nein davon bin ich, davon bin ich wirklich Fan, aber zum
- 50:54Beispiel weil du gerade gesagt hast Multi US Umgebung, ich hab
- 50:58irgendwie mal n dualboot dann. Präferiert, aber am Ende weiß
- 51:02ich nicht am Ende. Muss man aber fairerweise sagen.
- 51:05Unsere Systeme, die wir zum Beispiel im Studium hatten,
- 51:08hätten VM auch wirklich. Also du hast ja gesagt, Deine
- 51:10Erfahrung war sehr ruckelig und das lag auch daran.
- 51:13Also ich sag mal so, mein Netbook hatte eh Probleme schon
- 51:16Windows zu starten und deswegen hatte ich eh immer noch Linux
- 51:19parallel. Drauf aber ich.
- 51:22Ich find also um das Ganze noch mal zu, also für mich
- 51:24zusammenzufassen aus meiner Sicht, ich finde.
- 51:27Ein Betriebssystem pro Rechner ist einfach.
- 51:30Das ist das das Beste, also alles andere sind nur so
- 51:33Zwischenlösungen die so na. Na, ich weiß nicht.
- 51:38Also lieber 5 Laptops sagst du oder was?
- 51:415 Laptops und 5 verschiedene Betriebssysteme.
- 51:43Genau. Ach ja, aber weißt du, ich
- 51:48überlege gerade, wir sollten mal wieder die Netbooks rausholen.
- 51:50Hast du deins noch von früher? Ja, ich glaube, da läuft aber
- 51:53nicht mal Windows 10 drauf. Also ich weiß nicht, ich hatte
- 51:56da Windows 7 drauf und das war schon sehr langsam.
- 52:00Ja, also lieber zuhören, lieber zuhören, falls du uns mal auf
- 52:02Twitch damit coden sehen willst, lass es uns wissen und dann
- 52:05kramen wir die Dinger noch mal raus.
- 52:07Ansonsten fabi würd ich sagen, es hat mir mega Spaß gemacht, es
- 52:10war ne sehr coole Folge, ich liebe das Thema, ich find es
- 52:13auch super spannend und auch noch mal jetzt die Anmerkung,
- 52:16lieber zuhören lieber zuhören, falls du mehr dazu wissen
- 52:19möchtest, auch zum Beispiel Stichwort Orchestrierung.
- 52:22Lass es uns wissen. Podcast Mail wie immer in den
- 52:24Show Notes schreibt uns auch gerne ein Feedback zu der Folge
- 52:28Feedback zu dem Podcast. Was können wir deiner Meinung
- 52:31nach besser machen, was würdest du dir wünschen, auch vielleicht
- 52:33Themenvorschläge? Lass es uns wissen, wir sind
- 52:35super dankbar dafür. Ansonsten wie gesagt der Spenden
- 52:41Link wie wir am Anfang erwähnt hatten, falls du uns
- 52:43unterstützen müsstest. Vielen vielen Dank.
- 52:45Link ist in den Show Notes. Empfiehlt gerne den Podcast
- 52:49weiter, lass ne Bewertung da, das wird uns alles mega pushen.
- 52:53Vielen vielen Dank dann auf jeden Fall dafür und ansonsten
- 52:56ich mach's jetzt kurz die Abmoderation Fabi ich bin schon
- 53:00wieder im Redefluss, hören wir uns alle nächste Woche wieder
- 53:03ich wünsche euch allen ne gute Zeit bis dahin und bis dahin
- 53:06Eure Coding Vadis gemeinsam besser.