Monat: Juni 2019

Updates KW26

In dem Update-Post für die Kalenderwoche 21 hatte ich bereits angekündigt, dass einige größere Änderungen in Vorbereitung sind. Eine solche nährt sich dem Ende, und zwar die Umstellung der Reseller-Abrechnung.

Die Abrechnung von Reseller-Leistungen wird nämlich vollständig von einem „handelsüblichen“ Paket-System hin zu einer Cloud-Abrechnung umgestellt, wo nur die von den Kunden des Resellers belegten Ressourcen bezahlt werden. Das ist ein Novum im Webhosting-Reseller-Bereich. Das System ist nicht nur besonders fair, es nimmt auch den Resellern, Agenturen und Freelancern, die unser Reseller-System nutzen, gedankliche Arbeit ab. Die Erfahrung zeigt, dass teilweise sehr viel Gedanken in die Auswahl eines Reseller-Tarifs gesteckt wird, was mit einem Metered Billing im Sinne von Cloud vollständig verschwindet. So bekommen unsere Reseller einen freien Kopf zum Entwickeln ihres Geschäfts ohne sich vorher viel Gedanken über die Abrechnung machen zu müssen. Diese Änderung haben wir nun vollständig umgesetzt, aber noch nicht live geschaltet. Die erste solche Abrechnung werden wir voraussichtlich zum 1.8. durchführen, alle Reseller werden aber darüber noch informiert. Nach unseren Berechnungen wird es für jeden Reseller günstiger, es gibt keinen Reseller, der mehr zahlen wird.

Daneben gab es noch eine Reihe anderer, erwähnenswerter Änderungen:

Verwaltung & API:

  • Verbesserung: versende keine Domain-Ablauf-Erinnerungen für Inklusiv-Domains von Resellern
  • Verbesserung: für die API-Keys gibt es nun 3 Rollen für die Verwaltung von Domains
  • Verbesserung: sende als Standard-Ausgabe-Format JSON anstatt HTML, wenn ein API-Key übergeben wird
  • Bugfix: behebe einen 500 Internal Server Error beim Löschen eines DNS-Records, wenn kein HTTP_REFERER gesendet wird
  • Bugfix: behebe einen 500 Internal Server Error, wenn beim Ändern eines DNS-Records per API ungültige Daten für den Record übergeben werden
  • Bugfix: behebe einen Fehler beim Aktualisieren von Ablaufdatum und Kreditkartennummer für das Frontend, wenn eine Kreditkarte automatisch vom Prozessor aktualisiert wird
  • Bugfix: behebe einen Fehler beim E-Mail-Versand, wenn eine Kreditkarte automatisch vom Prozessor aktualisiert wird, ohne dass die Karten-Typ (Visa, MC, …) gespeichert ist

Webhosting:

  • Verbesserung: aktualisiere die restic-Version des Backup-Systems
  • Bugfix: beim Restore von Webspace-Backups auf den Webspace wurden Pfade falsch in den temporären Ordner entpackt und dann nicht auf den Webspace kopiert, das Problem ist gelöst
  • Bugfix: bei der Anzeige der Dateien in einem Backup wurde ein Verzeichnis mit dem Benutzernamen als oberste Ebene angezeigt, das Problem ist nun gelöst

Die Änderungen an der Reseller-Abrechnung warten nun noch auf einen weiteren Satz Verbesserungen an der Reseller-Verwaltung und gehen dann in einem größeren Paket online. Ich bin auf das Feedback gespannt, sollten Fragen dazu oder zu anderen Themen offen sein stehe ich dafür jederzeit gerne unter support@lima-city.de zur Verfügung!

Ich wünsche ein schönes Wochenende!

Updates KW24

Eine neue Woche, neue Probleme Chancen, etwas zu verbessern. Am letzten Samstag hatten wir einen Ausfall eines Webhosting-Servers, bei dem die /tmp-Partition des Webhosting-Namespace vollgelaufen ist, PHP-FPM hat den Start verweigert. Dazu wurde am Sonntag ein Postmortem auf der Status-Seite veröffentlicht.

Die Änderungen, die wir daraufhin vorgenommen haben, kommen wie immer allen Kunden zugute, auch denen, die nicht von dem Ausfall betroffen waren.

Daneben gab es noch weitere Änderungen. Wesentlich verbessert wurden die Shell-Cronjobs. Der PATH wird nun automatisch so angepasst, dass „php“ immer auf die in der Verwaltung ausgewählte PHP-Version zeigt (von z.B. cd wordpress && php wp-cron.php). PHP ist zudem auch – meine Oma würde sagen von hinten durch die Brust in’s Auge – ausführbar, wenn ein Cronjob ein PHP-Script ausführt, was dann wiederum per shell_exec o.ä. wiederum php ausführt. Das scheiterte vorher an einer AppArmor-Regel. Zudem ist als Standard-Shell nun nicht mehr /bin/sh sondern /bin/bash eingestellt.

Auch in der Webserver-Umgebung unter PHP-FPM wird der PATH nun wie unter der Cronjob-Umgebung so eingestellt, dass das php-Binary immer auf die Version der Web-Version zeigt, wenn der absolute Pfad nicht angegeben ist. Das sind kleine Änderungen, aber gerade bei den Cronjobs sind damit einige Problemchen, die häufiger in Support-Tickets auftauchten, behoben und die Cronjobs sind viel einfacher zu „bedienen“.

Die meisten sonstigen Änderungen sind am Admin-Panel, einem internen Dienst und Management-Scripts passiert, aber es gibt noch ein paar weitere erwähnenswerte Änderungen, die wir durchgeführt haben:

Verwaltung:

  • Bugfix: im Domain-Check wurden bei Domains, welche nicht registrierbar sind und die deshalb keinen Preis haben, teilweise ein „500 Internal Server Error“ erzeugt, nun wird ein „Fehler bei der Prüfung“ angezeigt
  • Bugfix: kaputte Symlinks haben dazu geführt, dass im Datei-Browser beim Erstellen von Subdomains und Webseiten ein Fehler angezeigt wurde, das Problem ist nun gelöst

Webhosting:

  • Verbesserung: setze PATH für Cronjobs so, dass das bin-Verzeichnis der gewählten PHP-Version immer der erste Pfad mit php-Kommando im PATH ist
  • Verbesserung: setze SHELL für Cronjobs auf /bin/bash
  • Verbesserung: setze PATH für PHP-FPM so, dass das bin-Verzeichnis der gewählten PHP-Version immer der erste Pfad mit php-Kommando
    im PATH ist
  • Verbesserung: erlaube max. 150.000 temporäre Dateien unter /tmp pro Kunde, bevor eine Bereinigung durchgeführt wird, damit nicht alle Inodes aufgebraucht werden
  • Bugfix: behebe ein Problem, bei dem an das Zeilenende von Crontab-Einträgen ein Sonderzeichen geschrieben wurde

Das war’s dann für diese Woche. Das Wochenende wird nicht weniger warm, also wünsche ich ein schönes Wochenende!

Updates KW23

Ich schreibe heute den Update-Blogpost schon am Mittwoch und lasse WordPress die Veröffentlichung am Freitag übernehmen, damit hier niemand aus dem Tritt kommt 😉

Folgendes hat sich in den letzten Tagen an unserer Verwaltung und unserem Webhosting getan:

Verwaltung:

  • Verbesserung: versende eine Zusammenfassung per E-Mail für am Vortag veränderte Provisionen aus dem Partnerprogramm
  • Verbesserung: beim Aufruf der Login-Seite wird – wenn bereits eingeloggt – nun direkt auf die Verwaltung weitergeleitet, anstatt eine Warnung über dem Login-Formular anzuzeigen
  • Verbesserung: aktualisiere automatisch bei uns hinterlegte Kreditkarten, sofern die Bank oder der Kreditkartenprozessor eine Folge-Karte ausstellt und darüber eine Händler-Information herausgibt
  • Verbesserung: sofern ein eingehender Domain-Transfer aufgrund eines Transfer-Lock fehlschlägt kann dieser über die Verwaltung erneut ausgelöst werden
  • Verbesserung: die DNS-Records-Tabelle ist nun responsive
  • Verbesserung: bei der Buchung eines Webhosting-Pakets
    nach einem vorherigen Test wird zusätzlich zum Webspace auch der E-Mail- und MySQL-Speicher auf der Buchungsseite angezeigt
  • Verbesserung: verbessere den Kontrast von „kopieren“-Buttons (für Passwörter etc.) in der Verwaltung
  • Verbesserung/Bugfix: auf der Startseite wird nun ein kürzerer Timeout beim Abrufen der Blog-Posts verwendet, der sonst bei Nichterreichbarkeit des Blogs zu Nichterreichbarkeit von www.lima-city.de führt
  • Bugfix: löse ein Problem, bei dem unter bestimmten Umständen Domains, welche Inklusiv-Domains eines Webhosting-Pakets sind, kostenpflichtig über die automatische Verlängerung abgerechnet
    wurden
  • Bugfix: löse ein Problem, bei dem für Domains, welche zu anderen Anbietern umgezogen wurden, teilweise Restores bestellt werden konnten
  • Bugfix: prüfe Domains, welche bei uns registriert sind, auch dann auf externe Mail-Server in den MX-Records, wenn fremde DNS-Server eingestellt sind
  • Bugfix: löse ein Problem beim AuthInfo-Versand für bestimmte .eu- und .de-Domains
  • Bugfix: löse ein Problem beim Server-Umzug von Kunden, die per Reseller-Panel von einem Agentur-Account erstellt wurden und ein Webhosting-Paket per Bestellsystem buchen
  • Bugfix: korrigiere einen veralteten Link zum Formular für die AuthInfo-Eingabe bei eingehenden Domain-Transfers
  • Bugfix: bei der Buchung eines Webhosting-Pakets nach einem Test wurde der falsche Speicherplatz angezeigt
  • Bugfix: Subdomains wurden auf der Seite „Websites“ nach dem erfolgreichen Löschen nicht aus der Liste entfernt

Webhosting:

  • Verbesserung: die PHP-FPM-Master haben nun ein globales Prozess-Maximum (process.max), um Situationen zu vermeiden, wo unter Memory-Pressure eine kurze, kräftige Lastspitze auftritt und das System in eine „Abwärtsspirale“ gerät (viele Prozesse spawnen, System beginnt zu swappen, normale Load kann nicht mehr bewältigt werden, noch mehr Prozesse spawnen, Situation außer Kontrolle)
  • Verbesserung: die Lebenszeit von Sessions wurde von 7 Tagen auf 48 Stunden ab der letzten Änderung verkürzt, löst ein Problem bei dem riesige Mengen von Sessions eines Kunden alle Inodes auf dem tmpfs der Sessions aufbrauchen

Die Änderung vom PHP-FPM-Master hat sich sogar schon einmal bewährt. Eine solche Situation tritt manchmal auf den älteren Webhosting-Servern (ehem. Premium-Paket, weniger RAM verbaut, nur SSD cached) auf, wenn der Backup-Prozess läuft und das System unter mehr Memory- und IO-Pressure steht. Ein kleines IO-Blocking führt dann schnell zu einer Spirale von Forken von mehr Prozessen und Swappen um den Memory Pressure auszugleichen und das System steht in wenigen Minuten komplett still. Auch unser monit-Script, das die PHP-FPM-Prozesse neu startet, hilft dann teilweise nicht mehr, vor ein paar Wochen musste sogar einmal ein Host hart resettet werden. Das Problem trat nun einmal erneut auf, diesmal hat sich die Situation aber von alleine gefangen. So muss das! 🙂

Das Wetter sieht gut aus, also wünsche ich ein schönes, sonniges, verlängertes Wochenende!