07.02.2023 – Kategorie: Technologie
Container-Technologie: In 5 Schritten das Container-Management optimieren
Kein Softwareprojekt gleicht dem anderen. Das war schon immer so und gilt natürlich auch im Zeitalter von Cloud- und Container-Technologie. Daher gibt es keine Standardformel für die Optimierung des Container-Management.
Als die Container-Technologie Docker im März 2013 veröffentlicht wurde, waren Container in der Linux-Community schon mehr als zehn Jahre im Einsatz. Dennoch hat die Nutzerfreundlichkeit und Funktionsvielfalt von Docker Container erst in den Mainstream gebracht. Eine Erfolgsgeschichte, die nun – wiederum zehn Jahre später – so einige Best Practices hervorgebracht hat. Mit folgenden fünf Schritten können Entwickler und Administratoren Container-Management optimieren.
1. Mandanten- und Verantwortungsmodell sorgfältig planen
Die Frage nach der Menge der eingesetzten logischen Cluster wird bei der Orchestrierung der Container-Technologie oft zur Gretchenfrage: Während manche Administratoren meinen, ein großer Cluster für alle Projekte reiche aus, sind andere der Auffassung, dass pro Projekt ein Cluster genüge. Eine einheitliche Antwort auf die Frage gibt es nicht, da die Lösung von individuellen Bedürfnissen oder Vorlieben abhängig ist – und von den eingesetzten Tools und deren Eigenschaften. Wichtig ist eine frühzeitige und sorgfältige Planung des Verantwortungsmodells. IT-Abteilungen müssen festlegen, für welchen Bestandteil der Infrastruktur und welche Aufgaben die jeweiligen Projektteams zuständig sind und ob diese Domäne sich überhaupt eindeutig isolieren lässt. Falls sich Zuständigkeiten überschneiden, müssen die Verantwortlichen sie zu Projektbeginn klar an alle möglichen Stakeholder kommunizieren, um Missverständnissen vorzubeugen.
2. Container-Technologie: Ressourcen-Verwaltung forcieren
Container-Orchestrierungstools wie Kubernetes trennen streng zwischen der zu betreibenden Software und der Hardware, auf der sie läuft. Sie nehmen Instruktionen zum Scheduling von Workloads daher erst einmal pauschal an – egal ob die notwendigen Hardwareressourcen für die Prozesse zur Verfügung stehen. Das erschwert die Kapazitätsplanung seitens der Administratoren. Es ist daher unbedingt notwendig, dass die jeweiligen Workloads die für sie benötigten Ressourcen explizit deklarieren. Nur auf diese Weise können Orchestrierungstools die Ressourcen optimal verteilen. Das ist vor allem für den Schutz regulär laufender Container wichtig. Container ohne deklarierten Ressourcenbedarf sind potenziell gefährlich für alle anderen Workloads, die auf derselben Hardware laufen.
3. Automatisierung bei der Container-Technologie nutzen
Die Orchestrierung der Container-Technologie hat viele Vorteile, zum Beispiel einen sehr flexiblen und zuverlässigen Betrieb. Ein wichtiger Aspekt ist allerdings auch, dass die Entwickler von Kubernetes und anderen Tools besonders die Automatisierung im Blick hatten. Daher sind heute unter anderem die Infrastrukturverwaltung über Infrastructure as Code, containerisierte Continuous-Integration-Pipelines sowie Deployments über GitOps möglich. Die verschiedenen Automatisierungsmöglichkeiten reduzieren nicht nur den manuellen Aufwand, sondern verbessern auch die Zuverlässigkeit – auf lange Sicht sogar die Nachvollziehbarkeit von Konfigurationen und deren Änderungen im Betrieb. Daher ist die klare Empfehlung, soviel zu automatisieren, wie sinnvoll möglich ist.
4. Sicherheit stets im Auge behalten
Container-Images enthalten nicht nur die auszuführende Software, sondern auch diverse Komponenten für deren Funktionalität wie beispielsweise Bibliotheken. Das ist ein großer Vorteil und erleichtert vieles, allerdings geht damit auch eine Verantwortung einher: Administratoren müssen diese Komponenten, wie die Software selbst, auf dem aktuellen Stand halten – nicht nur in deren Basis- oder Muster-Images, sondern auch in den aktiven Images, die sich gerade in Produktion befinden. Nur so können sie möglicherweise existierende Sicherheitslücken schließen und Bugs ausmerzen. Es ist daher unabdingbar, dass IT-Teams Prozesse definieren, die sie über notwendige Updates informieren, und festlegen, wie der Rollout von Updates vonstatten geht.
5. Öffentliche Image-Registries mit Vorsicht genießen
Registries wie der Docker Hub sind beliebte Quellen für alle möglichen Container-Images – dort wurden und werden viele bahnbrechende Ideen getestet und entwickelt. Allerdings sollten gerade Unternehmen diese öffentlich zugänglichen Sammlungen mit Open-Source-Software mit Vorsicht verwenden, denn das Qualitätsspektrum ist breit. Neben hochprofessionellen Images von Softwareherstellern gibt es auch fragwürdige Pakete, die besser unbeachtet bleiben. Eine private Image-Registry, die Mitarbeiter mit Expertenwissen auf dem Gebiet kuratieren, ist eine bessere Alternative zur Verwendung von Images aus öffentlichen Quellen.
„Das Management der Container-Technologie stellt Administratoren oft vor neue Herausforderungen“, betont Oliver Weise, Principal Software Engineer bei Consol. „Sie ergeben sich überwiegend aus den speziellen Eigenarten des Betriebs der Container-Technologie. Beim Aufbau von Container-Plattformen und ihrer Verwaltung sollten Unternehmen sich daher an etablierten Best Practices orientieren. So können sie von den Praxiserfahrungen anderer Plattform-Teams profitieren.“
Die Consol Consulting & Solutions Software GmbH mit Hauptsitz in München unterstützt Unternehmen mit passgenauen IT-Lösungen durch den gesamten Software-Lifecyle. High-End-IT-Beratung, agile Software-Entwicklung sowie Betrieb und Support sind die Eckpfeiler des Portfolios. Dazu zählen Open Source-Projekte wie Quarkus, OpenShift oder Tekton. Zudem bietet das Unternehme mit Consol CM eine Softwareplattform zur Digitalisierung von Geschäftsprozessen. (sg)
Lesen Sie auch: CI/CD-Pipelines: 5 Best Practices für mehr Effizienz bei der Code-Erstellung
Teilen Sie die Meldung „Container-Technologie: In 5 Schritten das Container-Management optimieren“ mit Ihren Kontakten:
Zugehörige Themen:
Cloud Computing (PaaS / IaaS / SaaS), Container-Technologie, DevOps, IT-Infrastruktur, Kubernetes, Softwareentwicklung