Seit dem Start von SWINDI wurde die Infrastruktur von zwei Servern (Produktion und Entwicklung) auf insgesamt 32 Server an vier verschiedenen Standorten ausgebaut. Folgende Server werden momentan (Stand: 2018) betrieben:
Die levigo systems hat den Schwerpunkt Client-Server-Anwendungen mit Virtualisierung, Storage und kontinuierlicher Verfügbarkeit. Sie bietet von der Hardware-Konzeption bis zur benötigten Ausstattung Komplettlösungen aus einer Hand.
Das Systemhaus ist spezialisiert auf den Aufbau und die Optimierung von Firmennetzwerken und der kompletten IT-Infrastruktur mittelständischer Unternehmen. Die levigo systems bietet Security-Lösungen sowie alle Dienstleistungen rund um die IT-Sicherheit an. Alle Cloud-Dienste laufen in den levigo-eigenen Serverfarmen an drei Standorten in Süddeutschland.
Ohne Open Source wäre ein Projekt wie SWINDI undenkbar. Viele Entwickler auf der ganzen Welt erschaffen gemeinsam wunderbare Software, die kostenlos genutzt werden kann. Auf diesem Wege möchten wir diesen Entwicklern danken und helfen, ihre Projekte noch bekannter zu machen. Außerdem möchten wir hier dem technisch interessierten Nutzer einen kleinen Einblick in unsere Infrastruktur geben.
Alle Aufgeführten Warenzeichen und Markennamen sind Eigentum ihrer jeweiligen Inhaber. SWINDI steht in keiner Beziehung zu den genannten Produkten.
Eine der bekanntesten Scriptsprachen im Web-Bereich ist PHP. Wir nutzen PHP, um dynamisch generierte Webseiten auszuliefern. Auch viele große Webseiten wie Wikipedia und Soical Networks nutzen diese Technologie.
Ein Framework stellt eine Grundstruktur für ein Projekt zur Verfügung. Viele häufig benötigte Funktionen (z.B. Models, Views, Controller) sind dort bereits implementiert und können als Rahmen für eine eigene Anwendung genutzt werden.
Alle Daten von SWINDI werden in einer sogenannten relationalen Datenbank (RDB) gespeichert, z.B. Alben, Medien und Benutzer. Als RDBMS (Relational Database Management System) verwenden wir MySQL.
Wenns mal schnell gehen muss: Bei Redis handelt es sich ebenfalls um ein Datenbanksystem, jedoch nicht um ein relationales sondern um einen Key-Value-Store. Dort werden z.B. Benutzersitzungen (= Benutzer ist eingeloggt) und Cache-Einträge zwischengespeichert.
Bei nginx handelt es sich um einen Webserver, den Grundpfeiler jeder Webseite. Der Webserver nimmt Internet-Anfragen (z.B. https://swindi.de/info/ueber-swindi) entgegeben und leitet sie an das zuständige Backend (bei uns: PHP) weiter und schickt die vom Backend generierte Webseite zurück an den Benutzer. Alle Seitenaufrufe, Uploads und Downloads laufen durch einen der nginx Webserver.
Für die asynchrone Bearbeitung von Aufgaben (z.B. Fotos verkleinern und Video-Screenshots erstellen) verwenden wir RabbitMQ. Damit lässt sich eine hohe Arbeitslast einfach auf mehrere Server verteilen.