Direkt zum Inhalt
04. Juli 2017

Großes DRD-Update verfügbar: Automatische Website-Updates und eine Menge anderer Verbesserungen

by Jürgen Haas

  

Das heutige neue Release von Drupal Remote Dashboard (DRD) führt eine große neue Funktion ein, die es jedem ermöglicht, Drupal-Site-Updates in einem geschützten und automatisierten Rahmen zu verwalten, ohne dass ein Dritter in den Prozess involviert werden muss. Gerade rechtzeitig zum Unabhängigkeitstag, dem 4. Juli 2017. Für Drupal-Site-Besitzer bedeutet dies Unabhängigkeit von externen Dienstleistern, ohne Kompromisse bei der Servicequalität oder Reaktionszeit einzugehen.

DRD Logo

In den letzten Monaten haben wir sehr viel Zeit darauf verwendet, nicht nur an der Einführung dieser wichtigen neuen Funktion zu arbeiten, die wir von Anfang an im Hinterkopf hatten. Wir haben auch eine Reihe anderer neuer Funktionen, Verbesserungen, Bereinigungen und Fehlerbehebungen eingeführt. Dieser Blog-Beitrag gibt Ihnen einen Überblick darüber, was Sie bekommen, wenn Sie die neue Version von drupal.org herunterladen und auf einer einfachen Drupal 8-Seite Ihrer Wahl testen.

Bevor wir ins Detail gehen, möchte ich betonen, dass das Dashboard nur für Drupal 8 geeignet ist - die entfernten Sites, die Sie verwalten, überwachen und jetzt automatisch aktualisieren können, werden jedoch für alle 3 wichtigen Drupal-Versionen unterstützt, angefangen bei 6 bis 7 und natürlich 8.

Was kommt mit DRD 3.4

Übersicht

  • Neue Funktionen
    1. Framework zum Aktualisieren eines Drupal-Kerns, das in jeden bestehenden Workflow passt
    2. Link zum Starten einer neuen Remote-Sitzung im Browser
    3. Schreiben eines Logs pro Domain für alle durchgeführten Aktionen
    4. Download von Dateien oder Datenbank-Dumps von entfernten Standorten
    5. Neue Aktionen zur Änderung von Domäneneigenschaften im Dashboard
  • Verbesserungen
    1. Kein Core-Patching mehr erforderlich
    2. Projektliste ist viel schneller als vorher
    3. Reduzierung von Abhängigkeiten
    4. Bessere Routing-Schemata
    5. Bessere SSH-Unterstützung
    6. Codebereinigung
    7. Bessere Konsolenausgabe für CLIs (Drush und DC)
  • Fehlerbehebungen

Im Detail

DRD Screen 3

Framework aktualisieren

Was nützt es, wenn Sie Ihre Drupal-Websites überwachen, um sich über verfügbare Updates zu informieren, egal ob diese sicherheitsrelevant sind oder nicht, und dann nicht in der Lage sind, diese neuen Versionen von Core, Modulen und Themes einfach auf Ihre entfernten Sites anzuwenden. DRD bietet Ihnen ab heute das Framework, um den Kreislauf zu schließen und diese Schleife zu schließen. Es bietet ein flexibles Framework zur Durchführung von Site-Updates mit einem Plugin-basierten und daher erweiterbaren System, das sich in jeden bestehenden Workflow und jede Bereitstellungsmethode einfügt - oder Ihnen hilft, eine solche zu entwickeln, wenn noch keine vorhanden ist.

Die Funktionsweise - und ja, das ist viel zu komplex, um alle Details in einem Überblicksposting zu erklären - besteht darin, dass wir es in 6 Phasen unterteilt haben, die hochgradig konfigurierbar, anpassbar und erweiterbar sind. Die Phasen sind:

  1. Speicherung
    Wir müssen immer wissen, wo das Projekt zu finden ist, das aktualisiert werden soll. Hier geht es nicht um die Live-Site, da weiß DRD natürlich genau, wo das hingehört. Hier sind wir an dem Projekt interessiert, das irgendwo für Entwicklungszwecke existiert, und wenn es keins gibt, ist ein Plugin, das eine Kopie vom Produktionsserver holt, auch als eine der Optionen vorgesehen. Andere Möglichkeiten sind Git und eine statische lokale Kopie irgendwo im Dateisystem. Weitere Plugins zur Unterstützung weiterer VCS werden folgen, wenn sich der Bedarf zeigt.
  2. Build
    Wie sollen die Updates auf die Arbeitskopie angewendet werden, die wir in der vorherigen Phase zur Verfügung gestellt haben. DRD unterstützt derzeit composer, drush make oder das direkte Kopieren von Updates in das Drupal-Arbeitsverzeichnis.
  3. Prozess
    Was ist zu tun, wenn neuer Code in die Drupal-Codebasis eingefügt wurde? Das hängt von Ihren Drupal-Sites und den Bereitstellungsmethoden ab. Es kann sein, dass Sie Datenbank-Updates durchführen müssen, Cash-Flushs durchführen müssen, neue Konfigurationen exportieren müssen, Ihre Features synchronisieren müssen oder was auch immer, was auch immer Sie wollen. Als erstes Plugin unterstützt DRD den LakeDrops-Workflow für Drupal 8 und Sie sollten diesen als Blaupause betrachten, die Ihnen helfen kann, Ihr eigenes Prozess-Plugin zu schreiben.
  4. Test
    Sie wollen das Update testen, bevor Sie es auf Ihr Produktionssystem aufspielen? Eine tolle Idee. Diese Phase ist dafür da - aber um ehrlich zu sein, haben wir noch keines der Plugins fertiggestellt. Wir hoffen, dass wir einige Rückmeldungen aus der Community erhalten, damit wir ein besseres Verständnis dafür bekommen, wie dies am besten für die DRD-Benutzerbasis genutzt werden kann.
  5. Einführung
    In dieser fast abschließenden Phase geht es um die Frage, wie Sie Ihre aktualisierte Arbeitskopie auf Ihren Produktionsserver bringen. Nun, die meisten Deployment-Umgebungen sind heute wahrscheinlich Git-basiert und haben daher das Deployment bereits abgedeckt - unter diesen Umständen wird DRD nichts tun und Sie werden einfach Ihre bestehende Deployment-Umgebung weiter nutzen. DRD liefert jedoch den aktualisierten und getesteten Input, so dass Sie das Deployment sicher auslösen können, egal auf welchem Tool es basiert. Für diejenigen, die (noch) nicht über solche Tools verfügen oder nicht für jeden Kunden oder Standort, bietet diese Phase Plugins, die diese Aufgabe übernehmen können. Für den Moment haben wir ein rsync-Plugin eingebaut, das die Änderungen auf den Produktionsserver hochlädt. Aber natürlich sind wir daran interessiert, weitere Methoden kennenzulernen, die in Gebrauch sind, und wollen diese ebenfalls in zusätzliche Plugins einbinden.
  6. Finishing
    Die letzte Phase besteht darin, hinter uns aufzuräumen, so dass nichts zurückbleibt oder möglicherweise für Unbefugte sichtbar wird.

Alles, was in den oben genannten 6 Phasen passiert, wird detailliert protokolliert, und die DRD-Benutzeroberfläche bietet Ihnen eine neue Registerkarte, in der Sie alles, was passiert ist, überprüfen können. Natürlich wollen Sie dieses neue Kind nicht auf Ihrer Produktionsseite laufen lassen? Das würden wir auch nicht tun. Deshalb gibt es einen Trockenmodus, der alles vorübergehend in einer Arbeitskopie erledigt und die vorgelagerte Speicherung und Bereitstellung überspringt. Da die Arbeitskopie nicht abschließend bereinigt wird, erhalten Sie eine aktualisierte Version der Drupal-Website, die Sie überprüfen können. Sie können sich alle Änderungen und die Art und Weise, wie sie durchgeführt wurden, leicht ansehen. Wenn Ihnen das Ergebnis gefällt, lassen Sie das Ganze einfach noch einmal laufen, diesmal ohne die Option --dry-run.

Oh, Sie haben auch diese merkwürdigen Seiten, bei denen Sie ein ganz spezielles Skript brauchen, das an einem bestimmten Punkt des Prozesses ausgeführt werden muss? Und Sie glauben, dass Sie deshalb Ihren Aktualisierungsprozess nicht automatisieren können? Nun, hier ist ein weiterer Grund für Sie: Das Update-Framework von DRD ermöglicht es Ihnen, eine beliebige Anzahl zusätzlicher Skripte zu schreiben und diese an jedem beliebigen Punkt in den oben beschriebenen Prozess einzubinden. Unterstützte Sprachen für diese Skripte sind PHP, Bash, Python, Drush und Drupal Console.

Tja, der Himmel ist die Grenze. OK, wir haben noch einen weiten Weg vor uns, aber das Fundament ist solide und dynamisch zugleich. Mit der Hilfe der Community, entweder in Form von Ideen oder Beiträgen (Code, Dokumentation, Training, etc.) glauben wir fest daran, dass DRD Update Framework ein mächtiges und beliebtes Werkzeug im Drupalverse werden wird.

Entfernte Website als authentifizierter Benutzer öffnen

DRD Screen 1

Es war schon immer möglich, die Remote-Site mit einem einzigen Klick vom Dashboard aus zu öffnen. Wir sind jedoch häufig in eine Situation geraten, in der wir uns auch aus der Ferne authentifizieren mussten, was sich als unnötig erwies, zumal wir bereits von einem Ort kamen, an dem wir gut bekannt und berechtigt sind, diese Website mit vollem Zugriff zu verwalten. Es hat sich herausgestellt, dass es nicht nur bequem, sondern auch vertrauenswürdig ist, die Remote-Site zu öffnen und bereits als Benutzer 1 angemeldet zu sein. Sie finden nun ein neues Symbol neben dem Domain- oder Site-Namen in der Domain-Liste, das einen einmaligen Login-Link von der Remote-Site abruft und Sie dorthin weiterleitet, der den vollständigen Authentifizierungsprozess auf der Remote-Site durchläuft und Ihnen Admin-Zugriff gewährt.

Aktivitätsprotokollierung

DRD Screen 2

In einem belebten Dashboard ist viel los, und wir wollten sicherstellen, dass wir alles protokollieren, was vor sich geht. Anstatt unser eigenes Ding zu implementieren, nutzen wir die Watchdog-API von Drupal Core. Für jede Aktion, die auf einer Ihrer Domains ausgeführt wird, protokolliert DRD nun alles, was mit dieser Aktivität zusammenhängt, einschließlich der Antwort von den entfernten Sites. Wenn Sie außerdem das dblog-Modul auf Ihrer DRD-Hauptseite aktiviert haben, können Sie das Aktivitätsprotokoll direkt von der DRD-Benutzeroberfläche aus aufrufen, wenn Sie eine Ihrer Domaindetailseiten anzeigen. Die neue Registerkarte zeigt Ihnen die Details aus dem Dblog-System, jedoch gefiltert für die aktuelle Domain, die Sie betrachten.

Datenbank-Download von entfernten Standorten

Nun, wir brauchten diese Funktion für den oben beschriebenen Update-Workflow. Da sie aber bereits vorhanden war, haben wir sie auch als eigenständige Aktion verfügbar gemacht. Wenn die drd-database-Aktion mit einer der verfügbaren CLIs aufgerufen wird, erstellt die entfernte Site einen Dump ihrer eigenen Datenbank, verschlüsselt die Datei und stellt sie dem aufrufenden Dashboard zum Download zur Verfügung, das die Datenbank sofort abruft und in eine lokale Datei zur weiteren Verwendung entschlüsselt. Ich bin mir nicht sicher, welche Anwendungsfälle Ihnen einfallen, aber wir haben ein paar im Kopf, die praktisch sein könnten.

Eigenschaften von bestehenden Domains ändern

Das Design von DRD erlaubt es Ihnen, Drupal Core Entities für das Dashboard zu erstellen, aber die Domain Entities und ihre Details werden von entfernten Standorten gesammelt. Es macht keinen Sinn, Domain-Entitäten manuell im Dashboard zu erstellen, wenn wir an der Überwachung und Verwaltung echter Domains in einer entfernten Drupal-Core-Instanz interessiert sind. In der Praxis ändern sich die Dinge jedoch manchmal und einige dieser Änderungen können uns in eine Sackgasse geführt haben. Wenn z.B. ein Drupal Core nur eine einzige Domain hostet und sich, aus welchen Gründen auch immer, die URL dieser Domain ändert, hatte DRD keine Möglichkeit, diese Änderungen von der entfernten Site zu übernehmen. Sie war einfach nicht mehr zugänglich, bis wir die URL im Dashboard aktualisiert hatten. Für solche Situationen wurde diese neue Funktion relevant und wir haben sie für beide unterstützten CLIs implementiert.

Viele Verbesserungen und Fehlerbehebungen

Für alle Details zu den allgemeinen Verbesserungen und Fehlerkorrekturen sollte man das Changelog in der DRD-Codebasis konsultieren. Einige wichtige Punkte sind sicherlich die Reduzierung der Abhängigkeiten, die es uns auch ermöglichte, die Kernpatches loszuwerden, die nur wegen einiger dieser Abhängigkeiten benötigt wurden. Das haben wir erreicht, indem wir die Projektliste von Grund auf neu geschrieben haben, und jetzt ist sie noch leistungsfähiger - und viel schneller - als in jeder früheren Version von DRD.

Andere Verbesserungen sind ein logischeres Routing-System, das Ihnen immer einen sinnvollen Breadcrumb liefert, egal wo und wie tief Sie in DRD und seinen Entitäten und Protokollen navigieren. Apropos Logs: Wir haben auch die Ausgabe der Aktivitäten verbessert, wenn man DRD von der Kommandozeile aus mit Drush oder der Drupal Console benutzt.

 

Zu guter Letzt unterstützen wir jetzt SSH-Verbindungen zu entfernten Standorten, auch wenn das PHP-SSH2-Modul nicht verfügbar ist. Dies erweitert den Funktionsumfang für alle, auch für diejenigen, die Shared Hosting oder andere eingeschränkte Pläne nutzen. Eine große Runde von Codebereinigungen und Fehlerbehebungen macht 3.4 zum bisher größten Update von DRD, und wir hoffen auf viel Feedback, damit wir diese Plattform weiter verbessern und zum Schweizer Taschenmesser für jeden in Drupal machen können.

Tools

Neuen Kommentar hinzufügen

Klartext

  • Keine HTML-Tags erlaubt.
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.
CAPTCHA
Diese Sicherheitsfrage überprüft, ob Sie ein menschlicher Besucher sind und verhindert automatisches Spamming.