Deep-Dive: Das ist der Tech-Stack von t3n (1)
t-3-n. Oder doch “ten”? Weißt du eigentlich, wie man t3n richtig ausspricht? Wenn du die ursprüngliche Bedeutung des Namens kennst, wirst du schnell auf die Lösung kommen: t3n steht nämlich ursprünglich für TYPO3 News. Doch wie viel TYPO3 steckt eigentlich noch heute in den Systemen von t3n? In einem dreiteiligen Blogartikel wollen wir dir einen tiefen Einblick in unseren Techstack geben. Im ersten Teil erfährst du mehr über die Geschichte des t3n Magazins, wie sich das Hosting im Laufe der Jahre verändert hat und wie unsere Applikationen verteilt sind.
Die Ursprünge: Von TYPO3 bis zum vielschichtigen Tech-Stack
Die Wurzeln und Ursprünge von t3n sind ganz fest mit Open-Source verbunden. Man könnte sogar sagen, dass in den Adern von t3n Open-Source-Blut fließt. Im Jahr 2005 erschien die erste Ausgabe des gleichnamigen t3n Magazins. Das Magazin wurde mit einer Redaktionssoftware erstellt, die komplett auf Open-Source-Software basiert — richtig, es geht um TYPO3. Wer sich gerne noch etwas tiefer mit der Geschichte und den Werten von t3n auseinander setzen möchte, kann das übrigens gerne in unserem Brandbook tun.
Auch heute ist der Großteil der Software, die wir für t3n nutzen, noch Open-Source. Wir als Entwicklungs-Team von t3n.de versuchen nach wie vor, viele unserer Plugins, Extensions auf unserem GitHub-Profil zu veröffentlichen und verfolgen dabei einen Open-Source-First Ansatz.
Doch nutzen wir heute noch TYPO3 produktiv im Einsatz? Die Antwort auf diese Frage lautet derzeit „Nein”. TYPO3 ist mit den Jahren aus unserem Stack herausgewachsen — und wurde übrigens auch früher primär für das Printmagazin und nur bis Anfang der 2010er Jahre für t3n.de verwendet. Doch bevor wir uns näher mit den verwendeten Systemen und Frameworks auseinandersetzen, würde ich zunächst den Blick auf unser Hosting lenken wollen.
Vom Büroschreibtisch bis in die Cloud
2020 durften wir uns unser 15-jähriges Jubiläum feiern. In der IT bedeuten 15 Jahre extrem viel Veränderung. Und es ist doch auch immer wieder erstaunlich, wie viel sich wie schnell verändert — und auch professionalisiert. Heute unvorstellbar: t3n.de wurde zum Start auf einem Server betrieben, der unter dem Bürotisch stand. Aber wer erinnert sich nicht gerne an diese alten „wilden” Zeiten zurück? Operationen „am offenen Herzen” gab es da jeden Tag. Webworker*innen, die im Zeitalter von CI&CD-Pipelines, Container-Orchestrierung, Rollbacks etc. groß geworden sind, können sich vermutlich gar nicht vorstellen, wie die Zeiten damals waren.
Mit den Jahren hat sich aber wirklich viel in der Branche weiterentwickelt und professionalisiert — so auch das Hosting von t3n. Anfang bis Mitte der 2010er Jahre lief t3n.de noch auf einem Managed Hosting. Wir hatten dabei drei Root-Server: Der Public-Traffic wurde über einen LoadBalancer auf zwei der drei Server geleitet. Der dritte Server war unser sogenannter “Admin-Server”, auf dem nur interner Traffic landete, also Traffic aus unserem Büro-Netz und von eingeloggten t3n-Mitarbeiter*innen.
Das war damals schon ziemlich cool, hatte aber natürlich auch schon viele Nachteile. Die Provisionierung der Maschinen mit Ansible war teilweise sehr komplex. Das Deployment passierte dann auch mit Ansible, indem der neue Code ausgecheckt und später per Symlink-Switch live geschaltet wurde. Alle Apps, die wir auf den Server hatten, haben sich dabei natürlich die Ressourcen geteilt. Lastspitzen waren so schwer abzufangen. Wir konnten damals nicht einfach einen weiteren Server provisionieren und ins Loadbalancing mit aufnehmen. Außerdem teilten sich alle Applikationen z.B. die gleiche PHP-Version und -Settings.
Was häufig außer Acht gelassen wird, ist außerdem das lokale Dev-Setup. Im Optimalfall ist es so nah wie möglich an der Produktivumgebung. Wir hatten damals also Vagrant-Boxen, die wir auch mit Ansible provisioniert haben, um so möglichst genau den Zustand der Server abzubilden. Weil wir aber immer mehr Probleme mit dem Setup hatten, haben wir dann vor ca. 5 Jahren auf Docker umgestellt. Zunächst einmal den kompletten lokalen Dev-Stack.
Nach kurzer Zeit hatten wir alle unsere Apps lokal fein säuberlich in Container gepackt — konnten diese aber leider nicht ohne weiteres auf die Root-Server deployen.
Das änderte ich dann 2017, als Google in Frankfurt ein Datencenter eröffnete. Wir hatten schon damals längere Zeit auf Kubernetes geschielt und uns war ziemlich schnell klar, dass wir dort bald unsere Applikationen hosten wollten. Als es dann das Rechenzentrum in Frankfurt gab, ging alles ganz schnell: Innerhalb eines halben Jahres haben wir unseren kompletten Stack umgezogen und waren von dort an „in der Cloud”. Warum genau es damals GCP statt AWS geworden ist, kann ich ehrlich gesagt gar nicht mehr genau sagen. Auf jeden Fall hatten wir sowohl Google als auch weitere Partner*innen an unserer Seite, die uns bei der Migration zur GCP geholfen haben. Seitdem sind wir nun in der Google Cloud. Zu Beginn lag unser Fokus dabei auf der Kubernetes-Engine, mittlerweile nutzen wir auch zunehmend BigQuery, PubSub, Cloud Functions und weitere Dienste sehr intensiv.
Von Planungstools bis zur Stellenbörse: Die Entwicklung der Portale auf t3n.de
Neben dem Hosting hat sich natürlich auch unsere App als solche in den letzten Jahren weiterentwickelt — allerdings nicht nur in der Tiefe, sondern auch in der Breite. Den Großteil unserer Anwendungen sehen die User*innen auf t3n.de übrigens gar nicht. Wir haben viele interne Systeme, die eine komplette Eigenentwicklung sind. Einige sind einfach historisch gewachsen oder nach und nach entstanden, weil es zum jeweiligen Zeitpunkt noch keine wirkliche fertige Alternative gab. So haben wir z.B. sowohl die Auftragsverwaltung der Abos und sonstigen Shop-Aufträge, ein Tool zur Planung von Kampagnen und der Ausspielung der Werbungen als auch unser Versandhandling selbst gebaut.
Wir setzen dabei an ganz vielen Stellen auf das PHP Framework „Flow Framework“. Wem das nichts sagt: Das Framework ist der Untergrund für das Neos CMS, das wir auch an vielen Stellen verwenden und ist damals aus dem TYPO3 Projekt heraus entstanden. Wir bei t3n waren immer sehr eng mit der TYPO3-Community verbunden und zählten so auch zu den early adopters des neuen Frameworks. Heute besteht noch ein Großteil der Apps auf diesem Framework und den Neos CMS. Neben dem Framework spielt auch Wordpress für die News noch eine wichtige Rolle.
Aber was für Apps haben wir denn eigentlich? Neben den internen Systemen haben wir eine ganze Reihe unterschiedlicher Portale, die Ihr über t3n.de erreichen könnt. Diese Portale zeigen auch ein bisschen die DNA von t3n: Immer wieder ausprobieren, Dinge testen und live schieben. Wir haben so heute z.B. eine Stellenbörse, ein Firmenverzeichnis oder auch ein Netzwerk für digitale Pioniere. Alle diese Portale sind zu ganz unterschiedlichen Zeitpunkten entstanden — und das sieht man Ihnen auch optisch an. Viele UI-Elemente sind zwar mittlerweile angeglichen, dennoch ist in den einzelnen Bereichen heute noch eine optische Trennung vorhanden.
Wenn dir dieser Deep-Dive gefallen hat, stay tuned für den zweiten Teil. Dort erfährst du, wie wir uns vom Verlag zur Plattform entwickeln, warum unsere größte Herausforderung die Daten sind — und wie wir damit umgehen.
Oder kribbelts dich schon ordentlich in den Fingern? Dann schau doch mal auf unserem Jobportal vorbei. Wir haben einige coole Stellen rund um den spannenden Tech-Stack von t3n ausgeschrieben.
Mehr Infos gibts hier: https://t3n.de/jobs-bei-t3n/