Software existiert nicht in Isolation. Anwendungen benötigen nicht nur Computer, um zu laufen, sondern auch eine ganze Reihe anderer Dinge; zumindest lassen sie sich in zwei Worten zusammenfassen: AbhÀngigkeiten und Konfiguration.
Um eine Anwendung in der Produktion einzusetzen, muss also nicht nur der Quellcode installiert werden, sondern auch sichergestellt werden, dass eine Vielzahl von Komponenten, Bibliotheken, Frameworks, Sprachlaufzeiten, Konfigurationsdateien und viele andere Komponenten ordnungsgemĂ€ss installiert, konfiguriert und einsatzbereit sind. Diese KomplexitĂ€t variiert von Programmiersprache zu Programmiersprache, aber selbst die kleinste Anwendung kann scheitern, wenn ihre Anforderungen nicht richtig erfĂŒllt werden.
Die KomplexitĂ€t der Einrichtung der richtigen Umgebungen fĂŒr die AusfĂŒhrung von Software, gepaart mit den zunehmenden Einsatzrhythmen unserer modernen GeschĂ€ftswelt, hat die Branche in den letzten 20 Jahren dazu veranlasst, innovative Lösungen zu entwickeln. Von Java-Archiven ĂŒber Konfigurationsmanagementsysteme wie Puppet oder Ansible bis hin zu virtuellen Maschinen â Ingenieure haben immer wieder versucht, dieses Problem zu lösen.
Die neueste und wahrscheinlich bahnbrechendste dieser Innovationen ist die Containertechnologie.
In Anlehnung an die Idee der Schiffscontainer, die im 20. Jahrhundert erfunden wurden, um das Jahrtausende alte Problem des GĂŒtertransports nach Ăbersee zu lösen, ermöglicht die Containertechnologie heute, dass Anwendungen nahtlos von einem Laptop auf einem Hyperscaler, von einem IoT-GerĂ€t auf einem Grossrechner laufen, ohne Ănderungen und ohne zusĂ€tzliche KomplexitĂ€t. Ziehe einfach den Container aus seiner Registrierung und fĂŒhre ihn aus.
Ein Container kapselt alles, was eine Anwendung zum Laufen braucht: ihre BinĂ€rdateien oder ihren Quellcode, aber auch ihre AbhĂ€ngigkeiten und sogar ihre Konfiguration. All diese Informationen sind in einem einzigen Paket verschlĂŒsselt, das vom grössten Cloud-Anbieter bis zum kleinsten Computer, den du dir vorstellen kannst, geteilt und ausgefĂŒhrt werden kann.
Die Containertechnologie bietet eine Umgebung der Wahl fĂŒr die AusfĂŒhrung von Anwendungen:
Zusammenfassend lĂ€sst sich sagen, dass die Container-Technologie den perfekten Baustein fĂŒr Microservice-Anwendungen darstellt, die auf Kubernetes laufen.