Anzeige
Anzeige
Ratgeber
Artikel merken

Was Unternehmen beim produktiven Einsatz beachten müssen: Live gehen mit Containern

Container-Technologien gelten als IT-Infrastruktur der Zukunft. Allerdings schrecken viele Unternehmen bislang davor zurück, Container in der Produktion zu betreiben. So klappt’s.

7 Min. Lesezeit
Anzeige
Anzeige

(Grafik: flaticon / freepik)

In Zeiten, in denen sich die Digitalisierung beschleunigt und die Datenmengen immer größer werden, entwickeln sich Schnelligkeit, Flexibilität und Skalierbarkeit der eigenen IT-Infrastruktur zu einem Wettbewerbsfaktor. Deswegen setzen Vorreiterunternehmen wie Google, Amazon und Twitter schon seit einigen Jahren auf Container-Technologien und Cloud-Native-Anwendungen.

Anzeige
Anzeige

Nachdem sich Container anfangs vor allem innerhalb der Entwickler-Community großer Beliebtheit erfreuten, ist der Hype inzwischen auch in den Unternehmen angekommen. Laut einer Studie von O’Reilly setzten 2015 bereits 65 Prozent der befragten Organisationen Container ein, 80 Prozent aller anderen wollen sie in Zukunft nutzen. Dabei sammeln die Unternehmen derzeit vor allem Erfahrung in der Entwicklung und im Testing, vor dem Einsatz in der Produktion scheut sich jedoch der Großteil. Lediglich jedes dritte Unternehmen gibt an, Container auch live zu verwenden.

Das ist schade – denn damit bleibt das größte Potenzial dieser Technologie bislang weitgehend ungenutzt. Container entfalten nur dann ihre Kraft, wenn sie entlang des gesamten Anwendungs-Prozesses zum Einsatz kommen. Erst wenn Anwendungen auf Microservices heruntergebrochen werden und diese sich wiederum in viele Container auf verschiedenen Hosts unterteilen, entsteht eine völlig neuartige Infrastruktur, die der traditionellen Architektur in vielerlei Hinsicht überlegen ist.

Anzeige
Anzeige

Container brechen mit traditioneller IT-Infrastruktur

Eine zentrale Herausforderung in vielen Unternehmen beim Live-Einsatz ist: zu verstehen und zu verinnerlichen, dass der Einsatz von Containern entlang des gesamten Anwendungs-Prozesses mit dem traditionellen Verständnis bricht, wie IT-Infrastrukturen aufgebaut sind und funktionieren. Anwendungen und Microservices rücken in den Mittelpunkt, der einzelne Server verliert an Bedeutung und es wird de facto ein dezentrales und höchstgranulares Multi-Host-System geschaffen.

Anzeige
Anzeige

Auf der einen Seite ist dieses System flexibel, schnell und höchstskalierbar und eröffnet damit unzählige neue Möglichkeiten. Auf der anderen Seite bringt es aber auch eine nie dagewesene Komplexität und viele neue Herausforderungen mit sich. Deswegen lässt sich die Umstellung auf eine containerisierte Architektur in keinster Weise mit der Einführung eines neuen Entwicklungstools vergleichen, sondern muss in den Unternehmen auf allen Ebenen als tiefgreifender Transformationsprozess begriffen werden. Das erfordert einen umfasssenden Paradigmen-Wechsel und kulturellen Wandel. In diesem Bewusstsein gilt es, die einzelnen Herausforderungen schrittweise und individuell anzugehen.

Der ursprünglich von Google entwickelte Container-Cluster-Manager Kubernetes fasst Container zu logischen Einheiten zusammen, um die Verwaltung und Übersicht zu vereinfachen. (Screenshot: Kubernetes)

Kopfzerbrechen bereiten Unternehmen beim Live-Betrieb von Containern vor allem das Monitoring, die Orchestrierung und Automatisierung sowie die Wahl des richtigen Toolings. All diese Bedenken sind berechtigt und erfordern in der Tat Lösungen und Ansätze, die nicht trivial sind. Was Unternehmen beachten sollten:

Anzeige
Anzeige

Monitoring: Nur nicht den Überblick verlieren

Lange Zeit beschränkte sich Monitoring vor allem darauf, die Ausfallszeiten von Servern zu minimieren, die CPU-Auslastung und die zugeordneten Speicher zu überwachen sowie Engstellen im Netzwerk und bei den I/O-Operationen im Auge zu behalten. In einer containerisierten Multi-Host-Architektur greift diese Herangehensweise nicht länger. Die Anzahl der zu überwachenden Elemente steigt drastisch an, wenn Anwendungen auf Hunderte von Microservices und Container verteilt werden. Klassische Ansätze sind zudem aufgrund der enormen Menge an Daten und Messpunkten zum Scheitern verurteilt. Um dennoch verlässliche Aussagen über die Performance von Anwendungen zu treffen, müssen Unternehmen neue Methoden und Prozesse entwickeln. Zentral sind dabei folgende Aspekte:

1. Die temporäre Eigenschaft von Containern

Traditionell sind Anwendungen stabile Instanzen, die auf einem bestimmten Host laufen und bei Updates und Fehlermeldungen neu gestartet werden. Das ist weder besonders flexibel noch effizient, dafür aber übersichtlich und einfach zu überwachen. Container hingegen sind darauf ausgelegt, sich automatisch auf einem anderen Host zu replizieren, sobald sich Konfigurationen ändern oder Fehler auftreten. Diese temporäre Eigenschaft trägt maßgeblich zur Flexibilität und Geschwindigkeit von Containern bei, erschwert allerdings das Monitoring erheblich.

So ist es beispielsweise nicht immer möglich, einen eingetretenen Fehler im Container selbst nachzuvollziehen, da dieser eventuell bereits durch einen neuen ersetzt wurde und nicht länger existiert. Daher müssen IT-Verantwortliche etablierte Monitoring-Prozesse nach und nach durch neue Herangehensweisen ersetzen. Ein vielverfolgter Ansatz besteht darin, nicht mehr jeden einzelnen Fehler zu überprüfen, sondern wiederkehrende Muster und Schemata zu identifizieren, um anschließend Vorhersagen für die Zukunft abzuleiten. Ziel dieses antizipativen Ansatzes ist es, frühzeitige Eingriffe zu ermöglichen, ohne dass das System eine Unterbrechung erfährt. Ergänzend dazu müssen Tasks definiert werden, die im Fehlerfall automatisch agieren.

Anzeige
Anzeige

2. Explosionsartige Zunahme an Objekten, Services und Kennzahlen

Eine weitere Herausforderung beim Monitoring einer containerisierten Architektur liegt in der schieren Anzahl der zu überwachenden Elemente und der daraus entstehenden Datenflut. Hinzu kommt, dass die meisten Kennzahlen ohne weiteren Kontext völlig nutzlos sind. Aus ihrer traditionellen Sichtweise heraus tendieren viele Unternehmen dazu, möglichst viele Messpunkte miteinander zu korrelieren. Das birgt allerdings das Risiko, ein überdimensioniertes, gleichzeitig aber wenig aussagekräftiges Monitoring-System zu entwickeln. Im Allgemeinen ist es wesentlich zielführender, zunächst die tatsächlich relevanten Informationen zu identifizieren, um dann im Anschluss neue Messwerte und Methoden festzulegen. Dabei hängt die Art der benötigten Information stark von der jeweiligen Applikation ab und muss deswegen auch anwendungsspezifisch definiert werden. So bietet sich für Webapplikationen beispielsweise Traffic als guter Anhaltspunkt an.

3. Anwendungen und Microservices im Mittelpunkt

Aufgrund ihrer temporären Eigenschaft und ihrer großen Anzahl ist es nicht sinnvoll, den Zustand und die Performance einzelner Container zu überwachen. Das Monitoring sollte sich daher weg von den individuellen Komponenten hin zu einem ganzheitlichen Monitoring auf Ebene der Container-Cluster, Applikationen und Microservices bewegen. Um dorthin zu gelangen, müssen IT-Abteilungen durch Beobachtung schrittweise lernen, die Abhängigkeit zwischen den einzelnen Komponenten zu verstehen und verlässliche Aussagen über das Verhalten von Anwendungen und Microservices zu treffen.

4. Stärkere Integration von Entwicklung und Operations

Lange war Monitoring eine reine Operations-Aufgabe und für die Entwicklung von nachgeordnetem Interesse. In einem containerisierten System verschiebt sich der Fokus jedoch weg von der physischen Infrastruktur hin zu den Anwendungen und Services. Aus diesem Grund braucht es für ein aussagekräftiges Monitoring neben der Operations- auch immer stärker die Entwicklungsperspektive. Hier sind IT-Teams gefordert, integrierte und ganzheitliche Ansätze zu entwickeln und das vorhandene Tooling der Operations-Seite sinnvoll mit dem neuen anwendungszentrierten Tooling zu verknüpfen.

Anzeige
Anzeige

Orchestrierung und Automatisierung: Managen und verwalten

Wie man es auch dreht und wendet – tausende Container zu automatisieren und zu orchestrieren, ist kein manuell leistbares Unterfangen. Deswegen benötigen Unternehmen ein Tooling, das zentrale Aspekte des Anwendungsmanagements übernimmt – vom initialen Scheduling und Deployment bis hin zu Steady-State-Aktivitäten wie Updates oder Monitoring. Inzwischen gibt es unzählige Lösungen auf dem Markt, die es Anwendern erlauben, Container in Clustern zusammenzufassen und darüber zu verwalten. Unabhängig von der Wahl des Toolings ist es wichtig, bei der Automatisierung und Orchestrierung folgende Aspekte und Funktionen zu adressieren:

1. Konfigurierung

Für die Automatisierung von Containern ist es essenziell, dass Anwendungs-Konfigurationen wiederholt eingesetzt werden können und dabei auf dem Zielsystem immer gleiche Resultate produzieren. Deswegen muss das Tooling eine Möglichkeit bieten, einen Blueprint für den Workflow und die Konfigurationen einer Anwendung in einem Standard-Schema zu definieren. Dadurch kann dieselbe Anwendung ohne großen Aufwand in unterschiedlichen Umgebungen ­­­­­­­­­­­­­­­­­­­­­– Development, Staging oder Produktion – eingesetzt und die Konfiguration einfach angepasst werden.

Durch die Erstellung von Machine Images erleichert Packer einheitliche Grundkonfigurationen auf verschiedenen Plattformen. (Screenshot: Packer)

2. Scheduling

Beim Scheduling geht es darum, die Platzierung eines Containers zu regeln und diesen dann zu starten. Primäres Ziel dabei ist, das Cluster stets bestmöglich auszulasten. Allerdings eignet sich nicht jeder Host für jeden Container. Bei Master- und Slave-Datenbanken beispielsweise werden Master- und Slave-Instanz nahezu in Echtzeit synchronisiert, damit der Slave einspringen kann, wenn der Master nicht verfügbar ist. Master- und Slave-Container sollten also nicht auf dem gleichen Host laufen, da dies der Zielsetzung einer solchen Architektur widerspricht. Aus diesem Grund müssen Regeln und Einschränkungen in Bezug auf Host-Auswahl, Performance und Verfügbarkeit definiert und berücksichtigt werden können.

Anzeige
Anzeige

3. Container Discovery

In einem verteilten System aus Containern, die auf zahlreichen Hosts laufen, ist eine Container-Discovery-Funktion unerlässlich. Denn nur, wenn Container in der Lage sind, die richtige IP-Adresse eines anderen Containers zu ermitteln, können beide Instanzen miteinander kommunizieren. Service-Discovery-Tools ermöglichen Containern, vollautomatisch herauszufinden, wo sich andere Container befinden. Sie erhalten Informationen über ihre Verbindung mit anderen Instanzen und können sich selbstständig registrieren.

Tooling: Die Qual der Wahl

Für die Orchestrierung und Automatisierung von Containern gibt es eine Vielzahl von Plattformen – wobei derzeit vor allem Kubernetes, Docker Swarm und Mesos von sich reden machen. Das macht die Wahl des richtigen Toolings zu keiner ganz einfachen Entscheidung. Trotzdem sollten IT-Abteilungen sich davon nicht einschüchtern lassen.

Insgesamt ist davon auszugehen, dass viele Tools langfristig integrierbar werden. Das ermöglicht Unternehmen, ein System nach dem Baukasten-Prinzip aufzubauen, das den eigenen Ansprüchen am besten entspricht. Einen One-Size-Fits-All-Ansatz gibt es dabei nicht und der Blick auf andere Lösungen kann trügerisch sein. Deswegen ist es für die Auswahl des Orchestrierungs-Toolings wichtig, das Augenmerk vor allem auch nach innen zu richten: Welche Ansprüche haben verschiedene IT-Bereiche? Wie integriere ich Prozesse und Tools von Entwicklung und Operations? An welcher Schnittstelle sollte die Orchestrierung zusammenlaufen? Und wann brauche ich wo welche Mechanismen?

Anzeige
Anzeige

Fazit

Um Container produktiv einzusetzen, ist in erster Linie ein komplett neues Verständnis notwendig, wie IT-Infrastrukturen aufgebaut sind und funktionieren. Es ist nachzuvollziehen, dass viele Unternehmen vor den Herausforderungen, die sich aus dem Einsatz von Containern entlang des gesamten Anwendungs-Prozesses ergeben, zurückschrecken. Doch gerade weil dieser tiefgreifende Transformationsprozess viel Zeit und Ressourcen in Anspruch nimmt, ist es wichtig, dass sich IT-Verantwortliche intensiv damit befassen. Ganz gleich, ob es um das Monitoring, die Orchestrierung oder das Tooling in einer containerisierten Architektur geht – Unternehmen sind gut darin beraten, zu experimentieren, Erfahrungen zu sammeln und Schritt für Schritt ein System aufzubauen, das auf die eigenen Ansprüche und Strukturen zugeschnitten ist – je eher, desto besser. Denn Container und Cloud Native-Anwendungen gelten nicht zu Unrecht als Pendant der IT zur Industriellen Revolution – bei der ja bekannterweise die Experimentierfreudigen und nicht die Zauderer zu den Gewinnern gehörten.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige