Skillbyte Podcast #60: Darum solltest du Linux benutzen!

Willkommen zum Skillbyte-Podcast! Skillbyte ist Ihr Partner für digitale Exzellenz.
In diesem Podcast geht es um das Thema: Darum solltest du Linux benutzen!
// Inhalt //
01:07 - Linux ist überall
03:29 - Linux ist sehr flexibel und anpassbar
04:18 - Warum solltest du dich mit Linux beschäftigen?
07:39 - Fuktionsweise eines Paketmanagers
08:37 - Saubere Konzepte für Skalierung und Systemstabilität
11:07 - Wissen rund um Netzwerke
12:30 - Linux ist sehr verbreitet und ein Standard-Werkzeug
15:04 - Linux stellt im Serverbereich die Speerspitze der Entwicklung dar (Docker, Kubernetes)
15:54 - GIT versioning system ist ebenfalls Standard für die Softwareentwicklung
16:26 - Kubernetes als Orchestrierungslösung für Container
17:49 - Zusammenfassung
Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de
Feedback und Fragen gerne an podcast@skillbyte.de
AUTOMATISCH ERZEUGTES TRANSKRIPT
Linux halte ich für sehr, sehr wichtig, damit ihr versteht, wie Computersysteme im Detail funktionieren und wie auch Computer, Netze, insbesondere Internet, Protokolle, Netze und das Internet im Detail funktionieren. Dass ihr euch mit EDV Themen beschäftigen könnt, also dem Operations System Betrieb. Herzlich Willkommen zu unserer Podcast Episode Nummer 60. Darum solltest du Linux benutzen. Abonniert unseren Podcast mehr spannende Themen aus dem Technologie Umfeld in der IT Entscheider und IT Fachkraft seid. Wenn ihr eine Hörer Frage im Verlauf der Episode habt, sendet uns gerne ein Email an Podcast skillbyte Wir freuen uns immer über Bewertungen und Weiterempfehlung an Freunde und Kollegen, die ebenfalls in der Branche arbeiten. Heute möchte ich mit euch über das Thema Linux sprechen und warum ich glaube, dass ihr euch damit beschäftigen solltet, falls ihr das nicht schon ohnehin tut. Mein Name ist Maurice und ich bin bei Shepard für den Big Data und Cloud Bereich zuständig, wo Linux natürlich auch eine ganz entscheidende Rolle spielt. Wahrscheinlich haben so gut wie alle IT Fachkräfte schon mal von Linux gehört. Es gibt sie ja auch schon seit ungefähr 1992 ist von dem damaligen Studenten Linus Torvalds ins Leben gerufen worden und heute sehr, sehr verbreitet.
70 %. Wahrscheinlich sind es noch mehr. Die Zahlen sind von 2005. Aller Server im Internet werden mit Linux betrieben. Die Android Smartphones haben einen Linux Kern. Viele Spielekonsolen haben einen Linux oder Linux ähnlichen Kern. Der Bastel Rechner Raspberry PI wird vorwiegend mit Linux betrieben. Und um mal ein prominentes plastisches Beispiel zu geben auch das Car Entertainment System in den Tesla Autos wird ebenfalls mit einem Linux System betrieben. In diesem Fall ist es Ubuntu. Häufig bringt man das Betriebssystem Linux mit kostenlos in Verbindung und das ist auch richtig. Es wird kostenlos vertrieben und die Hürde es selber an zu testen ist sehr gering. Und ich möchte euch heute gute Gründe liefern, warum ihr das auf jeden Fall mal ausprobieren solltet, auch wenn er auf dem Mac Betriebssystem zu Hause seid oder ein Windows PC habt. Das sind beides überhaupt keine Hindernisse. Man kann Linux entweder in einer virtuellen Maschine betreiben und damit Erfahrung sammeln, einen virtuellen Server irgendwo mieten oder es auch ganz einfach parallel installieren neben dem vorhandenen Betriebssystem und dann nativ in dieses Betriebssystem rein booten. Wenn man sich dann wirklich entscheidet, dass man Linux auch als Desktop Betriebssystem nutzen möchte, was zum Beispiel der Fall ist.
Linux ist überall. 70 % der Internet Server und ganz ganz viele Geräte. Smart Home Geräte, Internet of Things Geräte werden mit Linux betrieben. Fast überall ist es auch so, dass Linux der dominante Player ist. Und auch im Super Computing Bereich gibt es Stand heute 20 22 keinen Computer, der nicht mit Linux betrieben wird. Und das ist schon eine starke Ansage. Also die 500 leistungsfähigsten Computer der Erde werden alle mit Linux betrieben. Dennoch ist Linux so wandelbar, dass es auch auf kleinen Telefonen funktioniert. Viele Entwickler und dazu gehöre ich selber, nutzen es als Entwicklungsumgebung. Wenn man selber Software entwickelt, ist es einfach sehr schnell, auch als System. Viel Software, die man zur Entwicklung braucht, ist direkt vorhanden. Kann man sehr einfach installieren über den Paket Manager. Linux ist sehr flexibel anpassbar. Also es gibt unterschiedliche Desktop Umgebungen. Wie die Fenster aussehen, wie die Bedienung läuft. Man kann alles konfigurieren, jede Maustaste kann man frei definieren. Und bei all dem weist es eine sehr hohe Verarbeitungs Geschwindigkeit. Auch das liegt unter anderem auch daran.
Dadurch, dass ihr eine hohe Kontrolle habt über das Betriebssystem und alles, also wirklich alles selber steuern könnt, sind auch keine Programme installiert, die ihr nicht wirklich haben wollt, was ja bei Smartphones oft der Fall ist oder auch bei Windows PCs und auch bei Mac PCs, dass man nicht alle Komponenten unbedingt entfernen kann, die man nicht braucht. Sprachsteuerung sei hier mal genannt, das ist auf Linux ohne Probleme möglich. Hier habt ihr wirklich nur das, was ihr auch nutzen wollt. Dadurch habt ihr oft eine höhere System Leistung, weil es eben alles andere rausschmeißen könnt. Jetzt zur Eingangsfrage und ich glaube, das ist ganz wichtig, wenn man am Anfang seiner Karriere steht oder vielleicht auch schon länger dabei ist, aber noch nicht so viele Berührungspunkte mit Linux hatte, weil man vielleicht Windows Anwendungen entwickelt hat, vornehmlich das kann ja auch sein. Warum glaube ich, ist es wichtig, dass du dich mit Linux beschäftigen solltest? Das Allerwichtigste, der erste Punkt meiner Ansicht nach ist der Lerneffekt. Das Thema Weiterbildung durch die Offenheit des Systems und die Vielzahl an Informationen, die man im Internet zu allen möglichen Ecken und Kanten des Betriebssystems findet, und auch der damit gebündelten Anwendungen kann man sehr viel genauer in ein Computersystem hineinschauen.
Wie alles funktioniert? Ihr könnt euch das so vorstellen, als wenn ihr bei einem Auto die Motorhaube aufmacht. Und auf einmal seht ihr, was alles dazu führt, dass das Auto beim Tritt aufs Gaspedal nach vorne fährt und beim Start auf die Bremse auch wieder stehenbleibt. Man muss das nicht wissen, man kann auch einfach einsteigen und damit fahren. Das machen auch die meisten. Aber wenn ihr euch weiter interessiert, garantiere ich euch Da wird euch ein ganz neuer Kosmos eröffnet. Ihr könnt halt sehen, wie die einzelnen Komponenten zusammenspielen und wie ein Computer letztlich funktioniert. Ich habe da ganz, ganz viel gelernt und man kann auch jede Komponente anpassen. Eine weitere Eigenschaft des Linux Ökosystems ist, dass sehr viel Software als Open Source bereitsteht. Also ihr könnt in den Quellcode reinschauen und das ist die beste Dokumentation überhaupt, weil dann könnt ihr quasi sehen, wie die Software tatsächlich funktioniert und es gibt keine Geheimnisse mehr. Also ein sehr tiefgreifendes Verständnis von den Komponenten erlangen, die euch eben interessieren. Für mich persönlich war es zum Beispiel sehr, sehr wichtig zu verstehen, wie so ein Betriebssystem funktioniert.
Was für Komponenten gibt es? Was ist ein Kernel? Der Betriebssystem Kern? Was sind Module, die den Kernel erweitern um beispielsweise eine grafische Ausgabe, verschiedene Teilsysteme, die da angedockt werden können? Wie funktioniert das Berechtigungen Konzept? Also man hat auf verschiedene Fall Systemen verschiedene Rechte. Kann der Nutzer eine Datei nur lesen und ändern oder kann das die Gruppe oder kann das sogar alle Nutzer dieses Systems? Welche Dienste gibt es? Welche sind notwendig, um das System zu betreiben? Welcher Dienst macht was? Also vom Treiber bis hin zu Grafikkarten, Treiber bis hin zu Dateisystem bis hin zu Soundkarte. Alles mögliche kann man sich anschauen, genau wie es funktioniert und kann natürlich auch die Dienste, die man nicht braucht komplett installieren und dadurch das System halt sehr schnell konfigurieren. Also eine sehr hohe System Leistung dadurch erzeugen. Ihr lernt wie er mit der Kommandozeile umgeht, also lange verworrene Kommandos. Das hört sich jetzt erstmal vielleicht beängstigend an, aber man lernt generell, wie man diese System Werkzeuge eines Betriebssystems, wie man sie zusammenstellt. Linux hat halt die Philosophie.
Es gibt ganz viele System Werkzeuge, die lassen sich alle miteinander verbinden mit Pipes. Wenn ihr da euch eine Textdatei anzeigen lasst, einen Filter auf die Textdatei anwendet, dann vielleicht die Zeilen zählt oder irgendwelche Vorkommnisse zählt und dann die Zeilen nur ausgibt, die euch interessieren und das Ganze vielleicht am Ende noch sortiert. Dann habt ihr vier verschiedene Filter hintereinander geschachtelt und lernt so sehr schnell, wie man einfache Programme, einfache Verarbeitungs Schritte automatisieren kann. Auch ein riesen Lerneffekt ist das Thema Paket Manager heute die einfachsten Paket Manager, wenn man so möchte, mit denen die Mehrzahl der Menschen in Kontakt tritt. Das dürften die App Store sein auf den Mobilgeräten. Man wählt eine App aus, lädt sie runter und sie wird installiert. Im Grunde gibt es das Konzept schon sehr, sehr viel länger in Form des Paket Managers. Und bei Linux ist es eben so, dass wenn man ein Programm installiert, das Programm selbst aus ganz vielen unterschiedlichen Bibliotheken besteht, die dann eben auch installiert werden, mit installiert werden. Und wenn man das Programm wieder löscht, kann der Pakete Manager die nicht mehr benötigten Bibliotheken auch wieder restlos entfernen.
Und dann entsteht so ein Abhängigkeits Baum. Ist auch sehr interessant. Gerade wenn mehrere Programme die gleichen Bibliotheken benötigen, kann man sehr viel Platz sparen, weil viel geteilte Funktionalität vorhanden ist. Durch den Paket Manager wird einem also klar, wie Software generell zusammengesetzt ist, wie Bibliotheken zusammenspielen. Auch viel gelernt habe ich über das Thema Skalierung. Also Linux läuft mit einem CPU Core genauso wie mit 10.000 oder mit viel Gigabyte funktioniert das genauso wie mit 400 Gigabyte. Diese nahtlosen Grenzen sind ja nicht unbedingt für alle anderen Betriebssysteme auch so selbstverständlich, obwohl das mittlerweile schon besser geworden ist über die Zeit. Aber bei Linux stehen halt häufig Konzepte im Vordergrund und wenn man die Konzepte verstanden hat, dann kann man die in allen möglichen Größenordnungen dann auch auf wirkliche Probleme anwenden. Also auch hier lernt man sehr viel Konzepte für Trading. Also wie läuft das? Die parallele Ausführung von mehreren Threads auf mehreren CPU Kurs. Da kann man einen guten Einblick nehmen. Die hohe System Stabilität. Die Internet Server werden mit Linux betrieben, weil sie natürlich nicht ausfallen dürfen.
Das bringt Linux im Prinzip gratis mit, dass eine STANDARD Installation schon recht stabil ist. Warum ist das so? Der Grund dafür ist, dass die Prozesse von Anfang an sauber getrennt waren, eigene Speicher Bereiche hatten. Wenn ein Prozess abgestürzt ist, konnte er nicht andere Prozesse mitreißen. Dadurch, dass im Speicher Trennung vorherrscht durch die Rechte kann er auch nicht auf andere Dateien zugreifen und ist da sozusagen eingesperrt. Die Container isierung treibt das natürlich noch mal auf eine neue Spitze und sichert weiter ab, dass eben unterschiedliche Dienste auf einer Hardware nebeneinander ausgeführt werden können, ohne dass es da Überschneidungen kommt, die das System Stabilität gefährden. War für mich, als ich vor 17 Jahren begonnen habe, mich mit Linux zu beschäftigen, auch sehr spannend zu verstehen. Warum ist das System so viel stabiler als die Alternativen? Und das liegt im an den sauberen Konzepten, also der rechte Trennung, stabilen Dateisystem, Arbeitsspeicher, Trennung von einzelnen Prozessen usw. Das ist für den Server Betrieb einfach notwendig. Auch wie funktionieren Server Dienste? Wie betreibe ich einen eigenen Server?
Was ist dafür notwendig? Welche Kenntnisse muss ich haben? Welche Kenntnisse muss ich im Bereich der Dienste haben? Welche Kenntnisse muss ich im Bereich des Netzwerks haben? Alles das lernt man auch, wenn man mit Linux umgeht. Plus Es gibt so viel Material da draußen, dass man da eine riesen Spielwiese hat und sich das sehr einfach in verschiedenen Tutorials anlesen kann. Und das ist wirklich nach wie vor relevantes Wissen, wenn man Softwareentwicklung betreibt. Letztlich entwickelt man meistens Server Software, die irgendwie vom Nutzer abgerufen wird und dann verschiedene Aufgaben durchführen soll. Netzwerk wissen. Das hat jetzt gar nicht so viel mit Linux zu tun. Aber dennoch ist Netzwerk Wissen und das Wissen. Wie funktioniert das Internet? Was ist eine IP Adresse? Was ist ein Port? Wie konfiguriert ich dienste sicher? Was ist zum Beispiel Network Address Translation? Wie können mehrere Dienste zusammenarbeiten? Also wenn man einen Webserver hat, der auch PHP Dateien rendern kann und vielleicht sogar Eingaben in der Datenbank abspeichert. Diese Dienste müssen irgendwie konfiguriert werden, damit sie zusammenarbeiten können. Wie funktioniert das genau?
Da ist Linux einfach das perfekte System. Auch hier gibt es wieder unfassbar viele Tutorials. Die Anwendungen, also den Webserver zum Beispiel, den gibt es gratis schon im Paket Manager mit einer Konfiguration dabei, so dass man da einen sehr guten Startpunkt hat, wenn man sich da tiefer einarbeiten möchte. Persönlich beschäftige ich mich seit 2002 mit Linux und hatte damals noch sehr viel mit Hardware Problemen zu tun. Also Treiber für Hardware war gar nicht vorhanden. Die Grafikkarte hat man sich ans Laufen gekriegt oder man hat teilweise Tage benötigt, um das hinzubekommen. Das ist heute Gott sei Dank nicht mehr der Fall. Die Hardware ist viel besser geworden. Allerdings habe ich damals bei diesen ganzen Problemlösungen und dem Durchforsten des Internets auch viel gelernt, wie man eben auf Linux Probleme löst und auch so eine gewisse Zähigkeit entwickelt, wenn man diesem Fehler auf der Spur ist und den dann auch endlich lösen möchte. Weitere Gründe, warum ihr euch mit Linux beschäftigen solltet, ist einfach die hohe Verbreitung. Das spielt in den Lerneffekt mit rein. Dann kennt ihr euch mit Technologie aus, die sehr verbreitet ist und absolut in jedem Unternehmen hochgradig relevant ist.
Nahezu jeder Server wird mit Linux betrieben. Wenn es nicht ein Spezial Server ist mit einem abgegrenzten Anwendungsfall. Die Server Dienste wie eben schon angesprochen beispielsweise ein Webserver sind oft für Linux optimiert und sehr einfach installiert und machbar, was natürlich auch dann beim Auftreten von Sicherheitslücken einfache Upgrades und einfaches Pacing ermöglicht. Command Interface haben wir schon angesprochen, da kann man sehr, sehr viel schon automatisieren, ohne dass man wirklich programmiert, sondern einfach nur vorhandene Programme zusammen schraubt. Das macht viel Spaß und ist vielleicht mit Lego vergleichbar. Bei Linux ist es wirklich so oder bei den Distributionen, dass man selber ermutigt wird, das Problem zu lösen und man nicht Partikularinteressen des Herstellers aufgesessen ist, sondern man jederzeit die volle Kontrolle hat. Aber mit viel Kontrolle kommt die Verantwortung, sich dann gegebenenfalls auch um einige Themen kümmern muss. Man kann auch was kaputt machen. Also bei vielen Tools, die unter Linux von Solid sind, gibt es den sogenannten Force Schalter. Wenn das Tool sagt okay, du schreibst jetzt hier auf eine Datei, die ist aber gerade in Benutzung.
Möchtest du die wirklich löschen oder möchtest du die wirklich überschreiben und man sagt mit Force ja, dann wird das gemacht. Also es gibt dann keinen Schutzschirm mehr, man hat Source Code Einsicht. Das ist hier und da mal interessant, wenn ihr Probleme habt mit Software Paketen. Linux bietet von Haus aus eine sehr hohe Sicherheit und ihr habt keine Adware installiert. Bzw wenn die Distribution Loader mitbringen sollte, dann könnt ihr die einfach löschen. Es ist auch so, es gibt nicht das Linux, sondern Linux beschreibt im Grunde nur den Betriebssystem Kern und ihr könnt jetzt um diesen Kern im Grunde eure Linux Umgebung aufbauen. Aber das haben viele Hersteller natürlich schon gemacht. Also wie ehemals RedHat, heute IBM mit Cento oder Susi Linux oder Mandrake oder Arch Linux oder Ubuntu oder Linux Mint. Also da gibt es in 1000 Geschmacksrichtungen für jeden Einsatzzweck Linux Distributionen, das heißt diesen Linux Kern mit schon vor praktizierter Software, die man dann auch nach Belieben erweitern kann oder wieder deinstallieren kann, damit jeder glücklich wird und sein geeignetes System findet. Wobei ich aus Erfahrung sagen kann, man schraubt ja dann doch immer noch dran und so eine Distribution ist eher auf der Ausgangspunkt für weitere Anpassungen auf den persönlichen Geschmack.
Linux stellt oft gerade im Kulturbereich die Speerspitze der Entwicklung dar. Das ist auch noch ein Grund, warum ihr Linux verwenden solltet. Linux entwickelt sich dort sehr schnell weiter, weil halt jeder mitarbeiten kann. Alle sechs Wochen etwa kommt eine neue Kernel Version raus. Viele neue Entwicklungen geschehen hier, also zum Beispiel das Container Werkzeug. Docker ist auch auf Linux entstanden, weil es einfach System Funktionen die ohnehin vorhanden waren gebündelt hat und es sehr praktisch gemacht hat, mit Containern umzugehen. Docker funktioniert auch auf Windows oder auf MacOS, braucht dort aber eine Emulation, die letztlich immer darauf ausgerichtet ist, dass man im Grunde eine virtuelle Linux Maschine hat, die dann zumindest emuliert werden muss, damit Docker hier auch funktioniert. Es gibt auch weitere Container Technologien auf Linux. Docker ist nicht die einzige, aber Docker ist mit Sicherheit die bekannteste. Ja, das git warning System, das hat jetzt nicht unbedingt was mit Linux zu tun, wurde aber für die Entwicklung des Linux Kernel mit vielen Millionen Codezeilen entwickelt und hat einen Siegeszug sondergleichen angetreten. Wurde ebenfalls von Linus Torvalds ins Leben gerufen.
Und wenn er heute Softwareentwicklung betreibt, kommt ja wahrscheinlich um GitHub oder git lab und generell das git versionierung Werkzeug kaum noch herum. Also auch das würde ich auf jeden Fall empfehlen zu lernen und das ist eben auf Linux zu Hause und es bietet sich da einfach an Kubernetes habt ihr wahrscheinlich auch schon gehört, da geht es einfach um die Orchestrierung von Containern, also zum Beispiel Docker Containern, dass man einfach so einen Controller hat, der diese Docker Container überwacht und hochfährt, so wie man einzelne Programme mit Modulen hatte. Ich hatte eben den Webserver mit dem PHP Modul und der Datenbank hätte man dann heute einen Webserver Container und ein Datenbank Container die dann miteinander sprechen und Kubernetes schaut, dass beide in ausreichender Zahl vorhanden sind. Und auch wenn ein Container abstürzen sollte oder ein Dienst in einem Container abstürzen sollte, könnte Kubernetes als Kontrollinstanz sich darum kümmern und diesen gewollten Zustand ein Webserver ein Datenbank Server automatisch wiederherstellen. Was auf Entwicklung ist es heute oft so, dass man kleine moderne Micros Services Anwendungen baut. Das heißt ein Dienst, der erfüllt genau eine Aufgabe, der wird dann oft in einem Container betrieben und wenn man mehrere Dienste hat, dann werden mehrere Container zusammen betrieben, die dann eben über Netzwerk Schnittstellen, virtuell oder real die gesamte Anwendung abbilden.
Zukünftig wird es wahrscheinlich auch sein, dass das selbstfahrende Auto das würde ich heute als. Entwicklung beschreiben, zu großen Teilen auf Linux basieren wird oder zumindest die Linux Konzepte die es heute gibt natürlich kopiert und dann auf eine eigene Plattform überträgt, weil Linux ebenso wandelbar ist, die Konzepte aber sauber sind und auch im Großen wie im Kleinen funktionieren, fast schon wie eine mathematische Regel oder Algebra. Ja, ich hoffe euch hat dieser kleine Einblick gefallen, was man alles mit Linux machen kann und warum ich glaube, dass es wichtig ist, dass ihr euch damit beschäftigen solltet. Ich fasse noch mal zusammen Linux halte ich für sehr, sehr wichtig, damit ihr versteht, wie Computersysteme im Detail funktionieren und wie auch Computer, Netze, insbesondere Internet, Protokolle, Netze und das Internet im Detail funktionieren. Dass ihr euch mit der Themen beschäftigen könnt, also dem Operations System Betrieb wie was mache ich zum Beispiel wenn ich einen Webserver habe und spielen Update einen ist der Webserver ja kurz weg. Hm, okay, wie kriege ich das sicher hin?
Diese ganzen Themen, das ist oft unter Infrastruktur ist Code. Wird das zusammengefasst, könnt ihr euch angucken und da gibt es einen hohen Industrie Bedarf, dass sie die Mächtigkeit der Kommandozeile kennenlernt, die ihr sicher nicht mehr missen wollen werdet. Wenn ihr da einmal Blut geleckt habt, dass ihr wisst, wie man Server Dienste bereitstellt, dass ihr eine STANDARD Linux Distribution für eure speziellen Anwendungsfälle und euren persönlichen Geschmack anpassen könnt, dass ihr neue Technologien auf der zugedachten Plattform testen könnt, wie im Fall von Docker, Kubernetes und anderen neuen Technologien, die für Linux entstanden sind. Und dass ihr eine hohe Geschwindigkeit habt auf dem System, wenn ihr es benutzt, entweder als Server, dass ihr sehr effizienter Nutzer Anfragen bedienen könnt oder selber, wenn es überhaupt Betriebssystem ist, wie zum Beispiel bei mir, dann könnt ihr da so nur durch die Programme wetzen und habe eine hohe System Geschwindigkeit, was auch sehr angenehm ist. Wenn ihr Fragen habt, sind uns gerne Feedback ein Podcast skillbyte. Wir freuen uns immer über Bewertung und Weiterempfehlung an Freunde und Kollegen, die ebenfalls im Sektor arbeiten.
Schaut doch gerne auf Skillbyte vorbei. Dort haben wir auch ein paar offene Stellen ausgeschrieben. Wenn ihr im IT Bereich arbeiten möchtet, meldet euch daher auch gerne bei uns. Vielen Dank für eure Aufmerksamkeit.