Was sind eigentlich Container? - podcast episode cover

Was sind eigentlich Container?

Mar 20, 202553 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Container: Dieser Begriff taucht gefühlt an jeder Ecke der Softwareentwicklung auf. Doch was sind Container grundlegend eigentlich? Genau das besprechen wir in der heutigen Folge.


Du interessierst dich für unser "Flappy Buddy" Wettbewerb? Besuche unsere Website für alle Infos!


Du bist auf der Suche nach einer IDE, die keine Wünsche öffnen lasst?

Hol dir jetzt deine Jahreslizenz für jede JetBrains IDE und spare 25% mit dem Code "CODINGBUDDIES".


Hat dir die Folge gefallen? Wir freuen uns natürlich auch über eine kleine Spende unter: https://streamlabs.com/thecodingbuddies/tip

Dies ermöglicht uns unseren Content weiter zu verbessern. Vielen Dank!


Folge uns doch zusätzlich auf unseren anderen Plattformen oder schau auf unserer Website vorbei:

Website: www.codingbuddies.de

Discord: https://discord.gg/C2Zntw6Sq4

Instagram: https://www.instagram.com/the_coding_buddies

Youtube: https://www.youtube.com/@thecodingbuddies

Twitch: https://www.twitch.tv/thecodingbuddies

TikTok: https://www.tiktok.com/@thecodingbuddies


Du hast Feedback für uns?

Schreib uns über: [email protected]!

Transcript

Brauch eigentlich nur die Seal. Eigentlich brauch ja nicht das ganze Kladderadatsch drumherum und da ist Kladderadatsch ist ein Wunder wundervolles Wort Coding Buddies Dein Podcast rund um Softwareentwicklung und aktueller Tech News. Herzlich Willkommen. Halli Hallo und herzlich Willkommen zur neuen Folge vom Coding Buddies Podcast mit mir, dem Fabi und natürlich auch dem Tino, der mir hier virtuell schon gegenüber sitzt und ins Mikro grinst. Moin. Tino geht ab.

Wie geht's? Herzlich Willkommen. Alles alles gut zu weit, alles gut. Ich bin bereit für die Folge, ich habe Bock, du bist bereit, das ist schön, wir können ja auch gleich relativ schnell rein starten, vorher wollen wir noch mal einmal ganz kurz. Uns starten wir doch nicht schnell rein. Na gut. So gut wie ich wollte mich noch mal in unserem Namen bei Kai bedanken, denn Kai hat eine

kleine Spende über den. Wir wollen unseren Spenden Link in den Shownotes hat uns eine kleine Spende zukommen lassen und das nicht zum ersten Mal. Also vielen, vielen Lieben dank Kai vielen vielen Dank. Das freut uns mega und auch an Johanna einen großen Dank, denn Johanna hat auch was gespendet und hat dazu geschrieben, dass sie zwar eigentlich gar nicht ursprünglich aus der Softwareentwicklung kommt, aber Berührungspunkte hat und unsere Infos super hilfreich findet und

das freut uns natürlich mega. Ja, auch vielen Dank an dich, Johanna, vielen Dank. Alright genau, und jetzt würde ich sagen, bevor wir ins Thema starten, ich weiß ja, geht es noch mal ganz kurz. Kleiner Reminder, es läuft ja gerade die Implementierungsphase noch von unserem aktuellen Programmierwettbewerb Flappy Buddy und da gibt es natürlich coole Sachen zu gewinnen, da auf jeden Fall mitmachen ist.

Also wenn ihr Infos dazu braucht auf unserer Homepage auch in den Show Notes verlinkt Tino, Was gibt es denn da zu gewinnen?

Sagt doch mal kurz. Ja, also der erste Preis, also der erste Platz, bekommt 2 Tickets für die WEA Developers Konferenz dieses Jahr im Juli findet sie statt in Berlin, die Leute und Jungs und Mädels von WEA Developers haben uns quasi 2 Tickets gesponsert für unser Turnier, auch da noch mal vielen vielen lieben dank und das ist natürlich mega geiler Hauptpreis, denn das ist die größte Entwicklerkonferenz Europas und es gibt jedes Jahr unfassbar spannende Themen und

Vorträge. Und Platz 2 und 3 bekommen jeweils eine limitierte Flappy Buddy Tasse. Ich habe auch den Prototypen vor mir und trinke gerade einen Kaffee dadraus sie sieht fantastisch aus, Leute wirklich allein dafür lohnt sich schon und Platz 2 kriegt zusätzlich noch einen Wunschgutschein im Wert von 50. Euro sehr sehr geil. Ich trinke übrigens auch aus dem Prototypen, jeder braucht. Ja, einen Prototypen. Um es für gut zu befinden, ganz genau.

Und für alle, die sich sagen, Ey, ja, ich mach zwar nicht beim Wettbewerb mit, möchte aber vielleicht doch irgendwie noch was in Benefit haben. Coding Buddies 10 gibt 10% auf, zum Beispiel wenn auf auf n Ticketkauf zum Beispiel bei bei der WEA Developer genau ja super OK, dann haben wir ja das organisatorisch abgehakt, jetzt können wir das Thema starten, ist die Werbung wieder vorbei, jetzt genau was worum geht es denn heute? Hau doch mal raus.

Wir haben uns heute n Grundlagenthema ausgesucht, was so in aller Munde ist oder sehr weit verbreitet.

Aber vielleicht weiß der eine oder andere, der vielleicht noch so am Anfang der Softwareentwicklungskarriere steht, noch nicht so wirklich was damit anzufangen und es ist aber wirklich n sehr wichtiges Thema und deswegen denke ich, es ist cool, wenn wir da heute mal so ne grundlagenfolge, so ne so ne überblicksfolge machen und zwar zum Thema Container in der Softwareentwicklung klingt doch gut und da einfach auch mal klären quasi. Warum sind Sie so wichtig?

Was sind überhaupt Container und ja, quasi als Ziel setzen da den Überblick zu geben, damit jeder sich nach der Folge denkt, ach, jetzt weiß ich, was Container sind und ich weiß, warum sie wichtig sind. Ganz genau.

Zusätzlich wollen wir auch noch n bisschen das ganz abgrenzen zu VMS, also virtuellen Maschinen, also weil man könnte sich ja vielleicht denken, so OK, virtuelle Maschinen hab ich auch schon mal gehört, irgendwie ist das für mich alles so ein Brei, dass man da auf jeden Fall auch noch mal n Überblick kriegt. Was denn überhaupt? Der Unterschied dann zu einer virtuellen Maschine ist, ne. Ja, ich mein um das ganze Mal einzuleiten, können wir uns ja mal folgendes Szenario

vorstellen. Stell dir immer noch mal eine Zeit vor Containern vor oder auch virtuelle Maschinen, wie du gerade genannt hast du wirklich mal komplett ohne mit Feuer? Machen noch so eine. Sache ja genau, also du hast quasi, du warst gerade so in der Höhle am Feuer machen und nebenbei ist dein Windows PC hochgefahren weiß ich nicht was

war das für ein Windows 95? Nein, also ganz so weit natürlich nicht zurück aber schon in die in das Zeitalter der PC s. Und jetzt stell dir noch mal vor, du hast du jetzt mehrere Leute die an gewissen Projekten arbeiten oder Leute kommen dazu oder du musst einfach ja Software Lösungen die du bereitstellt skalieren.

Und wie anstrengend war es eigentlich immer gleiche Bedingungen zu schaffen auf dem Zielsystem oder auf deinem eigenen System um überhaupt erstmal in die Entwicklung zu kommen oder gewisse Softwarelösungen laufen lassen zu können alle. Sag ich mal Abhängigkeiten aufzulösen und das ist halt genau der Ansatzpunkt, wo man sagt, OK, da, da hat man was für gebraucht, das hat einfach unfassbar viel Zeit gefressen und war fehleranfällig hoch 10 ne und da kam oder kommen auch immer noch.

Die Container ins Spiel und deswegen lass uns doch mal kurz definieren, was sind Container und wie können Sie jetzt dabei helfen zu sagen, Hey, wir können jetzt ganz einfach auf PCA und b das gleiche laufen lassen und müssen nicht erst mal gucken was ist bei A anders, was ist bei B anders, wie kriegen wir sie gemeinsam? So, ja, aber was du gerade noch gesagt hast hier mit diesem gleiche Umgebung schaffen und so weiter ne also ich meine das kennt man ja heutzutage

tatsächlich auch irgendwo noch. Also angenommen du hast jetzt zum Beispiel, ich rede jetzt ein bisschen aus dem Nähkästchen, weil ich finde das gerade so bei bestimmten App Frameworks, wenn du mit Apps arbeitest. Da hatten wir ja zum Beispiel auch in kürzerer Vergangenheit mal so das Problem, dass quasi auf du hast es eingerichtet, ich habe es eingerichtet, wir haben irgendwie entwickelt und dann hatten wir es in Repo geballert

und. Und ich hab mir das dann zum Beispiel gezogen und du hast jetzt gezogen und dann wusste man erstmal ging es nicht, weil irgendwie einer hatte ne falsche Version von von ne Android ne falsche Android Version oder was auch immer drauf auf dem Rechner. Sowas ist halt auch manchmal einfach nervig. Ne genau. Und das ist genau der Grund warum man sich sowas wie Container dann überlegt hat.

Also weil Spoiler war. Wir haben es da halt nicht verwendet und dann haben wir natürlich genau diese Painpoints wieder gespürt. Ja, richtig, genau und also n Container an sich. Ist ja im Endeffekt eine virtuelle Umgebung, bei der sozusagen Software oder Softwarepakete mit entsprechenden Abhängigkeiten

sozusagen gebündelt werden. Und ein Container heißt ja nicht um, also ohne Grund Container, weil es geht ja wirklich darum, dass du wieso ein Schiffscontainer hast, wo du bestimmte Sachen reinpackst ne und dann wird das halt einfach dann, dann hast du alles was da drin ist. Ne und das das was du brauchst. Aber ich hab da noch ne ganz kleine Analogie mal wieder mitgebracht.

Also theoretisch ist natürlich auch die Containeranalogie auch irgendwo ne, also der Vergleich mit Containern auch irgendwo ne Analogie, da kommt es ja her, aber um sich das vielleicht noch mal n bisschen anders vorzustellen, wenn man also angenommen, man hat zum Beispiel n Restaurant ne und sagt ich möchte jetzt essen irgendwie verfügbar machen und es soll irgendwie immer gleich schmecken, ne?

Und wenn du jetzt zum Beispiel sagst okay, du hast jetzt die klassische Installation auf einem Computer ohne Container, so wie wie du es am Anfang gesagt hast, eine Windows 95 in der Höhle mit dem Feuer, da kann man sich das ungefähr so vorstellen. Wenn du das mit diesem Restaurant vergleichst, dass du eigentlich, wenn du sagst okay, du hast irgendwie ein Rezept, also du verschickst am Ende nicht das Essen, sondern verschickst eigentlich nur das

Rezept und hoffst halt, dass. Die Küche, in der das dann nachgekocht wird, dieses Rezept, auch wirklich alles da hat, also dass du quasi die gleichen Zutaten auch wirklich dort vorhanden hast, die du brauchst, dass du wirklich auch den den richtigen Herd hast, dass du, dass der Herd auch die richtige Temperatur erreicht, solche Sachen, ne, das ist sozusagen die Analogie zu diesem Rechner. Wenn du jetzt sagst, OK, virtuelle Maschinen, das ist ja, gehen wir auch noch ein bisschen

näher drauf ein, aber das ist ja so ein Zwischenschritt, da würde man im Endeffekt in dieser Analogie ne kleine Miniküche verschicken. Wo du sagst, OK, das ist hier, guck mal das ist ne Küche, da ist n Herd dabei, da ist n Ofen dabei, da hast du noch ne Pfanne die Gewürze, das hast du alles mit drin und gibst das dann sozusagen raus und dann kannst du dir das Essen nachkochen so und dann hast du ja irgendwie mehr oder weniger alles was du brauchst.

Da ist natürlich aber relativ ja gut, man merkt schon relativ schnell, dass da man da ne miniküche verschiffen muss, das ist vielleicht nicht gerade sehr effizient und so n Container an sich, das ist. Kannst du dir dann in dieser Analogie so vorstellen, dass du eigentlich essensboxen rausschickst, wo das Essen, was du brauchst, sozusagen alles schon drin ist? Ist fertig. Das ist immer das Gleiche, also jede Essensbox, die du rausschickst ist quasi immer das gleiche, was da drin ist.

Und du hast halt genau das was du willst, ist dort vorhanden. Ja, ist eine ganz coole Analogie und ich finde, es zeigt halt auch einen wichtigen Punkt, wenn man jetzt schon mal bei VMS ist.

Weil, was man sagen kann, auf jeden Fall auch, was man jetzt an der Analogie schon versteht, ist, dass Container auf jeden Fall viel leichtgewichtiger sind als VMS, weil wie du so schön gesagt hast, ne VM. So du schickst die ganze Küche mit, wir werden das gleich noch mal genau technisch fachlich definieren, aber das zeigt halt auch schon in der Analogie, Hey warte mal das eine, da schick ich quasi viel weniger oder ich brauch viel weniger als bei bei der ganzen Küche die ich

mitschicke und sage ey hier hast du ne ganze Küche, jetzt musst du aber noch kochen sozusagen. Das ist auf jeden Fall eine ganz, ganz coole Gegenüberstellung, weil wenn man sich jetzt einen Container anguckt. Also du hast gesagt, das ist eine virtuelle Umgebung, die bündelt quasi Abhängigkeiten, die also die Software quasi um gewisse Prozesse laufen zu lassen oder Funktionalitäten anbieten zu können, Softwarelösungen zu beinhalten und. Deswegen lass uns doch mal

gucken, was was beinhaltet. So n Container. Du hast ja auch gesagt, so jetzt so am Hafen so n schöner Schiffscontainer, was kann da jetzt so alles drin sein ne? Also wir haben natürlich zum einen den Code der Anwendung sagen wir mal also wir wollen jetzt ne Anwendung innerhalb dieses Containers laufen lassen, dann ist natürlich da auch. Der Code drin sag ich mal. Also die Anwendung an sich, die

ausgeführt werden kann. Wir haben die Abhängigkeiten, das haben wir jetzt ja schon mehrfach gesagt, weil das ist halt wirklich der große Benefit, dass ich immer dadurch ne Umgebung schaffe, wo drin unsere Anwendung laufen kann, das ist ja der große Vorteil, das heißt nicht Dein PC muss dafür sorgen, dass alle Abhängigkeiten da sind, sondern die sind jetzt Gekapselt in unserem Container, zusammen mit der Anwendung.

Was sind so Abhängigkeiten, Bibliotheken, Frameworks, alles alle, so alle Randbedingungen, die wir quasi brauchen. Wir haben eine Konfiguration auch wahrscheinlich da drin liegen, wie soll unsere Software laufen, wie soll sie aufgestartet werden, gibt es verschiedene Modi die ich quasi von außen triggern kann, sozusagen ja und eine Laufzeitumgebung ne, also das ganze muss natürlich auch sag ich mal. Ne Runtime haben um ausgeführt

werden zu können. Das heißt, dass ich von außen sagen kann, Container A leg los oder ich gebe jetzt jemand Container a und sag drück Start so und dann macht Container a was es soll so wie er hergestellt wurde sag ich mal ne also im Prinzip bei dir mit dem Essen so wir haben da alles vorbereitet es ist genau das was der Kunde erwartet nach dem Motto hier hast du jetzt deinen Teller.

Lass dir schmecken. Weißt du ja genau, Besteck ist auch noch drin, weil du kannst ja theoretisch nicht davon ausgehen, dass so wirklich Besteck überall vorhanden ist. Nur mal so als Beispiel ne. Also du hast halt wirklich alles was du im Endeffekt brauchst um dein Ziel zu erreichen. In der Analogie war es natürlich, dass man das Essen essen kann, ne. Genau.

Aber. Was, wo ich irgendwie dran denken muss, ist, wenn man jetzt zum Beispiel oder noch NN gewisser Vorteil davon von von solcher containerisierung, Containerisierung wie Containerisation, wie man das so nennen mag, ist ja auf jeden Fall, dass du ja, wie du schon meintest, du brauchst es nicht auf deinem Rechner, es ist nur in dem Container, bedeutet also wenn du den Container wieder wegschmeißt, hast du keine Veränderungen.

Auf deinem zugrundeliegenden System, und das ist ja irgendwie das Schöne, weil angenommen, und das ist mir auf jeden Fall schon mal passiert, dass man ne Node version hatte, ne und du hast Node Versionen, die dann vielleicht auch kompatibel sind mit anderen Frameworks und ab einer bestimmten Version ist das dann nicht mehr so. So, und dann musst du zum Beispiel vielleicht, also du hast dann vielleicht irgendwie dein dein System und sagst, OK, ich bin jetzt an der und der

Anwendung dran, was auch immer ich möchte jetzt irgendwie auf einer, ich muss jetzt irgendwie meine Note Version updaten, so und dann machst du das vielleicht weil du ja die an mit dieser Anwendung arbeiten möchtest oder wie auch immer oder daran entwickeln möchtest. Ja. Und dann hast du aber eventuell das Problem. Dass du halt wieder bei einer anderen Anwendung vielleicht wieder ne andere Notversion haben musst.

So klar kann man sich jetzt hinstellen und sagen, ja gut, Update doch immer so. Das ist natürlich auch das Beste, aber die Praxiserfahrung zeigt, dass das nicht immer so hundertprozentig so gut funktioniert, dass man sagt, sei mal immer to date ne, warum auch immer, sicherlich kann man sich hinstellen und sagen NÖ, aber das gibt es bei mir nicht. OK, das ist auch sehr sehr gut, wenn es das nicht gibt.

Aber wenn du in dieser Situation bist und dann zwischen diesen Node Versionen switchen musst, kann das durchaus anstrengend sein und definitiv, das kann man halt super vermeiden, wenn man zum Beispiel das Ganze in Container packt. Also gerade wenn ich jetzt in so einer Welt wie in der Webentwicklung unterwegs bin, weil du jetzt Node zum Beispiel genannt hattest. Das ist ja auch sehr schnelllebig und du kommst schnell an dem Punkt, dass irgendwas nicht mehr unterstützt wird.

Neuere Version verlangt, dann hast du aber vielleicht noch ältere Projekte, die auf älteren Versionen sitzen und genau dann kommst du genau in diese Bredouille oder was du meintest vorhin mit unserem mit unseren noch gar nicht so lang, ist noch gar nicht so lange her, die Erfahrung. Mit mit der App Entwicklung, dass wir da auch verschiedene Frameworks genutzt hatten, die dann auch genau diese

Abhängigkeiten hatten. Und dann hat sich bei einem sozusagen die Uhr schon weiter gedreht in der Version, der ist schon ein bisschen neuer unterwegs gewesen als der andere und dann hat es einfach gar nicht mehr zusammengepasst.

Und dann konfigurierst du a. Das läuft aber nicht mehr beim anderen, der konfiguriert B und dann läuft es bei A nicht mehr und so ist es ja im Prinzip ein Hin und her irgendwann und das ist halt der riesen Vorteil. An Containern, dass du sagen kannst, OK, diese Anwendung, die ich jetzt in diesen Container packe, hat ihre eigene Umgebung und sie läuft unabhängig von meiner Umgebung, und das ist das Entscheidende dabei. Also ich kann dir das geben und egal wie es bei dir aussieht.

Es wird laufen, solange du halt quasi die die Runtime hast. Ne, Wir haben ja gesagt, es muss natürlich auch ne Laufzeitumgebung gehen, damit du es laufen lassen kannst. Ne, das ist natürlich immer noch ne Sache, die brauchst du aber das ist wirklich n sehr geringes Übel im Vergleich zu der Welt wie es vorher war, wie wir es jetzt schon erklärt hatten und dann kann ich dir das einfach geben und du kannst es laufen lassen, dich muss ja nicht mal interessieren.

Also du solltest schon wissen was da drin läuft, ja klar. Auch hinsichtlich Security und Isolation. Da kommen wir auch noch drauf, das ist nämlich auch ein wichtiger Punkt, aber einfach im Prinzip genau, im Prinzip kannst du es aber, wenn du weißt, was es ist, es ausführen und nutzen sozusagen und musst dir keine Gedanken um das in Leben so gesehen machen. Aber das ist, finde ich, auch ein ganz guter Punkt, den du nennst. Wenn man jetzt das Ganze noch weiterdenken möchte.

Du hast natürlich auch einfach dann in diesem Moment genau die Möglichkeit zu sagen, ich habe hier einen Container. Den kann ich quasi überall dort, wo ich dann eben diese entsprechende Runtime auch eben hab, kann ich das halt auch laufen lassen, also auch genau die gleiche, ich sag mal eine Instanz dieser klasse nenn ich das jetzt einfach mal so aus der Objektorientierung, aber weißt du, dass du halt wirklich sagen

kannst? OK, das ist der Container und egal wo ich diesen einen solchen Container sozusagen instanziiere. Dort ist genau das auch wirklich da. Also du weißt was du da hast. Das ist wie eine Kopie dann am Ende und ohne irgendwelche Konflikte mit irgendwelchen Versionen hier, Versionen da oder was auch immer, sondern es funktioniert einfach.

Genau, lass uns mal, weil wir jetzt schon gesagt haben, also das war jetzt schon so ein großer Vorteil, lass uns doch mal gucken wofür warum das Ganze mit den Containern und mal jetzt so wirklich die. Benefits noch mal klar rausstellen, weil ich finde, das motiviert am meisten, sich mit diesem Thema auseinanderzusetzen.

Wirklich mal zu verstehen oder sich vor Augen zu führen, was bringt das ganze und wir hatten jetzt ja sage ich mal, ich nenne es mal, es ist halt portable einfach, das heißt du kannst es einfach auf jedes Zielsystem bringen, wie wir es gerade so erklärt hatten, es ausführen und das läuft, das heißt so ein Container. Kann auf jedem System, wo eine Runtime existiert ne. Da können wir auch mal Beispiele für Tools nennen oder ich mach es jetzt.

Also Docker ist glaub ich n Begriff den jeder jetzt mittlerweile irgendwann mal gehört hat, wahrscheinlich oder bald hören wird, weil Docker einfach so das bekannteste Tool ist dafür, das heißt um dir jetzt das Beispiel mal zu vollenden, du hast Docker installiert und kannst einfach dann auch n Dockercontainer ausführen und du musst nicht irgendwas noch bereitstellen, dafür sag ich mal genau.

Genau, und im Prinzip kannst du so sagen, wenn du so n Container hast, kannst du den Lokal zum Beispiel dir bei dir laufen lassen. Die Anwendung es testen oder halt natürlich auch in Produktion überführen. Es kann genauso auch dein Zielsystem im Production quasi dann in diesem Container laufen, was auch wirklich ne gute Practice ist. Ja genau ne, also nicht, dass du jetzt wieder anfängst production mäßig zu sagen ne ich hab jetzt n normales System und sorg dafür, dass da wieder alles

bereit liegt sozusagen. So nicht also.

Das ist ja, das ist ja das Schöne am Container, du kannst es halt überall verwenden, das ist ja auch ne gute Practice, gerade im Bereich von Def Ops zum Beispiel, dass man wirklich sagt, alle Umgebungen, die ich habe, sind möglichst identisch und damit kann, das kannst du natürlich mit Containern schaffen, ne, und also wir haben ja auch ne def Ops Reihe in unserem Podcast. Liebe Zürer lieber zürer, wenn es dich interessiert, da gerne mal reinhören passt perfekt.

Rein das Thema Def Ops. Und. Es gibt ja neben Docker auch noch andere Container Services. Docker ist natürlich das bekannteste an der Stelle, es gibt ja zum Beispiel noch pottman, hab ich persönlich bisher noch nicht genutzt, muss ich sagen, also ich hab da auch bisher sehr viel eigentlich. Das ist sogar der Vorgänger. Ich weiß es nicht. Pottman ist mir aufgekommen, als Docker irgendwann angefangen hat.

OK, also sag ich mal Geld zu verlangen für einen einen, wenn du jetzt zum Beispiel ne ne Firma bist, die ne gewisse Mitarbeiterzahl hat. Und da kam mir dann potman unter. Vorher kannte ich tatsächlich, also also ich kenne es auch nur als Alternative und es ist, glaube ich auch immer noch ne kostenfreie ne, also das ist wirklich dann noch das Argument für Potman. Mein ich mein ich ja, aber wie gesagt korrigiert gefährliches Unwissen. Genau. Schreibt uns, wenn ihr es genauer wisst.

Aber was ich noch sagen wollte ist, wir können auf jeden Fall ja mal n irgendwie ein Einstiegsbuch. Über Container können wir ja mal in den Shownotes verlinken, da könnt ihr uns dann auch unterstützen, wenn ihr Lust habt und Lust habt dieses Buch zu kaufen und durchzulesen. Bücher, gute Sache. Sehr guter Punkt, ja, komplett unterschätzen. Aber wir gehen jetzt mal nicht auf das Büchermedium ein. Ich find Bücher auch immer noch klasse Podcast. Ist viel cooler, ja.

Genau. N anderer Punkt und auch mal auf die Vorteile wieder jetzt zu kommen, den ich super wichtig dabei finde und wir haben es auch immer jetzt schon so mitschwingen lassen, ist halt die Skalierbarkeit ne also nicht nur ich kann es portabel von A nach B bringen ne also es ist easy, dass ich es auf allen Systemen ausbreiten kann.

Genau dieser Grund sorgt natürlich auch für ne super geile Skalierbarkeit, ich kann es halt wirklich in die Maße bringen und auch sämtliche Systeme sozusagen ausrollen. Und das ist natürlich perfekt für beispielsweise Microservices. Cloud Anwendung, also wirklich das, was so die Hot topics auch momentan mit sind. Ne, dafür ist es halt einfach wirklich essentiell, muss man so

sagen, es geht nicht ohne. Du kannst es ja auch so vorstellen, wenn du jetzt zum Beispiel irgendwie du hast angenommen, du hast irgendwie ne Anwendung, die willst du halt auch, zum Beispiel auch in verschiedenen Regionen launchen beziehungsweise hosten, dann kannst du halt sagen, OK, ich hab halt meinen Source Code von dieser Anwendung und den kann ich halt jetzt zum Beispiel in was weiß ich Amerika, Europa, Asien, was auch immer, kann ich das halt eben hosten und und im

Endeffekt muss ich aber nur in Anführungsstrichen halt n Container zusammenbasteln und den irgendwo hochfahren ne genau und kann das dann in der entsprechenden Region halt eben auch ausrollen. Genau. Und da, wir hatten ja vorhin gesagt, es liegt ja auch meistens ne Konfiguration mit dabei, das heißt, du kannst sie ja auch noch dementsprechend konfigurieren.

Ja, wenn du jetzt zu unserem, da sag ich mal, weil du jetzt meinst unterschiedliche Regionen wird es ja wahrscheinlich auch unterschiedliche Konfigurationen geben, dann schon. Durch irgendwelche Gesetze oder so. Vielleicht ne. Genau, und das sind halt

einfach. Super Beispiele, ne, also auch zum Beispiel Lastverteilung ne wenn du jetzt sagst ey OK ich hab an einer Region ne totale Überlastung und ich kann jetzt ganz schnell weitere Instanzen hochfahren um ne Lastverteilung quasi vornehmen zu können, weil ich durch diese Container es halt sehr schnell umsetzen kann und nicht anfangen mir erstmal irgendwo n Server aufzusetzen zu gucken ob da alles installiert ist et cetera ne. Finde ich aber auch n ganz guter

Punkt, der also wo ich direkt an was nächstes denken muss.

Von einem Vorteil ist natürlich, dass du nicht nur ne schnelle Bereitstellung hast, sondern du kannst halt auch sehr gut n Rollback machen, da hatten wir auch mal in einer Def Ops folge drüber gesprochen, aber sage ich jetzt mal so Releases oder release Strategien, dass du sagst OK, du hast jetzt vielleicht n. Neuerungen ausgerollt in deiner Anwendung merkst, die funktioniert nicht und sagst halt einfach OK, dann fahr ich halt den alten Container zum

Beispiel hoch mit der alten Anwendung da drin mal so als Beispiel ne du also. Das ist Mega vorderpunkt genau. Also du kannst halt wirklich. Also Sekunden klingt n bisschen übertrieben, aber du kannst wirklich sehr sehr schnell diesen Fallback einfach wieder aktiv schalten.

Genau. Wirklich neuer Container runterfahren, der alte Container wieder hochfahren und das dauert nicht lange und dann ist die Anwendung wieder in der vorherigen Version. Die funktionierte, wo jetzt vielleicht der Fehler nicht drin ist, wieder am Start und das ist halt auch n Riesenvorteil. Ne nimm noch mal dein Beispiel mit Versionsupdates jetzt hast du deine Note Version in den neuen in deiner neuen Software Version hochgepackt ne also

geupdatet hast die jetzt auf deinen auf deiner Umgebung installiert und sagst ich muss jetzt aber die alte wieder hochfahren. Oh, jetzt muss ich die aber erstmal noch mal wieder bauen. Ah, geht ja gar nicht mehr, nicht mehr kompatibel. Jetzt haben wir aber n Riesenproblem und genau das ist halt der Grund ne das.

Ist halt einfach ne Zeit, also ne zeitfrage, dann am Ende ne definitiv ansonsten ja Konsistenz hatten wir ja auf jeden Fall schon gesagt, dieses typische wenn es bei mir läuft läuft es überall, angenommen man hat dann halt eben die entsprechende Runtime, aber dann funktioniert es natürlich und

was ich auf jeden Fall noch. Anbringen würde wäre auf jeden Fall eine gewisse Effizienz oder Ressourcennutzung und also wir können das ganze halt super schnell starten und es ist halt ein geringer Overhead von diesem Container.

Man sagt ja auch immer Container sind sehr light, weit im Verhältnis zu und da würde ich gerne auch mal direkt in den Vergleich zu einer VM springen im Vergleich zu einer virtuellen Maschine, weil zum Beispiel bei einem Container ist es ja so, dass du im Endeffekt eigentlich nur also nur den Kernel des zugrundeliegenden Betriebssystems brauchst. Genau den teilst du dir. Genau, und das ist ja zum Beispiel bei einer VM ganz anders.

Das heißt, bei einer VM hast du ja nicht nur deine Abhängigkeiten, den Code und so weiter was du alles meintest, sozusagen gekapselt wie bei einem Container, sondern auch noch ein ganzes Betriebssystem dazu, also quasi aus der Analogie jetzt die kleine Miniküche und. Die du da mit Reinpackst. Ja, also man kann sich das also wer noch nicht mit einer VM gearbeitet hat.

Man kann sich das halt wirklich so vorstellen, dass du einen PC hast und darauf lässt du einen virtuellen PC laufen mit allem. Also du hast halt wirklich dein dein eigenes Betriebssystem da drauf. Ein Klassiker ist halt ja keine Ahnung, hast einen Windows PC und willst eine Linux Instanz also Distribution noch laufen lassen. Ja, also wenn du es jetzt wirklich innerhalb von deinem Windows als virtuelle Maschine laufen lassen willst.

Ich will jetzt nicht darauf eingehen, dass du natürlich auch beide parallel installieren kannst. Okay ja, wissen wir, aber wir gehen ja von VM s aus und dann hast du halt wirklich dieses Betriebssystem in deiner VM laufen und mit allen Ressourcen die dazu gehören.

Das heißt es ist auch, es verbraucht auch viel viel mehr Speicher, du musst halt viel viel mehr Speicher bereitstellen um eine VM. Zu installieren, zu initialisieren und laufen zu lassen im Vergleich zum zum Container. Richtig, das da sind wir dann

noch mal zurückgesprungen. Sozusagen noch mal kurz sozusagen die Ressourcennutzung, ne, wie wir jetzt quasi, das war ja der Bogen zur zur VM, was ist das, was die Container natürlich deutlich ressourcensparender macht, also nicht nur die Rechenleistung sozusagen, die du brauchst am Ende ne, sondern auch den Speicherplatz wegen. Du brauchst ja doch ein Betriebssystem. Auf jeden Fall guter Punkt.

Genau. Also das ist halt der riesen Unterschied. Betriebssystem hast du ja gesagt, du hast auf einer Seite dann halt in der VM ein eigenes Betriebssystem und beim Container nutzt du quasi dein Host System, den Kernel davon genau anderer Punkt Isolation, weil ich ja auch vorhin meinte du solltest schon wissen was du da ausführst. Nicht einfach irgendein Docker Container hochfahren, aber da ist das.

Sag ich mal Isolation. Genau das richtige Stichwort, und zwar in einem Container. Hast du eine Prozessisolation, das heißt, was da drin läuft, läuft auch isoliert und betrifft nicht dein sag ich mal den äußeren Ring von deinem System. Man kann sich das so vorstellen, du startest diesen, diesen Container, diesen Prozess und was da drin passiert bleibt da

drin. Also es gibt dir halt schon sag ich mal schon nen hohen Schutz. Der Unterschied ist aber, wenn wir jetzt davon ausgehen, bei einer VM und du hast ein eigenes Betriebssystem laufen, da hast du natürlich noch eine viel höhere Isolation, da kannst du halt wirklich sagen, ich bin jetzt in meiner ganz eigenen Welt, ich teile mir nichts, es ist meine Welt und ich habe eigentlich so die höchste Isolation, die man sich dann, die man so erreichen kann, also

da muss man schon sagen, die ist noch mal höher als bei einem Container an sich. Ja gut, du hast ja meistens immer noch irgendwo logischerweise vor und Nachteile dann ne, das ist auf jeden Fall n Vorteil von der VM. Ja ja. Da muss man ja fair sein. Genau, definitiv, definitiv aber ne.

Es geht ja mal n bisschen, dann meistens darum so welchen Anwendungsfall braucht man denn ne gerade wenn du jetzt zum Beispiel wirklich, dass die die Vorteile nutzen willst oder brauchst, die wir ja vorher besprochen haben, ist natürlich wieder n Container ne super Sache.

Genau, du hast ne. Allein die Ressourcennutzung ist halt ein riesen Nachteil einer VM und wie wir meinten so beim Micro Services Cloud Anwendung, da brauchst du halt nicht dein eigenes Betriebssystem hinter jeder Anwendung dann da wirst du ja wird dir das Wasser bis zum Hals stehen in der Ressourcen Nutzung wenn du halt jedes Mal so viel brauchst um ein Docker Container hochzufahren sage ich mal.

Man muss trotzdem auch noch mal sagen, auch wenn der die Isolation oder der Schutz geringer ist, ist ja trotzdem hoch. Ne. Also du hast natürlich immer die Möglichkeit irgendwie noch nach außen zu kommunizieren, aber ja OK, trotzdem sag ich mal wenn was schief geht in deinem Container kannst du ihn jederzeit runterfahren, löschen, das ist schnell weg damit weißt du alles, alles läuft halt in seinem eigenen Prozess, ja.

Das stimmt. Aber selbst wenn du ihn runterfährst, kannst du ihn schnell wieder hochfahren. Super Sache, ja genau, aber doch nicht so schlimm.

Und wieder starten, wenn man sich jetzt die Portabilität anguckt, haben wir gesagt, die ist beim Docker, beim Docker sag ich schon, siehst du, das ist so, das ist so im Kopf ne, wenn man das mal Docker Container sagt Nein, bei Containern allgemein ist die ja sehr hoch, haben wir ja ausführlich besprochen und ist quasi nur an ne Runtime geknüpft, du musst sie halt irgendwie starten können.

Bei einer VM sieht das schon wieder ein bisschen anders aus, weil da hast du halt die Bindung zu dem. Ja, ich sag mal hyperweise, also zu deinem System, auf dem du die VM laufen lässt und das heißt dein System muss zum Beispiel erstmal unterstützen, dass du diese virtuelle Maschine laufen lassen kannst sozusagen. Also da gibt es halt schon Abhängigkeiten dann. Ja, fällt.

Fällt dir noch was ein? Dann theoretisch ganz kurz noch zu dem letzten Punkt. Du hast ne ne kleine Abhängigkeit, hast du ja auf jeden Fall, auch bei Docker logischerweise, weil du brauchst ja wie gesagt irgendwie die Docker bei Docker ja, also die Docker Runtime, wenn du Docker verwendest, ja du. Brauchst halt ne Runtime um den Container laufen zu lassen für den Container die Runtime, je nachdem von was du welchen Container kriegst.

Also eine Kleinigkeiten gibt es ja immer, aber es liegt ja auch einfach dem zugrunde, weil du lässt ja auf einem System etwas laufen, also irgendwie muss es ja lauffähig werden und da ist ja bei beiden Sachen irgendwas was du brauchst auf jeden Fall. Genau. Ja, du hast. Logischerweise hatten wir schon angesprochen, natürlich die den Speicherverbrauch, der ist bei einer VM logischerweise deutlich höher, weil es halt eben ein eigenes Betriebssystem

mitbringen muss. Und das hast du halt bei einem Container nicht. Das braucht halt wie gesagt nicht ein ganzes Betriebssystem, sondern greift nur auf den Kernel vom zugrundeliegenden Betriebssystem zu, um das ganz kurz noch mal zu sagen, falls jetzt irgendjemand Kernel, ja was ist der Kernel, das ist jetzt nicht irgendwie hier der

Kernel, sondern das ist quasi. Eigentlich, so das Gehirn vom Betriebssystem, was dafür sorgt, dass sozusagen, das ist die Brücke zwischen der Software und der Hardware, von so einem Gerät. Und genau das wird sozusagen dann geteilt am Ende beim Container und eigentlich ist es nur das, was man braucht, was natürlich eine schöne Sache ist, eine Sache, um mal ganz kurz einen kleinen Exkurs zu machen.

Ich hatte mich mal gefragt, weil wir jetzt auch so oft über Docker geredet haben, aber ich habe mich mal gefragt, wieso zum Beispiel bei einem Mac? Oder beim Linux System da da kannst du ausschließlich die Docker CI installieren. Das kannst du aber bei Windows nicht und da brauchst du halt richtig dieses an dieses Programm Docker Desktop ne und also theoretisch könntest du das unter Windows auch machen, aber rein praktisch ist es eher, also nicht so handhabbar.

Und da hab ich mich mal gefragt, wieso das eigentlich so ist, weil ich mir auch irgendwann mal dachte, so, ja komm, ich kann doch, also es ist länger her, aber da dachte ich mir so, ich brauch eigentlich nur die Seal. Eigentlich brauch ja nicht das ganze Kladderadatsch drumherum und da ist. Kladderadatsch ist n wundervolles Wort. Und das fand ich irgendwie ganz interessant.

Es geht nämlich darum, dass du ja wie wir, wie wie wir eben gerade gesagt haben, nur nutzt, nur den Kernel des zugrundeliegenden Betriebssystems, aber das.

Kannst du eigentlich bei Windows nicht machen, weil Docker und Docker Container oder auch zum Beispiel von Pottman, die wollen eigentlich einen Linux Kernel und den hast du ja irgendwo bei, also bei Linux sowieso gegeben, bei Mac mehr oder weniger auch gegeben, aber bei Windows nicht das heißt und das ist jetzt so eine Kleine, wie sagt man so eine kleine Ausnahme bei Windows Docker Desktop bringt quasi eine eigene kleine Mini VM mit. Die dafür sorgt, dass man ein Linux Kernel hat.

Das heißt, eigentlich läuft Docker gar nicht mit dem Kernel von Windows, sondern eigentlich nur mit dem Linux Kernel von der kleinen Mini VM. Das Ganze nennt sich das, ist ja also WSL 2, weiß nicht ob einem das was sagt, also ne das ist ja im Endeffekt die das Windows Subsystem von Linux Nummer 2.

Aber das ist halt. Aber das ist halt das, was da sozusagen passiert, weil die meisten Systeme, auch wenn wir jetzt gerade so von Webanwendungen und Infrastruktur und so weiter geredet haben, die Laufen ja auf, sag ich jetzt mal, Linux System. Logischerweise ist ja auch kostenfrei, Open Source und so weiter und demzufolge läuft Docker oder auch pottman andere Container Services verlangen halt n Linux Kernel ne und das ist halt.

Der Grund, warum zum Beispiel Windows da noch extra so n so n ne Anwendung, sag ich jetzt mal mitbringt. Und das. Tanzen wir aus der Reihe. Aber. Das war mir, das war mir ne Zeit lang gar nicht klar und ich fand es auf jeden Fall super interessant. Ja, ist es, das hab ich mir so auch noch keine Gedanken drüber gemacht, muss ich ehrlich sagen wo ich unter Windows das auch wenig verwende.

Wahrscheinlich liegt es auch daran, ja, aber ja gut, sehr guter Punkt, danke für die Info. Das ist auch ne gute Überleitung und zwar was sind denn so Einsatzbereiche?

Du hast ja jetzt schon gesagt, OK es benötigt den Linux Kernel und da ja viele Anwendungen und Server auf Linux laufen funktioniert das Halt so. Wir haben gesagt OK Container, moderne Microservices, Cloud Anwendungen auch im Bereich Deployments Super verbreitet V. Ms haben v MS noch ne Daseinsberechtigung und da kann man sagen.

Ja, auf jeden Fall. Auch gerade so bei so Legacy Anwendungen. Also so veraltete Systeme, aber nicht im negativen Sinne, sondern dass sie einfach schon wirklich älter sind und oder halt auch so Multi OS Umgebung ne wenn du jetzt sagst OK ich muss aber unbedingt brauch ich da jetzt noch mal n was ich meinte ich hab n Windows PC und da drin muss ich jetzt aber noch mal n Linux laufen lassen wie auch immer dann die Konfiguration aussieht wir

hatten das zum Beispiel damals so ne kleine Story aus der Vergangenheit ich hab. In einer meiner allerersten Projekte hatten wir auch Windows Laptops und hab dann bin dann in ein Projekt gekommen, wo aber unter Linux entwickelt wurde und da hat man auch VM s verwendet. Das heißt ich habe eine VM bekommen auf meinem Laptop und habe dann darin quasi meine Entwicklungsumgebung gehabt. Also ich konnte theoretisch.

Und das habe ich auch teils so gemacht in meiner Windows Umgebung. Coden ne, also an mein Teil des Projekts arbeiten aber die Gesamtumgebung, die Gesamtsoftware die zu kompilieren laufen zu lassen et cetera war einfach innerhalb dieser VM, damit jeder quasi die gleichen Bedingungen hatte um auch damals schon zu sagen, EY das sind so unglaublich viele Abhängigkeit, es war wirklich n großes Projekt mit sehr sehr vielen Teil Softwarelösungen.

Wenn ich das jetzt irgendwie hier mal im Gesamtheitlichen laufen lassen möchte oder so das das das kriegt kriegen wir nicht mehr eingerichtet. Auf irgendeinem Einzel PC. Wenn jetzt einer neu anfängt, da wären wir nie fertig, so nach dem Motto Ne und demnach gab es diese all Mighty VM sag ich mal und da war alles voreingerichtet und das.

Ging also für damalige Verhältnisse muss man sagen, war das eine smarte Lösung, einfach zu sagen okay, wir machen das so und hier hast du die VM und du bist relativ schnell an Start gekommen damit. Ja, das ist auch nicht. Es war eine gute Lösung, aber also hast du gute Erfahrungen mit VMS gemacht oder auch mal eine andere Frage noch direkt hinterher. Hast du schon mit vielen vms

gearbeitet? Na also, in dem Projekt hab ich ne längere Zeit da drauf gearbeitet und privat hatte ich auch mal so ein 2 mal ne VM benötigt. Aber ich würde jetzt nie nicht behaupten, dass ich super erfahren damit bin. Nee, also. Ich mein, im Endeffekt ist es ja die Bedienung von einer VM ist sag ich jetzt nenn ich es mal. Bedienung ist natürlich sehr einfach, weil du ja im Endeffekt eigentlich nur ne Art Rechner auf dem Rechner bedienst, wie du es ja vorhin so schön gesagt

hast. Ja, aber es es. Ist halt auch manchmal mit der Konfiguration nicht so einfach. Gerade wenn du zum Beispiel sag ich mal nach außen kommunizieren willst innerhalb deiner VM, das ist jetzt n triviales Beispiel, aber das musst du halt erstmal überhaupt konfigurieren, ja, weil die wie gesagt die VM ist isoliert, die hat keinen Netzzugang sag ich mal ne von sich aus erstmal und wenn du aber sagst ich brauch den aber in meiner VM und möchte jetzt

quasi über meinen. Meiner Umgebung ins Netz gehen über mit innerhalb der VM sowas ne. Also du hast halt schon konfigurationsaufwand irgendwann, aber das hält sich in Grenzen, jedenfalls für die Anwendungsfälle. Die ich hatte also bei mir, ich hab echt selten mit einer VM gearbeitet und was mich irgendwie immer echt genervt hat bei einer VM wenn ich mal damit gearbeitet hab war. Dass ich das Gefühl hatte, dass sie echt nicht, also eigentlich nie flüssig lief.

Das ist natürlich. Es mag daran liegen, ne, dass ich halt einfach den das zugrundeliegende Betriebssystem der Rechner ne, der hatte einfach nicht genug Power, wahrscheinlich ne das um um halt eben auch noch sozusagen noch n zusätzlichen Rechner, also n zusätzliches Betriebssystem noch nebenbei laufen zu lassen, mag ja alles sein, aber trotzdem ich dachte mir immer so wie nervig ist das mit einer VM zu

arbeiten. Also das war auf jeden Fall, weiß ich nicht irgendwie ne, das ist halt genau diese Ressourcennutzung, die wir angesprochen hatten. Ne, du brauchst halt wirklich viele Ressourcen um das vernünftig laufen zu lassen. Ja genau, auf jeden Fall. Aber ich finde noch mal ganz kurz, um kurz diesen Vergleich noch mal vielleicht fertig zu machen. Eine wichtige Sache finde ich ja zum Beispiel bei einem, wenn wenn du es vergleichst so ne VM und ne und und n Container.

Dann hast du ja bei einer VM wirklich auch zusätzlich dadurch, dass du halt dieses Betriebssystem drauf hast und weiter hast du ja wirklich die Möglichkeit, wieso ne ne Art UI das diese virtuelle Machine wird virtuelle Machine die virtuelle Maschine zu bedienen, ne bei einem Container ist es ja eher so, dass du etwas tatsächlich virtuelles hast, was irgendwo läuft. Also du kannst dich drauf zuschalten mit einer Art Konsole, aber du wirst jetzt.

Nicht, sag ich jetzt mal mit einer Maus und Tastatur, dann da rumklicken und so weiter ne, das ist ja wirklich sehr.

Ist nicht der Anwendungsfall. Dahinter genau das, das wollte ich gerade sagen, es ist, es ist halt einfach n anderer Anwendungsfall, auf jeden Fall, aber das ist ja vielleicht noch mal interessant zu sagen, angenommen man würde jetzt zum Beispiel denken, so OK, ich kann entweder das nehmen oder das funktioniert beides gleich, aber das eine ist ressourcenschonender sozusagen, das ist es ja dann im Endeffekt nicht, ne ja. Ne. Ja, also viel mehr habe ich jetzt in der Gegenüberstellung

auch nicht. Wir könnten noch mal bekannte Tools noch mal so nennen zum Abschluss also wie gesagt, Docker ist jetzt so oft gefallen, weil es einfach so im Kopf verankert ist. Also Docker als Tool für Container halt, ich würde auch sagen, es ist am meisten verbreitet, das ist das bekannteste. Wer sich damit auseinandersetzen möchte, es gibt auch das Docahub, das kann man noch mal anmerken.

Hier an der Stelle, wo man sich auch fertige Images ziehen kann und einfach auch mal so seine ersten Schritte in der Welt der Container machen kann. Das git super viele. Für Git ist das Docahub für Docahub. Ja, genau, und. Wie gesagt, wir werden mal ein Buch verlinken, noch so zum Einstieg ist auch immer nicht schlecht, es gibt super viele. Tutorials auf jeden Fall. Es lohnt sich extrem, sich mal mit Containern

auseinanderzusetzen. Pottman hatten wir schon genannt als Alternative, das ist übrigens ein Punkt, da will ich mal auf jeden Fall gerne mal mit einfach mal arbeiten, um das Mal zu nutzen, weil ich habe es halt wie gesagt öfter mal gehört, bisher eigentlich nur mit Docker gearbeitet, weil wie gesagt auch gerade wenn Du zum zum im Arbeitskontext machst, dann hast

du ja oftmals so er dann. Docker, weil kennt ja jeder, wird oft benutzt, passt schon so nach dem Motto Ne, aber da will ich das will ich mir auch auf jeden Fall mal gerne angucken okay okay dann nehme ich dich jetzt und unsere Zuhörerinnen und Zuhörer bei Wort und du kannst ja berichten, wie es denn ist. Bin ich gespannt was du

berichtest soll? Wir gucken uns das zusammen zum Beispiel mal auf Twitch und unsere Livestreams an, habe ich mich auch noch nicht mitgearbeitet und ich wette es ist auch cool, also es wird auch seine Daseinsberechtigung haben. Was mir noch einfällt ist, wir haben ja gesagt, jetzt kannst du mehrere Container laufen lassen. Lastverteilung skalieren ist

sonst wie oft replizieren. Jetzt ist natürlich die Frage, Wer ist noch Herr darüber das alles zu verwalten irgendwann und da gibt es natürlich auch Tools für Cubanedes, zum Beispiel um einfach so eine Orchestrierung von vielen Containern hinzubekommen und die verwalten zu können, auch ein super spannender Bereich. Liebe Zuhörer, lieber Zuhörer, falls sich das interessiert, lasst es uns wissen, können wir auch gerne mal eine Folge zu machen.

Das wäre quasi so die Advanced Topic Folge dann zum Container, dass man das quasi diese ganze Orchestierung denn automatisiert die Skalierung automatisiert so ein Load Balancing macht, das ist auch ein unfassbar spannender Bereich am Ende. Definitiv und auch super wichtig heutzutage. Ne ja. Was wir noch machen könnten ist, ich glaub wir haben noch n bisschen Zeit. Ich hab grad mal auf die Uhr geguckt, wir werden doch nicht rausgeschmissen hier. Der Manager guckt.

Schon aus mit euch. Ihr habt jetzt genug Podcasts aufgenommen? Nein, okay zurück zum Thema, so Best Practices vielleicht auch wenn es jetzt um Einstieg geht, was worauf kann man achten? Das sind natürlich jetzt keine.

Goldenen Regeln, sondern ich würde mal sagen, so Erfahrungen, die wir gemacht haben oder wie wir das handhaben, würde ich jetzt noch ganz cool finden, so zum Ende, bevor wir noch mal so ein kleines Fazit geben, Fabi, und da haue ich einfach mal 1 rein, weil wir jetzt schon sag schon Docker Hub genannt hatten. Es gibt ja unfassbar viele Images, die du nehmen kannst für deinen Container und diese riesen Auswahl reicht auch von. Super schlanken Images, wo wirklich nur sehr sehr basic

Sachen vorbereitet sind. Bis hinzu hier hast du n Image und kannst die Welt regieren, damit hast du übertrieben gesagt ne, also weißt du wo dann einfach wo du einfach alles hast. So und das ist natürlich macht ja auch keinen Sinn, du musst dir ja überlegen was brauche ich, was sind meine Dependencies und ich würde halt immer den Weg gehen so schlank wie möglich. Weil nur das, was man noch nur

braucht. Rein Theorie. Genau. Und selbst wenn ich dann später merke, ich brauch noch was, dann kann ich das ja hinzukonfigurieren es hindert mich ja niemand in meiner Umgebung Sachen zu installieren, auch noch mal n Punkt den man anmerken kann, ich kann ja auf einer ganz ganz basic Grundlage anfangen und wenn ich dann merke hey ich brauch aber noch hier. Note package irgendwas. Dann kann ich mir das ja immer noch dazu installieren. Ja genau, ein Note ist ganz

interessant. Also ein gutes Stichwort. Es gibt ja zum Beispiel von Note auch diverse Images, die du dir bei Docker Hub, was du ja schon gesagt hattest, dir ziehen kannst, als Basis Image zum Beispiel jetzt natürlich für

dein Docker Image und du kannst. Also es gibt dann zum Beispiel, sagen wir mal Note 20 oder so ne als Image und es gibt noch dann zum Beispiel auch die alpine Version und die alpine Version ist meistens deutlich lightwriter als dann zum Beispiel guter Punkt. Ja, also so als als kleines Beispiel dafür was du meinst, ne, also da hast du dann zwar es ist entschlackt, da quasi das ganze, es ist weniger drin, aber es ist meistens dann oder muss man dann vielleicht noch mal

genau nachgucken was da drin ist und ob einem da nicht vielleicht doch was fehlt, aber da kann man halt dann sagen OK. Angenommen das reicht, dann nimmt man halt lieber. Das ist halt schneller, braucht dann noch weniger Ressourcen und so weiter genau und ein zweiter Punkt, der mir noch so einfällt ist, weil wir auch so über Cicd gesprochen haben. Automatisierung ist natürlich halt auch Container, wirklich sage ich mal im kleineren Stil, oder was heißt kleinerer Stil?

Feingranulat zu verwenden. Vielleicht formuliere ich es mal so, also es macht jetzt auch keinen Sinn zu sagen, ich mache mir jetzt einen riesen Container und da ist alles drin, sondern dass man sich wirklich mal überlegt, sich das ganze sozusagen zu Kapseln und dann einzelne Container für die einzelnen Anwendungen laufen zu lassen. Ja, so. So also, dass man halt auch wirklich diesen Grundgedanken von Anfang an trägt, sage ich mal so. Ja, auf jeden Fall.

Und was auch. Also was ich oftmals mitgekriegt habe ist, wenn du zum Beispiel, sagen wir mal, du hast eine Anwendung und dann wird gerne mal immer alles sozusagen beim Erstellen von dem Image, wenn du jetzt sagst okay ich ne wie wir vorhin gesagt haben, du brauchst irgendwie ein Basis Image, meistens wahrscheinlich, du willst da noch irgendwie deinen Code reinkriegen und dann wird auch gerne mal dann einfach der gesamte Code einfach rein kopiert, so ohne dass man sich

das vielleicht noch mal ein bisschen genauer anguckt. Also. Beispielsweise sowas wie es bringt ja nichts, wenn du Abhängigkeiten die die du auch gar nicht einchecken würdest, in dein Repository mit zu kopieren, weil die kannst du ja da drin aufbauen.

Also wieso alte Abhängigkeiten, die vielleicht noch, ich sag mal blöd gesagt von gestern sind, die brauchst du ja nicht heute in deinem Container habe ich schon erlebt, ist wahrscheinlich auch no brainer, aber wollte ich trotzdem einfach noch mal.

Sagen. Geht ja auch in die Richtung noch zu dem zweiten Punkt, also dass man sich das halt auch wirklich überlegt, dann bin ich ganz bei dir, weil es ist halt leicht zu sagen, Ey komm von der Route alles rein, so nach dem Motto ist aber nicht immer der die Best Practice dahinter. Ja super spannendes Thema, ich würd noch n kleines Fazit mit dir geben wollen Fabi wenn du Bock hast hast du noch hast du noch kurz? Warte ja doch, ich.

Muss gleich schaffen, OK. Also ich fang mal an, also was sind Container noch mal zusammengefasst? N Container ist im Prinzip die virtuelle Umgebung, die Software mit allen Abhängigkeiten bündelt und quasi ne ne Funktionalität bereitstellt. Mal ganz einfach gesagt, das heißt ich hab ne Softwarelösung da drin die und ich es kommt alles mit um das laufen zu lassen. Und ich weiß nicht, ob das jetzt vielleicht rausgekommen ist. Ich, ich versuch da gerade noch mal die Folge live Revue zu

passieren. Man kann sich das ja selbst zusammenbauen, man sagt, ich nehm das mit rein, ich nehm das mit rein, ich nehm das mit rein, ne man ist ja sozusagen selbst in der Lage zu sagen wieso n kleinen Lego Baukasten, dass du alles dir reinpackst in diesen Container und sagst, OK, das ist es jetzt und jetzt ab in die Presse sozusagen ne, also nicht in die Müllpresse, sondern. Ab in den Papierkorb damit.

Genau. Genau, und das ermöglicht dann halt auch diese Anwendung, unabhängig von der Umgebung laufen zu lassen. Was jetzt so wirklich der der der Riesen Benefit dahinter ist. Genau, und da hast du dann natürlich einfach die Möglichkeit zu sagen, ey, ich kann das. Portabilibil ich kann, ich weiß nicht, wie man das Wort da einbringt, also es ist portabel, du kannst es einfach von einem System aufs andere bringen und du hast natürlich auch eine gute Skalierbarkeit, wie wir auch

meinten. Im Endeffekt kannst du sagen, ey, ich lass jetzt meine Anwendung auf zig System einfach mal laufen und kann die hochfahren ohne Probleme. Genau dann haben wir uns noch angeguckt, weil sich wahrscheinlich der eine oder andere dann denkt, so Hey, warte mal, das klingt irgendwie so total wie eine virtuelle Maschine. Was ist der Unterschied? Haben wir das ja auch mal ein bisschen gegenüber gestellt, da

noch mal kurz zusammengefasst. Also Container Vorteil ist, du teilst dir nur den Kernel mit deinem Host System, eine VM braucht ein komplett eigenes Betriebssystem, Riesen unterschied Anwendungsfälle würde ich sagen Container ideal für moderne und skalierbare Softwarelösungen, Wir hatten ja gesagt so Micro Services, Cloud, Architektur, Architektur und Anwendung also ja es sind jetzt so Buzzwords, aber da wird es halt auch wirklich eingesetzt. Und VMS, wo du halt vielleicht

mehr Isolation noch brauchst. Dass du wirklich, dass ich will, jetzt komplett meine eigene Welt haben, einen eigenen Sandkasten und oft bei traditionellen Anwendungen. Ich meinte ja so Legacy Projekte oder Multi US Umgebung, da wird das halt auch noch eingesetzt und hat auch auf jeden Fall seine Daseinsberechtigung. Definitiv.

Ja, also im Endeffekt. Wie gesagt, ich war irgendwie nie so richtig der Fan von VM nutze ich auch heute aktuell nicht, bist auch kein Fan von Docker, Docker sag ich schon Container, es ist immer Docker, du weißt genau was ich meine, Nein davon bin ich, davon bin ich wirklich Fan, aber zum Beispiel weil du gerade gesagt hast Multi US Umgebung, ich hab irgendwie mal n dualboot dann. Präferiert, aber am Ende weiß ich nicht am Ende. Muss man aber fairerweise sagen.

Unsere Systeme, die wir zum Beispiel im Studium hatten, hätten VM auch wirklich. Also du hast ja gesagt, Deine Erfahrung war sehr ruckelig und das lag auch daran. Also ich sag mal so, mein Netbook hatte eh Probleme schon Windows zu starten und deswegen hatte ich eh immer noch Linux parallel. Drauf aber ich. Ich find also um das Ganze noch mal zu, also für mich zusammenzufassen aus meiner Sicht, ich finde. Ein Betriebssystem pro Rechner ist einfach.

Das ist das das Beste, also alles andere sind nur so Zwischenlösungen die so na. Na, ich weiß nicht. Also lieber 5 Laptops sagst du oder was? 5 Laptops und 5 verschiedene Betriebssysteme. Genau. Ach ja, aber weißt du, ich überlege gerade, wir sollten mal wieder die Netbooks rausholen. Hast du deins noch von früher? Ja, ich glaube, da läuft aber nicht mal Windows 10 drauf. Also ich weiß nicht, ich hatte da Windows 7 drauf und das war schon sehr langsam.

Ja, also lieber zuhören, lieber zuhören, falls du uns mal auf Twitch damit coden sehen willst, lass es uns wissen und dann kramen wir die Dinger noch mal raus. Ansonsten fabi würd ich sagen, es hat mir mega Spaß gemacht, es war ne sehr coole Folge, ich liebe das Thema, ich find es auch super spannend und auch noch mal jetzt die Anmerkung, lieber zuhören lieber zuhören, falls du mehr dazu wissen möchtest, auch zum Beispiel Stichwort Orchestrierung.

Lass es uns wissen. Podcast Mail wie immer in den Show Notes schreibt uns auch gerne ein Feedback zu der Folge Feedback zu dem Podcast. Was können wir deiner Meinung nach besser machen, was würdest du dir wünschen, auch vielleicht Themenvorschläge? Lass es uns wissen, wir sind super dankbar dafür. Ansonsten wie gesagt der Spenden Link wie wir am Anfang erwähnt hatten, falls du uns

unterstützen müsstest. Vielen vielen Dank. Link ist in den Show Notes. Empfiehlt gerne den Podcast weiter, lass ne Bewertung da, das wird uns alles mega pushen. Vielen vielen Dank dann auf jeden Fall dafür und ansonsten ich mach's jetzt kurz die Abmoderation Fabi ich bin schon wieder im Redefluss, hören wir uns alle nächste Woche wieder ich wünsche euch allen ne gute Zeit bis dahin und bis dahin Eure Coding Vadis gemeinsam besser.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast