WordPress Updates automatisieren mit ASMP – Videointerview mit Alain Schlesser

Products mentioned
Aktuelles zum Application Server Management Protocol

Alain Schlesser ist Developer, Speaker auf zahlreichen WordCamps und hat sich unter anderem um die Core-Entwicklung von WordPress gekümmert. Auf dem CloudFest 2019 hat er eines seiner neuen Open-Source-Projekte vorgestellt – ASMP, das Application Server Management Protokoll. GoDaddy sprach mit ihm darüber, wie sich WordPress Updates mit ASMP automatisieren lassen.

GoDaddy: Auf dem diesjährigen CloudFest hast du ein neues Projekt vorgestellt: ASMP. Was ist das genau?

Alain: ASMP steht für Application Server Management Protocol. Die Grundidee ist folgende: Wir haben momentan sehr viele Applikationen, die in erster Linie nicht für Entwickler oder für Software-Engineerer ausgelegt sind, sondern von Endusern genutzt werden. Ein Enduser kann damit sehr leicht Content im Internet publizieren. WordPress ist da das prominenteste Beispiel mit seiner Mission: „Democratize Publishing“. Bei Democratize Publishing geht es darum, dass jeder, der etwas zu sagen hat, auch die technische Möglichkeit haben sollte, das zu tun. Das Problem ist, dass, wenn man etwas ins Internet stellt, damit auch eine große Verantwortung verbunden ist. Denn das kann sehr leicht ausgebeutet werden und als Waffe missbraucht werden. Zum Beispiel, wenn man das ferngesteuert nutzen, um Bot-Netze aufzubauen, um Denial-of-Service Attacken zu starten … oder was auch immer.

GoDaddy: Die Angreifbarkeit von Applikationen

Alain: Genau. WordPress versucht, den Spagat zu schaffen. Der Enduser soll nicht zu einer riesengroßen Gefahr werden, sondern ihm soll vieles abgenommen werden. WordPress kümmert sich darum, dass die Applikation so sicher wie möglich ist.

GoDaddy: Automatische Updates zum Beispiel

Alain: Ja, WordPress hat automatische Updates für den Core, für Plugins, für Themes, für Sprachen und so weiter. Jetzt ist es aber so, dass ein großer Teil der Angriffsfläche nicht auf Applikationsseite, sondern auf Serverseite ist. Und für die Serverseite sind eigentlich die Hosting-Unternehmen verantwortlich. Sie haben die technischen Möglichkeiten, Änderungen zu machen, zum Beispiel Updates einzuspielen.

Das Problem ist aber: Wer trägt eigentlich die Verantwortung, wenn dabei etwas schiefläuft? In der Regel hat der Hosting-Betreiber einen Vertrag mit dem Kunden. Der Hosting-Betreiber muss die Seite am Laufen halten. Er kann deshalb nicht das Einspielen von Updates forcieren, die eventuell die Seite zusammenbrechen lassen.

Der Kunde auf der anderen Seite kennt aber das Problem gar nicht. Er weiß nicht, dass die technischen Komponenten unbedingt geupdatet werden müssen. Das heißt: er macht sich keine Gedanken und wird auch nie von sich aus Kosten und Zeit investieren, um Updates einspielen zu lassen.

Deshalb dieses Protokoll. ASMP soll eine Brücke sein, zwischen dem Enduser auf Applikationsseite und demjenigen, der die Serverseite managet, sodass der User zum Beispiel nur einen Knopf drücken muss, um alles automatisch zu updaten. Das wird über das Protokoll an die Serverseite weitergeleitet und kann dann technisch – in welcher Form auch immer – umgesetzt werden. Aber es ist so, dass der User die Möglichkeit haben muss, diesen Knopf zu drücken. Der User hat die Verantwortung. Der User kann entscheiden, wann er das machen will. Der User kann zum Beispiel einem System wie WordPress sagen: Bitte mach das automatisch für mich, sodass die Verantwortlichkeit vom Hosting-Provider weggenommen wird. Die Hosting-Provider können sich dann um die technische Umsetzung kümmern. Wenn ein Update gemacht werden soll, dann sorgt der Hosting-Provider dafür, dass das dann so und so läuft, sodass auf der Ebene der Infrastruktur alles sauber und ordentlich gemacht wird.

GoDaddy: Das Protokoll definiert dann automatisch, welche Anforderungen an die Hosting-Umgebung bestehen. Und der Hoster kann dann entscheiden, wie das Ganze umgesetzt wird.

Alain: Ja, die Applikation setzt die Constraints, wie das genannt wird. Die Applikation sagt: Okay, ich brauche die Komponente in dem Versionsbereich und die Komponente in dem Versionsbereich. Das gibt sie dann weiter. Auf Serverseite wird dann geguckt: okay, was können wir dafür anbieten? Was passt in den Bereich? Können wir das zufriedenstellend lösen und wenn ja, wie würde das dann ausschauen? Die Serverseite gibt das dann zurück. Und die Applikation kann dann sagen: Okay, das sieht gut für mich aus, jetzt machen wir das. Wie die Umsetzung auf Serverseite aussieht, wird vom Protokoll nicht abgeklärt, sondern das ist jedem Hosting-Provider oder Service-Anbieter selbst überlassen. In den einfachsten Fällen kann das ganz einfach sein, ganz banal. Da wird zum Beispiel eine E-Mail generiert und an den Support geschickt und die kümmern sich dann um die Umsetzung. Das wäre dann die erste nutzbare Implementierung vom ASMP-Protokoll.  Das kann man auch sehr schnell nutzen.

Aber das kann auch sehr viel komplexer werden, wenn zum Beispiel automatische Deployment-Systeme laufen. Das kann sogar noch weitergehen, bis zu ganzen Kubernetes-Clustern, die sich automatisch an diese neue Begebenheit anpassen und erst einmal über Loadbalancing einen Test machen, um zu sehen, ob die neue Version und die alte Version immer noch das gleiche Resultat ergeben und erst dann umswitchen. Und so weiter und sofort.

Da kann so weit gehen, wie man will. Aber das ASMP stellt die Brücke dar, damit der Server überhaupt weiß, was die Applikation will oder braucht. Und das muss dann nicht ein hard-gecodetes Element sein, das jeder Service-Provider selbst anbieten muss, sondern die Applikationen kann von sich aus sagen: Ich brauche das und das. Auf Applikationsseite kann dann jede Applikation das machen. Und von den Hosting-Providern kann dann jeder eine Implementierung dafür anbieten. Jede Applikation hat dann die Möglichkeit, bei jedem Hosting-Provider automatisch Updates anzubieten. Das ist das längerfristige Ziel.

GoDaddy: Das klingt sehr interessant. Wie jetzt der aktuelle Stand?

Alain: Wir haben auf dem Hackathon während des CloudFests sehr intensiv daran gearbeitet, um erst einmal das Konzept zu testen, um zu sehen: Macht das Sinn? Wir haben uns sehr viele Fragen gestellt wie: Was könnte da eigentlich nicht klappen? Was sind die Risiken davon? Wie sieht es zum Beispiel mit der Sicherheit aus? Kann man die Kommunikation eigentlich auf eine sichere Art und Weise zustande bringen?

Wir haben dann einige Beispiel-Implementierungen ausgearbeitet und am Ende dieses Hackathons hatten wir eine Version, wo eine WordPress-Installation mit einem eigens entwickelten WordPress-Plugin mit dem Server kommuniziert hat. Auf dem Server hatten wir eine Beispiel-Implementierung, die dann geantwortet hat. WordPress-Installation und Server haben dann kommuniziert. Die WordPress-Applikationen hat dann eine Antwort bekommen, was dann installiert werden würde. Das wurde dann natürlich auf Serverseite nicht umgesetzt, aber das Protokoll wurde erfolgreich getestet.

Wir haben zudem angefangen, an einem RFC zu arbeiten, einem Request for Comments. Das ist normalerweise der erste Schritt, um in Richtung Internet-Standard zu gehen. Das endgültige Ziel davon ist tatsächlich, dass wir das hoffentlich irgendwann als Internet-Standard haben, so wie wir viele andere Kommunikationsprotokolle haben. Jeder kann das dann nutzen, um das Internet ein Stück weit sicherer und angenehmer zu machen.

GoDaddy: Das heißt, ASMP soll es nicht nur für WordPress, sondern auch für viele andere CMS geben?

Alain: Wegen meiner spezifischen Kenntnisse habe ich einer WordPress-Version gearbeitet. WordPress war auch der Kontext, in dem die Idee aufkam.

GoDaddy: WordPress ist ja auch sehr weit verbreitet

Alain: Es ist auch sehr weit verbreitet. Eines der Probleme von einem Protokoll ist natürlich auch, eine kritische Masse zu erreichen. Wir haben jetzt schon WordPress und Joomla! an Bord. Damit haben wir schon die zwei größten End-User Content-Management-Systeme, die bei dem Projekt mitmachen wollen. Auf Hosting-Provider-Seite haben wir GoDaddy und SiteGround, die schon interessiert sind, sich das anzuschauen.

GoDaddy: Das heißt, ihr bekommt da schon Unterstützung?

Alain: Ja, genau. Und von Control-Panel-Seite sind es Plesk und cPanel, die interessiert sind. Und wenn wir diese Akteure schon alle an Bord haben und eine erste Implementierung komplett umsetzen, dann sind wir da, denke ich, schon sehr nah an einer kritischen Masse. Weil diese Akteure schon einen sehr großen Teil des Marktes abdecken. Mit den Control-Panels haben wir den Long-Tail des Hosting-Providertums, den wir da abdecken.

GoDaddy: Control-Panels braucht ja praktisch jeder

Alain: Genau. Damit würden wir schon sehr, sehr viele Nutzer auf einen Schlag erreicht.

GoDaddy: Wie kann man bei dem Projekt mitmachen? Oder kann man das überhaupt?

Alain: Das kann man. Im Moment ist es noch so, dass man mir Bescheid sagt, ein über E-Mail oder Twitter. Wir haben ein Slack-Team, wo wir kollaborieren, um an dem Projekt zu arbeiten. Ich arbeite momentan einer Webseite. Das ist nach dem Hackathon allerdings ein bisschen ins Stocken geraten, durch andere Dinge, die dazwischengekommen sind. Aber ich plane, da demnächst wieder einige Fortschritte zu machen. Dann wird es eine offizielle Webseite geben unter: asm-protokoll.org. Außerdem gibt es schon ein GitHub-Repository, da kann man sich alles anschauen, was schon gemacht wurde. Das läuft alles unter ASM-Protokoll, also GitHub-Organisation ASM-Protokoll. Und dort gibt es mehrere Repositories. Das kann sich jeder anschauen und gerne auch mitmachen. Also jeder ist willkommen, seine Ideen mit einzubringen.

GoDaddy: Das also ein Open Source Projekt?

Alain: Es ist ein Open Source Projekt und es soll Open Source bleiben. Es soll frei zugänglich sein. Und es soll irgendwann ein Standard werden, den jeder nutzen kann, darf und sollte.

GoDaddy: Vielen Dank für die interessanten Einblicke in ASMP. Ein wirkliche spannendes Projekt.

Hier findest du weitere Video-Interviews mit WordPress-Experten