samedi 3 octobre 2015

Dann machts doch besser!

Folgende Vorwürfe stehen im Raum und werden von Nutzern auf Treffen bei jeder Gelegenheit unter die Leute gebracht:
  • meine Lösungen sind falsch
  • meine Lösungen dienen dazu, mir eine Vormachtstellung zu verschaffen (ernsthaft, und ich kann das jetzt nicht zurückhaltender formulieren, die Angesprochenen mögen sich angesprochen fühlen, der Rest bitte nicht: Seid ihr eigentlich bescheuert? Was hab ich denn davon? Glaubt ihr, ich hab soviel Lebenszeit übrig und so wenig zu tun, dass ich morgens aufstehe mit dem Ziel die ultimative Kontrolle über ein Internetforum zu bekommen? Hinweis: Ich würd in dieser Frage viel Geld auf "Nein" setzen.)
  • meine Lösungen entsprechen nicht den HA-Standards in der TK-Branche (transparenter Failover) und sind daher unbrauchbar
  • ich bin charakterlich nicht als Admin geeignet
  • ich bin fachlich nicht als Admin geeignet, da ich PHP nicht beherrsche

So. Wenn ich irgendwas nicht leiden kann, dann Gerede hinter meinem Rücken, vor allem wenn ich persönlich (am Edersee und in Legden) bereits Rede und Antwort gestanden habe. Wir machen das jetzt öffentlich. Hier sind die Anforderungen, euer Budget sind 250€ pro Monat, euer Zeitbudget kennt ihr selbst, zeigt mir einen besseren Plan.


Stand:

(copy-paste aus der internen Dokumentation)
Hardware:

Server 1:

web1.a2-freun.de

Dell 2950 mit 2.5“ Caddies
S/N:
2x Intel(R) Xeon(R) X5460 @ 3.16GHz
2x Broadcom 5708 NIC
4x 4GB DDR2 FB-DIMM 667MHz
​2x FUJITSU MBD2300RC im H/W RAID1
​Dell DRAC5
Uplink 100Mbit/s, LAN1
web1.a2-freun.de ist bei VegaSystems in Paderborn als Server #270 gehostet. Das RMM ist unter web1-rmm.a2-freun.de erreichbar.

Physischen Zugang per Schlüsselkarte hat momentan Harald / herr_tichy. Dieser Zugang kann vom Vorstand jederzeit widerrufen werden.

Server 2:

web2.a2-freun.de

Dell 2950 mit 2.5” Caddies
S/N:
2x Intel(R) Xeon(R) X5460 @ 3.16GHz
2x Broadcom 5708 NIC
8x 4GB DDR2 FB-DIMM 667MHz
​2x Seagate ST973451SS im H/W RAID1, Fujitsu MBC2073RC als HotSpare
2x WD WDC WD10JFCX-68N6GN0 im H/W RAID1
1x 4GB USB Stick, intern angeschlossen
​Dell DRAC5
Uplink 100Mbit/s, LAN1

Physischen Zugang erhält man gemeinsam mit einem Mitarbeiter von VegaSystems, da das Datacenter mit BiTel geteilt wird. Dazu muss man mit dem Support einen Termin vereinbaren.

Software

Debian 8.1 Jessie
Apache 2.4
MariaDB 10
phpmyadmin
vBulletin 3.8.9
opensmtpd (für catchall auf allen Domains)
murmur 1.2.8

Apache-Konfiguration

Aufbau

Die Konfiguration von Apache hält sich in der Struktur an die Regeln von Debian. Einzelne Sites sind in /etc/apache2/sites-availabe/ definiert und wurden dann mit a2ensite nach /etc/apache2/sites-enabled gelinkt. Jede Seite hat ihr eigenes Documentroot in /var/www//html. Die aktuell eingerichteten Sites sind:

default, kein SSL (effektiv kein Docroot, nur Umleitungen)
default, SSL (effektiv kein Docroot, nur Umleitungen)
admin
web
wiki
Die Konfiguration für SSL wurde zentral in /etc/apache2/mods-available/ssl.conf angelegt, da wir keine unterschiedlichen Zertifikate für die einzelnen Subdomains haben.

Syncthing

Syncthing läuft auf web1.a2-freun.de unter dem User “syncthing” in einem tmux. Es muss daher nach dem Neustart einmal von Hand in diesem tmux gestartet werden. Wenn mal Zeit ist, könnte mal jemand einen systemd-Service daraus machen.

Die GUI von syncthing ist an localhost gebunden. Es ist dennoch remote erreichbar unter http://ift.tt/1KSL1z2 (traling slash ist wichtig). Dieser Pfad wird von Apache nach 127.0.01:8384 geproxied. Die entsprechende Konfig findet sich in der Apache-Config für admin.a2-freun.de unter enabled sites. UPnP und local discovery sind abgeschaltet.

Murmur

Murmur läuft als systemd-service unter dem user mumble-server. Dafür ist einiges an schwarzer Magie notwendig, über die wir zum Glück nicht nachdenken müssen, weil es aus den Debian-Paketquellen stammt. Das Webinterface für murmur ist hinter Apache geproxied und liegt unter http://ift.tt/1KSL0uZ - dafür war weitere schwarze Magie notwendig, die sich in der Konfiguration für die Site admin.a2-freun.de findet.

Backup

Auf beiden Servern wird btrfs verwendet. Einmal am Tag wird auf web1 der gesamte LAMP-Stack angehalten und ein snapshot des gesamten Dateisystems nach web2 gestreamt. Somit kann bei einem Ausfall von web1 der gesamte LAMP-Stack in einem Container auf web2 gestartet werden. Die Snapshots werden auf beiden Maschinen für mehrere Wochen aufgehoben. Es wird einmal am Tag ein verschlüsseltes tar-Archiv vom aktuellen Snapshot erstellt, das bei den Admins privat gelagert wird, so dass ein mehrfaches offline und offsite-Backup existiert.

Zusätzlich wird die SQL-Datenbank von web1 nach web2 in (mehr oder weniger) Echtzeit repliziert.

aktuelle Probleme:
  • die Datenbank des Wikis liegt in binary collation vor, weil MediaWiki das früher halt so gemacht hat. Der reine Bestand an Artikeln kann nicht einfach in eine frische MediaWiki-Installation transplantiert werden, da MW mittlerweile UTF-8 verwendet und mit gemischter collation in seiner db nicht klarkommt. Es muss ein Skript geschrieben werden, dass diese Konvertierung erledigt.
  • Die Umstellung von vBulletin 3.9 auf vBulletin 5 erfordert die Portierung des gesamten "a2-freun.de" Styles nach vBulletin 5, inklusive aller (rund 100!) individuell angepassten Templates.
  • Die Umstellung von vBulletin 3.9 auf vBulletin 5 erfordert die Anpassung aller Plugins die verwendet werden, die aber nicht dorthin portiert wurden. Hint: Es sind ein paar.
  • Die Umstellung auf vBulletin 5 erfordert die Entwicklung einer Lösung, die alle bisher vorhandenen Inhalte die nicht von vBulletin vanilla sondern durch plugins erstellt wurden auf die Equivalente in vBulletin 5 abbilden.
  • Das Ersetzen der Galerie durch eine externe Lösung erfordert das Entwickeln einer Lösung die alle existierenden Inhalte der Galerie dorthin 1:1 abbildet.
  • Tapatalk verwendet zeitweise immer noch die erste, transparente Variante unsere Logos, deren Support hat keine Ahnung warum obwohl das Problem eindeutig bei ihnen liegt.

Das ist das, war mir gerade einfällt. Die ganzen Nebenbaustellen wie DNS-Hosting und Mailhosting habe ich an dieser Stelle mal ausgespart.

Anforderungen:

Die Anforderungen an das Setup sind:
  • Hosting des Forums und der zugehörigen Dienste Wiki, Mail, DNS, Mumble
  • Ausfallsicherheit bei Hardwareausfall
  • Sicherung der Inhalte, rückwirkend über mehrere Wochen, offsite und offline
  • genug Speicherplatz für alle Inhalte des A2-Forums sowie für ein Langzeitvideoarchiv zur Sammlung aller A2-Club-relevanten Inhalte
  • automatisiertes Backup
  • Hosting in professioneller Umgebung auf professioneller Hardware (also: keine Weißblechdose bei Hetzner - dort sind die Erfahrungen bzgl. Ausfallsicherheit der Hardware zu schlecht)
  • Entwurf und konkrete Umsetzung von Migrationspfaden zu aktueller Software bei denen keine Inhalte verloren gehen und alle "alten" Features auf entsprechende "neue" Features abgebildet werden
  • Bereitstellung aller Ressourcen für Entwickler: Versionsverwaltung für Projekte, cross-compiling-Umgebung für Plattformen wie Raspberry etc.

Dann schlagt was vor. Wenn der Vorschlag plausibel, nachvollziehbar und gut ist, dann setzt ihn der um, der ihn macht.

Ich fahre nach dem Schlafen erstmal eine große Runde mit dem Fahrrad und schaue dann morgen abend wieder rein. Wenn dann etwas gutes hier steht, was umgesetzt werden soll, dann gebe ich den Staffelstab weiter.


Aucun commentaire:

Enregistrer un commentaire