Open Source im professionellen Einsatz
Linux-Magazin 06/2016
© Brent Olson, 123RF

© Brent Olson, 123RF

Skalieren mit Containern

Optimal beladen

David Strauss' Firma Pantheon liefert Contentmanagement-Systeme auf Basis von Drupal und Wordpress massenhaft aus. Container und entsprechende Kernelfunktionen helfen ihm, die Sites auf Servern in großer Dichte zu betreiben. Den Gründen für und seine Erfahrungen mit dem Setup widmet sich der Artikel.

594

Mit Hilfe unserer Plattform Pantheon [1] bauen, testen und veröffentlichen Entwickler Webseiten auf Basis von Drupal [2] und Wordpress [3]. Heute verarbeitet die Plattform Milliarden von Anfragen pro Monat, die Anfänge im Jahr 2010 waren aber deutlich bescheidener.

Die erste Plattform nutzte pro Webseite je eine einzelne virtuelle Maschine, bot aber immerhin als erste im Markt vorgefertigte Entwicklungs-, Test- und Live-Umgebungen mit integrierten Deployment-Tools an. Zwar ließ sich eine Webseite auf diesem Wege schnell veröffentlichen, aber schon da zeichneten sich die Grenzen ab. Einzelne VMs lassen sich weder herunterskalieren, um kleine Seiten kostensparend zu betreiben, noch heraufskalieren, um sie hochverfügbar und fit für viel Datenverkehr zu machen.

Also bauten wir Pantheon 2011 um und nutzten damals so genannte Bindings, die 2016 als Container bekannt sind. Beim Umbau verfolgten wir ein paar Ziele:

  • Freie Entwicklungstools für die Programmierer,
  • günstige Angebote für kleine Sites,
  • Angebote für Sites mit viel Traffic,
  • all das auf einer einheitlichen Plattform mit konsistenter Performance, Entwicklertools und Projektmanagement-Möglichkeiten.

Die Konkurrenz bedachte zu diesem Zeitpunkt im Höchstfall drei der vier Merkmale. Meist bot sie kleine und große Sites an, lieferte diese aber auf radikal unterschiedlicher Infrastruktur aus.

Das führte nicht selten zu Überraschungen beim Launch und bei größeren Updates. Der Grund: Die Programmierer entwickelten die Seite auf einem einzelnen Server, anschließend landete sie jedoch auf dem Produktionsserver in einer geclusterten Infrastruktur. Beim Bauen und Testen der Site konnten die Entwickler die Performance daher nicht zuverlässig abschätzen.

Wir suchten also erstens nach einem Weg, PHP- und MySQL-/Maria-DB-Laufzeitumgebungen mandantenfähig anzubieten, ohne in die Ressourcenprobleme beim Shared Hosting zu laufen. Zweitens wollten wir den eingehenden Traffic für Tausende Seiten ausbalancieren, ohne ständig die Load Balancer neu einzurichten, da diese beim Rekonfigurieren kurz ihre Arbeit unterbrechen. Drittens benötigten wir ein Dateisystem für Drupal und Wordpress, mit dem sich Sites kostengünstig entwickeln lassen, das aber aus Gründen der Skalierung sowie HA mehrere Webserver-Clients unterstützt.

Dichteprobleme

Dichte (Density) bedeutet in diesem Zusammenhang möglichst das optimale Ausnutzen vorhandener Hardware mit Hilfe von Software – für einen effizienten Rechnerbetrieb ein unerlässliches Ziel. Häufig führte Dichte aber zu Problemen mit der Sicherheit und der Performance. Die schlimmsten Security-Probleme, mit denen wir konfrontiert waren, entstanden über lange Zeit, wenn sich mehrere Kunden Runtime-Prozesse teilten. Mittlerweile gibt es viele Alternativen wie PHP-FPM [4], die das verhindern. Eine weitere große Herausforderung lag darin, eine konsistente Performance zu erreichen. Sie ließ sich erst mit Technologien überwinden, die der Artikel im folgenden beschreibt.

Die erste Aufgabe lautete, den Systemressourcen Luft zu geben. Effizienz erfordert es zwar, Seiten in großer Dichte zu betreiben, doch das blieb erfolglos, wenn entweder zu viele Sites auf dem Server liefen oder wenige sehr gut besuchte. Traditionell musste ein Admin also die Zuverlässigkeit zugunsten der Effizienz senken oder den umgekehrten Weg gehen. Als Hürde für ein Rebalancing erwies sich dabei, dass es nicht möglich war, den Dateistatus zu migrieren, während die zugehörige Anwendung lief. Zudem brachten die Kunden selten DNS- oder IP-Konfigurationen mit, die es erlaubten, individuelle Sites umzusiedeln.

Kontrolle mit Cgroups

Selbst bei schnellem Rebalancing treten mitunter Zugriffsspitzen auf. Die Ressourcenisolierung war früher primitiv – zumindest, wenn Prozesse sich den Linux-Kernel teilten. Gewinner-orientierte Mechanismen wie »nice« oder »ionice« konnten Prozesse priorisieren, aber jene mit niedriger Priorität hungerten.

Cgroups (Control Groups, [5]) ermöglichen heute eine feingranulare Kontrolle. CPU-Shares helfen dabei, die Prozesse zu priorisieren, ohne andere auszuhungern. Mit Cgroups mildert Pantheon die drängensten Ressourcen-Engpässe ab.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Shotwell als Pantheon Photos geforkt

    Shotwell ist ein komfortabler Bildbetrachter für Linux, den die Firma Yorba entwickelt hat. Doch die kümmert sich inzwischen um ein anderes Projekt und hat daher einem Fork zugestimmt.

  • Elementary OS nach zwei Jahren fertiggestellt

    Elementary war ursprünglich ein Theme für Ubuntu. Seit 2011 haben die Entwickler daran gearbeitet, mit Elementary OS eine eigene Distribution mit Designanspruch auf die Beine zu stellen. Die nun fertiggestellte Version trägt den Codenamen "Luna".

  • Systemd-nspawn

    Ursprünglich als Tool für Systemd-Tester gedacht, mausert sich Systemd-nspawn zu einer eigenständigen Containerlösung. Bei Rkt von Core OS ist es bereits als Low-Level-Tool im Einsatz. Rkt-Entwickler Jonathan Boulle stellt Systemd-nspawn vor.

  • CaaS: Xen kooperiert mit Hyper

    Viele betrachten Container ja ohnehin als Hype-Thema. Da ist es nur folgerichtig, wenn Xen eine Partnerschaft mit einem Anbieter namens Hyper eingeht. Der liefert eine Hypervisor-agnostische Docker-basierte CaaS-Lösung.

  • Aktuelle Container

    Cgroups und Namespaces sind unter Linux das Nonplusultra, wenn es um Container-Technologien geht. Deshalb fußen auch gleich mehrere ganz neue Ansätze auf dieser Technik. Und alle versprechen eine Fülle nie gesehener Vorteile. Was ist dran?

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.