Container

Die Containervirtualisierung ist eine Methode, um mehrere Instanzen eines Betriebssystems isoliert voneinander auf einem Hostsystem zu betreiben. Im Gegensatz zur Virtualisierung mittels eines Hypervisors hat Containervirtualisierung einige Einschränkungen in der Art ihrer Gäste, gilt aber als besonders ressourcenschonend. Die Container Technik geht zurueck auf das Jahr 1979. Hier wurde chroot zur Isolierung von Software im Dateisystem eingefuehrt. Im Webhosting bereich hat man mit der Dateisystemisolierung die Moeglichkeit gehaben kostenkuenstig mehrere Homepages auf einem Server zu betreiben. Aus der Idee entwickelten die Linux Kernel Entwickler funktionenen um auf Kernel Ebene Bereiche zu isolieren. So entstanden Namespaces, CGroups und Capabilities. Unter dem Begriff LXC kommen diese Techniken zum einsatz um ganze Programme, Libaries usw. gebuendelt (Container) zu isolieren. Da die Handhabung sehr schwierig ist, konnte sich die Nutzung nicht in der Masse durchsetzen. Erst durch die Einfuehrung von Docker als quasi Framework wurde die Containerisolierung fuer viele Einsatzbereiche interessant.

Heute liefern viele Software Haeuser ihre Server Produkte auch als Container aus um den Kunden arbeit bei der Inbetriebnahme zu sparen. Darueber hinaus gibt einem erst die Containervirtualisierung die Moeglichkeit schnell scalierbare Systeme aufzubauen. Docker hat quasi eine neu Ausrichtung der IT eingeleitet. Weg von grossen Monolythen, hin zu vielen kleinen Services die je nach Auslastung und Nutzung scaliert werden koennen. Darueber hinaus auch noch flexibel im Hosting sind. Eine Software im Container kann heute auf einem Server inhouse betrieben werden, und morgen bei AWS und Co.. Nebenbei werden die Server voll ausgelastet da verschiedenen Services, isoliert von einander, auf einem Server laufen koennen. Eines darf aber nicht verschwiegen werden. Wo frueher ein Server mit einer Aufgabe beschaeftigt war, betreibt man nun eine komplexe Umgebung dessen Aufbau, Betrieb, Security und Monitoring eine grosse Herausforderung ist. Wir koennen immer nur wieder feststellen, dass Kunden die sich eigenstaendig auf den Weg machen am Ende viele Probleme im taeglichen Betrieb haben. Es sollte fruehzeit ein externer Partner beauftragt werden, welcher sich mit Produktiven Betrieb von Microservices auskennt um beratend zurseite zu stehen.

Wir betreiben mehrere Microservice Umgebungen beim Kunden wie auch inhouse, aber auch Legazy Services im Docker. Alle Umgebungen sind Produktiv und haben bei einem Ausfall direkte Kunden Auswirkung. Die Umgebungen sind daher als sehr kritisch einzustuffen. Gerne unterstuetzen wir sie bei ihrem vorhaben auf Containervirtualisierung zu setzen.