WEBVTT 00:00:00.000 --> 00:00:07.666 Tim: Ja servus. Guten Abend zusammen. ich freue mich dass wir Heute Abend Sebastian 00:00:07.666 --> 00:00:13.088 Neuner bei uns haben. Er arbeitet seit 2014 als Netzwerkingenieur bei BelWü - dem 00:00:13.088 --> 00:00:19.297 Landeshochschulnetz in Baden-Württemberg und verbindet damit die Universitäten, 00:00:19.297 --> 00:00:24.117 Hochschulen und die DHBW sowie sonstige wissenschaftliche und öffentliche 00:00:24.117 --> 00:00:29.242 Einrichtungen und Schulen. Sebastian ist dort zuständig für die Planung und Betrieb 00:00:29.242 --> 00:00:33.856 des Backbone Netzes inklusive der optischen Übertragungstechnik IP-Routing, 00:00:33.856 --> 00:00:39.040 Peering, Policies aber heute abend erzählt er uns wie sie zu Beginn des Lockdowns 00:00:39.040 --> 00:00:44.925 letztes jahr moodel für Baden-Württemberg in 72 Stunden gebaut haben. Ich würde 00:00:44.925 --> 00:00:51.756 sagen, Sebastian die Bühne gehört dir. Sebastian: Ja. Dankeschön, Tim. Ja, es 00:00:51.756 --> 00:00:57.868 wird ein bisschen Storytelling jetzt hauptsächlich. Wir haben auch vor noch mal 00:00:57.868 --> 00:01:01.763 ein technischeres write-up zu machen, wo wir ein bisschen genauer darauf eingehen 00:01:01.763 --> 00:01:05.741 anwelchen Rädchen wir noch wie gedreht haben um das eben ganz performant, so 00:01:05.741 --> 00:01:10.083 performant wie man es eben machen kann auf die Beine zu kriegen. Aber das ist, soll 00:01:10.083 --> 00:01:14.385 jetzt erst mal darum gehen, wie wir das quasi im März in einer großen Hauruck- 00:01:14.385 --> 00:01:19.740 Aktion gewuppt haben. Kurz zu uns. Wir sind so 25 Leute ungefähr. Der Tim hat das 00:01:19.740 --> 00:01:23.640 meiste gerade schon erzählt. Wir haben eben Leute die sich ums Netz kümmern, aber 00:01:23.640 --> 00:01:26.910 wir haben auch Sys-Admins und Leute die dann eben noch verschiedene Services 00:01:26.910 --> 00:01:33.000 betreuen und ja unsere Kernaufgabe ist eben dieses Landeshochschulnetz, hier mit 00:01:33.000 --> 00:01:36.900 einer kleinen Karte zu betreiben . Das Ganze gehört nicht zum Kultusministerium, 00:01:36.900 --> 00:01:43.050 sondern ist nachgeordnet dem Ministerium für Wissenschaft und Kunst. Und ja wir 00:01:43.050 --> 00:01:47.130 bauen und betreiben dieses Netz in enger Absprache und Zusammenarbeit mit den 00:01:47.130 --> 00:01:50.760 Hochschulrechenzentren. Das heißt da gibt es verschiedene Gremien in denen man dann 00:01:50.760 --> 00:01:55.440 eben guckt, ja wie bei einem Ausbau zum Beispiel oder bei technischen größeren 00:01:55.440 --> 00:02:00.120 Änderungen man eben eine Lösung findet die technisch für alle gut funktioniert. Wir 00:02:00.120 --> 00:02:05.460 betreiben dafür so dreieinhalbtausend km darkfiber und haben da oben drauf aktive 00:02:05.460 --> 00:02:10.380 dwdm Systeme das ganze in ungefähr 60 Knoten. Und ja, wie es der Tim gerade 00:02:10.380 --> 00:02:13.860 schon angesprochen hat,machen, machen wir damit Internet für neun Universitäten 40 00:02:13.860 --> 00:02:18.930 Hochschulen, aber auch noch für andere Sachen, die da am Ministerium dranhängen. 00:02:18.930 --> 00:02:26.130 Also Museen oder Staatsarchive, aber auch so was wie Studentenwohnheime und dazu 00:02:26.130 --> 00:02:29.550 kommen eben noch Services, die man also klassisch als Netzbetreiber , dann 00:02:29.550 --> 00:02:34.290 vielleicht auch noch irgendwie dabei hat. So was wie DNS eben oder E-Mail das sind 00:02:34.290 --> 00:02:37.860 gerade Sachen die hauptsächlich von kleinen Hochschulen viel nachgefragt 00:02:37.860 --> 00:02:42.480 werden, die es sich eben, also für die es sich einfach nicht lohnt selber Personal 00:02:42.480 --> 00:02:47.070 und Infrastruktur bereitzustellen für diese Dienste. Und dann kommt auch noch 00:02:47.070 --> 00:02:52.890 Webhosting dazu. Das wird hauptsächlich von Schulen momentan genutzt. Auch schon 00:02:52.890 --> 00:02:57.750 seit vielen Jahren. Und es gibt auch Moodle bei uns von Schulen oder für 00:02:57.750 --> 00:03:02.250 Schulen schon seit einigen Jahren. Das ist also grundsätzlich nichts Neues gewesen. 00:03:02.250 --> 00:03:05.880 Es gibt auch noch Internetanschlüsse für Schulen da gibt es verschiedene 00:03:05.880 --> 00:03:12.750 Konstruktionen. Und für dieses ganze Ding schießt das Kultusministerium noch bei uns 00:03:12.750 --> 00:03:18.510 Personal dazu und eben auch Mittel. Das heißt dadurch sind wir größer, können 00:03:18.510 --> 00:03:21.840 flexibler sein. Also man kann sich auch gegenseitig mal aushelfen an manchen 00:03:21.840 --> 00:03:25.620 Stellen hatten wir Know-How im Haus. Dadurch haben wir sehr viel Synnergie 00:03:25.620 --> 00:03:33.810 Effekte und eine hohe Flexibilität. Ja , dann kam Freitag der 13. Wir saßen dann 00:03:33.810 --> 00:03:38.490 abends in unserer Videokonferenz. Weil man konnte ja nirgends hin. Restaurants hatten 00:03:38.490 --> 00:03:44.550 zu, Kino ging nicht. Das heißt, wir saßen dann irgendwie gelangweilt in unserem 00:03:44.550 --> 00:03:50.700 Jitsi und haben gequatscht und ein Bier getrunken und haben uns überlegt, ja wie 00:03:50.700 --> 00:03:55.050 das jetzt mit den Schulschließungen so ist. Das Kultusministerium hatte davor 00:03:55.050 --> 00:04:01.620 paar Jahren schon angefangen eine große Bildungsplattform ja zu beauftragen die 00:04:01.620 --> 00:04:05.790 sollte Ella heißen das ganze Projekt lief aber irgendwie nicht so gut. Wir waren da 00:04:05.790 --> 00:04:09.720 am Rande beteiligt also nur quasi gar nicht beteiligt. Deswegen kann ich euch da 00:04:09.720 --> 00:04:14.280 keine Details geben. Müsst ihr selber googeln. Aber Punkt war jedenfalls an dem 00:04:14.280 --> 00:04:18.360 Abend war das ganze nicht wirklich nutzbar. Das heißt die Schulen mussten 00:04:18.360 --> 00:04:21.360 irgendwie eine Lösung haben. Der erste Schritt war dann dass das 00:04:21.360 --> 00:04:25.920 Kkultusministerium den Schulen erlaubt hat sich nach eigenem Ermessen , also nach 00:04:25.920 --> 00:04:30.030 nach nach eigenem Wissen und Gewissen sozusagen sich eine eigene Lösung zu 00:04:30.030 --> 00:04:34.590 suchen. Also eigene Lernplattformen sich irgendwo einzukaufen oder Microsoft Teams 00:04:34.590 --> 00:04:39.510 sich zu nutzen oder sowas. Einfach damit die schon mal irgendwie eine Möglichkeit 00:04:39.510 --> 00:04:44.370 haben zu agieren. Gleichzeitig wollte das Kultusministerium dafür sorgen, dass alle 00:04:44.370 --> 00:04:49.890 Schulen irgendwie versorgt sind und irgendwie unterstützen. Und unter anderem 00:04:49.890 --> 00:04:53.370 kam auch bei uns eine Anfrage an, ob wir irgendwie unsere Moodle-Plattform und 00:04:53.370 --> 00:04:58.860 Webhosting-Plattform, die wir bisher schon hatten irgendwie hochziehen können auf-, 00:04:58.860 --> 00:05:01.950 ausbauen können und eben den Schulen die jetzt noch nichts haben irgendwie noch was 00:05:01.950 --> 00:05:06.060 bereitstellen können. Und dann haben wir erst gelacht und haben gesagt na ja also 00:05:06.060 --> 00:05:11.612 normalerweise kommt eine Schule einzeln zu uns. Und dann fragen die halt nach einer 00:05:11.612 --> 00:05:16.920 Domain und nem Moodel und kriegen dann noch SSL-Zertifikate. Und in dem Prozess 00:05:16.920 --> 00:05:20.503 passieren halt einige Schritte von Hand. Und normalerweise also wenn man es arg 00:05:20.503 --> 00:05:24.928 angestrengt hätten hätten wir vielleicht so 50 bis 100 pro Tag hingekriegt und die 00:05:24.928 --> 00:05:29.745 Aufgabe war ja von freitagabend bis Montag soll das quasi laufen. Also haben wir 00:05:29.745 --> 00:05:34.140 irgendwie erst gelacht. Nach dem Motto, wie soll das denn gehen? Und dann kam aber 00:05:34.140 --> 00:05:37.882 der Dennis unser Kollege und meinte, na ja also wir haben da noch die Server wir 00:05:37.882 --> 00:05:42.131 wollten ja irgendwie diese Webhosting- Plattform eh neu machen. Und wenn man es 00:05:42.131 --> 00:05:47.072 mit der heißen Nadel strickt und das alles initial irgendwie noch bisschen eng wird, 00:05:47.072 --> 00:05:51.284 aber er hat es durch gerechnet. Da gibt es irgendwie, hat ein großes Spreadsheet 00:05:51.284 --> 00:05:55.149 gemacht. Das könnte gerade hingehen. Und naja wir saßen da und hatten genug 00:05:55.149 --> 00:05:59.601 Freiwillige. Wir waren irgendwie motiviert. Wir hatten irgendwie Bock auf 00:05:59.601 --> 00:06:04.350 die Challenge. Und haben uns dann überlegt okay wir können das vielleicht machen. 00:06:04.350 --> 00:06:08.343 Aber wollen wir das machen? Also wenn wir da jetzt zu sagen oder jetzt anbieten dass 00:06:08.343 --> 00:06:11.869 wir da helfen dann haben wir irgendwie alle in echt beschissenes Wochenende. Und 00:06:11.869 --> 00:06:15.105 wir haben natürlich ein großes Risiko, dass am Ende nicht klappt. Und wenn wir 00:06:15.105 --> 00:06:18.064 dann sagen wir helfen und das verlassen sich Leute drauf und es funktioniert 00:06:18.064 --> 00:06:22.157 nachher nicht, weil es irgendwo Sonntagmittag einen Showstopper gab, dann 00:06:22.157 --> 00:06:27.450 stehen irgendwie blöd da. Andererseits wenn wir jetzt irgendwie sagen hm, ne, hm 00:06:27.450 --> 00:06:32.930 schwierig, machen wir nicht. Wer macht es dann? Also Kultusministerium hat ja nicht 00:06:32.930 --> 00:06:37.578 nur bei uns angefragt und das hörte sich alles nicht sehr hoffnungsvoll an. Und 00:06:37.578 --> 00:06:42.416 dann haben wir hin und her überlegt haben gedacht na ja okay wir versuchen es. Wir 00:06:42.416 --> 00:06:47.533 bieten mal Hilfe an. Haben dann uns um zehn abends beim Kultusministerium noch 00:06:47.533 --> 00:06:51.422 gemeldet haben gesagt, ja also wir würden es versuchen, wir wollen nichts 00:06:51.422 --> 00:06:55.597 versprechen, aber wir holen alles aus dem Keller was noch da ist und versuchen 00:06:55.597 --> 00:07:00.477 irgendwie Plattformen hochzuziehen. Die Ansage war dann, ja okay also manche Leute 00:07:00.477 --> 00:07:04.533 schlafen jetzt gerade und eine offizielle Entscheidung, also die offizielle 00:07:04.533 --> 00:07:09.098 Beauftragung in aller Förmlichkeit wird frühestens Samstag Vormittag passieren. 00:07:09.098 --> 00:07:14.228 Wir haben dann entschieden Samstag Vormittag ist uns zu spät. Wir fangen 00:07:14.228 --> 00:07:19.743 direkt an. Ich bin dann ins Rechenzentrum. Ich habe das kürzeste Streichholz gezogen 00:07:19.743 --> 00:07:23.876 sozusagen. Ich wohne am nächsten dran. Habe die Server, die dann quasi schon da 00:07:23.876 --> 00:07:28.884 waren, die aber noch nicht in Benutzung waren, passend verkabelt . Die waren noch 00:07:28.884 --> 00:07:33.305 in anderen Topologie. Nebenher während ich die Server so nach nach quasi 00:07:33.305 --> 00:07:37.386 eingeschaltet und verkabelt habe, haben die Kollegen dann schon da Systeme drauf 00:07:37.386 --> 00:07:41.610 installiert und die irgendwie vorbereitet. Und die, die Hardware schon mal an den 00:07:41.610 --> 00:07:46.485 Start gekriegt. Wir haben das Projekt dann intern "Ella 3.0" genannt. Und fanden uns 00:07:46.485 --> 00:07:51.657 sehr, sehr witzig. Und so ging es dann ja am Freitag nacht los. Und die Kollegen 00:07:51.657 --> 00:07:58.142 haben dann quasi noch mal ausgeschlafen und haben sich ein Setup überlegt. Und im 00:07:58.142 --> 00:08:03.273 Prinzip war das halt jetzt nix, nix Besonderes. Wir haben halt ein Webhosting 00:08:03.273 --> 00:08:06.866 Setup gemacht. Das sich irgendwie in unsere bisherige Infrastruktur einfügt. 00:08:06.866 --> 00:08:11.379 Also wir haben jetzt in der Kürze der Zeit nicht großartig noch groß neues Setup 00:08:11.379 --> 00:08:16.227 planen können. Sondern wir haben halt das gebaut was wir sonst auch haben. Nur mehr 00:08:16.227 --> 00:08:20.964 davon. Haben die Server ans Netz gehängt und an unser all-flash Storage dran 00:08:20.964 --> 00:08:25.844 gehängt. Haben dort Linux installiert und Virtualisierung machen wir eben mit 00:08:25.844 --> 00:08:30.613 libvirt und KVM. Und innen drin laufenden ja einfach linux VMs. Storage haben wir so 00:08:30.613 --> 00:08:36.145 gemacht, dass wir die Storages über Netzwerk auf dem hypervisor gemounted 00:08:36.145 --> 00:08:41.362 haben. Und das wird dann, also da liegen dann disk images rum und die werden als 00:08:41.362 --> 00:08:44.455 block device einfach in die VM reingereicht. Die VM hat ein ganz normales 00:08:44.455 --> 00:08:48.570 Filesystem mit block device. Und kann caching machen, was ganz wichtig ist in 00:08:48.570 --> 00:08:52.579 dem Fall für die Performance. Wir haben dann jeweils in einer VM 50 Moodels drin. 00:08:52.579 --> 00:08:56.980 Also wir mussten uns halt irgendwie eine Aufteilung überlegen und das war so, wo 00:08:56.980 --> 00:09:02.905 wir rausgekommen sind. Und da läuft einfach quasi ein Apache mit 50 vhosts und 00:09:02.905 --> 00:09:08.727 ja php-fpm. Also alles nichts Besonderes. Klassisches Webhosting im Prinzip. Dann 00:09:08.727 --> 00:09:14.235 hatten wir noch extra Server, die hatten RAM im Terabyte Bereich. Und dicke NVMe- 00:09:14.235 --> 00:09:19.208 Raids. Und da haben wir uns gedacht, die sind ja perfekt eigentlich für 00:09:19.208 --> 00:09:23.293 Datenbankserver. Haben da ja Datenbankserver draufgepackt. Und sehr 00:09:23.293 --> 00:09:26.982 viel später festgestellt, dass es ist nicht so eine optimale Idee war. Haben 00:09:26.982 --> 00:09:30.114 dass nachher nochmal bisschen umgestrickt und haben die Datenbanken mit in die VMs 00:09:30.114 --> 00:09:34.320 reingezogen. Aber da komme ich gleich noch mal drauf. Und ja das Moodel kriegen wir 00:09:34.320 --> 00:09:37.782 quasi fertig von Kollegen im Kultusministerium das ist ne 00:09:37.782 --> 00:09:43.072 Basisinstallation, die mit einigen, vielen Plugins gebündelt ist. Wir deployen das 00:09:43.072 --> 00:09:48.480 quasi so fertig, wie es kommt. Am Anfang hatte jedes Moodel nur 20 Gigabyte Disk. 00:09:48.480 --> 00:09:52.530 Das ist ziemlich wenig. Aber für die ersten Tage hat es gehalten und später 00:09:52.530 --> 00:09:56.864 haben wir neben Storage nachgelegt und konnten das Ganze dann ja vergrößern. Wir 00:09:56.864 --> 00:10:00.923 könnten das ganze noch mit Snapshots und Backups ausstatten. Das heißt die ersten 00:10:00.923 --> 00:10:05.463 paar Tage war es wirklich mit ner so heißen Nadel gestrickt, dass es auch keine 00:10:05.463 --> 00:10:10.728 Backups gab. Bis so nach paar Tagen bis ner woche. Caching haben wir anfangs mit 00:10:10.728 --> 00:10:14.345 mcash, memcached probiert. Das lief irgendwie nicht so gut. Hatten aber auch 00:10:14.345 --> 00:10:18.206 keine Zeit wirklich genauer zu debuggen. Es musste schnell gehen. Haben dann APCUc 00:10:18.206 --> 00:10:23.141 ausprobiert. Das kann ein Moodle aktivieren und das funktionierte sehr gut. 00:10:23.141 --> 00:10:28.978 Und ja später im Laufe des Jahres oder Ende des Jahres kam dann irgendwann noch 00:10:28.978 --> 00:10:34.453 Redis für Session Caching dazu. Ja Samstag stand im Prinzip das Setup, wie es 00:10:34.453 --> 00:10:38.948 aussehen soll. Da waren dann ganz viele Baustellen zu tun. Ganz, es ging in ganz 00:10:38.948 --> 00:10:43.160 viele Richtungen gleichzeitig. Also das lief quasi alles parallel. Angefangen bei, 00:10:43.160 --> 00:10:47.638 welche Schulen gibt es überhaupt? Wie heißen die? Wo sind die? Was haben die für 00:10:47.638 --> 00:10:51.749 eine Dienststellen E-Mail Adresse? Da hat das Kultusministerium ein großes 00:10:51.749 --> 00:10:55.214 Spreadsheet gehabt. Wir haben dann das Excel-Sheet in irgend ein sinnvolles 00:10:55.214 --> 00:10:59.416 Dateiformat umgewandelt und haben dann damit weiter gearbeitet. Haben damit quasi 00:10:59.416 --> 00:11:04.395 Ansible befüllt. Haben uns Zugangsdaten für die Moodles also Initial-Admin 00:11:04.395 --> 00:11:07.437 Accounts und Datenbank, Datenbankpasswörter generiert und so 00:11:07.437 --> 00:11:11.922 weiter. Jemand musste sich noch um Storage kümmern. Jemand musste sich noch um 00:11:11.922 --> 00:11:17.180 Netzwerk und IP-Adressen für die ganzen VMs kümmern. Die Moodle Installation 00:11:17.180 --> 00:11:21.310 musste irgendwie automatisiert werden. Wir konnten da auf ziemlich viel zurückgreifen 00:11:21.310 --> 00:11:24.503 was wir hatten, aber der das Ziel war natürlich das muss irgendwie 4000 mal 00:11:24.503 --> 00:11:27.780 laufen ohne dass jemand irgendwo was anfasst. Ohne dass jemand eine Domain 00:11:27.780 --> 00:11:30.988 irgendwo von Hand anlegt oder so weil sonst geht es in der Kürze der Zeit 00:11:30.988 --> 00:11:34.754 einfach nicht. Wir haben dann einfach mal noch kurz paar 1000 Domains hier als 00:11:34.754 --> 00:11:40.318 Subdomain von moodle.belwue.de angelegt. Immer mit der Dienststellenadresse vorne 00:11:40.318 --> 00:11:45.501 dran sozusagen, als primary key. Ja und so musste das dann halt laufen. Für 00:11:45.501 --> 00:11:48.593 Monitoring nutzen wir generell viel Prometheus und Grafana das heitßt, da 00:11:48.593 --> 00:11:52.460 haben wir noch mal eine separate Instanz dazu gestellt die eben auf das Web Cluster 00:11:52.460 --> 00:11:57.545 zugeschnitten war und dann da eben geguckt hat was funktioniert und was funktioniert 00:11:57.545 --> 00:12:02.515 nicht. Sonntag ging es dann im Prinzip so weiter das nahm dann so nach und nach Form 00:12:02.515 --> 00:12:06.805 an aber wir haben dann gegen ganz viele Kleinigkeiten gekämpft. Also sowas wie, 00:12:06.805 --> 00:12:10.207 wenn man 4000 Moodles gleichzeitig installiert und das Ansible holt 00:12:10.207 --> 00:12:14.328 irgendwelche sachen vom git-Server dann fängt der arme git-Server so ein bisschen 00:12:14.328 --> 00:12:17.998 an zu brennen. Das heißt, da mussten wir dass irgendwie in Badges einteilen. 00:12:17.998 --> 00:12:21.476 Gleichzeitig gingen dann irgendwie bei der Installation die Datenbanken kaputt, weil 00:12:21.476 --> 00:12:24.768 es irgendwelche Timeouts gab. Das heißt, man musste dann gucken welche haben nicht 00:12:24.768 --> 00:12:28.712 sauber deployed. Das alles nochmal wegwerfen, alles noch mal von vorne 00:12:28.712 --> 00:12:34.650 machen. SSL-Zertifikate, 4000 Zertifikate irgendwo einzeln beantragen geht natürlich 00:12:34.650 --> 00:12:39.129 auf gar keinen Fall. Wir haben dann überlegt was wir machen.Let's Encrypt 00:12:39.129 --> 00:12:43.171 Zertifikate wäre auch nicht gegangen. Da gibt es Ratelimits. In die wären wir 00:12:43.171 --> 00:12:46.451 reingelaufen. Und was wir dann gemacht haben war, naja Let's Encrypt 00:12:46.451 --> 00:12:49.909 Sternchenzertifikat für die ganze Subdomain erstmal da überall reinpacken, 00:12:49.909 --> 00:12:54.476 passt schon. Kümmern wir uns nächste Woche drum. Also es muss jetzt erstmal irgendwie 00:12:54.476 --> 00:12:59.077 bis Montagfrüh irgendwie laufen. Genau dann irgendwann war Netzwerk fertig. Das 00:12:59.077 --> 00:13:03.112 heißt der Teil, wo ich helfen konnte lief und ich habe dann halt ein bisschen 00:13:03.112 --> 00:13:06.965 angefangen Monitoring Dashboards zu bauen, damit die Kollegen wissen was tut und was 00:13:06.965 --> 00:13:10.857 tut nicht. Und wo gibt es noch zu tun und wo ging was schief. Und eine andere Frage, 00:13:10.857 --> 00:13:14.512 die wir dann noch klären mussten, war, wer macht überhaupt Support für das Ganze? 00:13:14.512 --> 00:13:17.431 Also wir können vielleicht ein bisschen technisch, wenn es irgendwie gar nicht 00:13:17.431 --> 00:13:20.393 funktioniert, können wir natürlich rein gucken und sagen okay da habt ihr 00:13:20.393 --> 00:13:23.938 irgendwie was verkonfiguriert oder so. Also technisch können wir da vielleicht 00:13:23.938 --> 00:13:27.828 Support machen, aber es gibt ja dann nachher noch hunderteLehrer, die dann 00:13:27.828 --> 00:13:32.955 nachher das benutzen müssen und die dann vielleicht irgendwie Probleme damit haben. 00:13:32.955 --> 00:13:37.562 Und den Teil hat dann das Zentrum für Schulentwicklung und Lehrerfortbildung, 00:13:37.562 --> 00:13:41.322 also Lehrerfortbildung BW hat es dann übernommen. Die machen einen wirklich 00:13:41.322 --> 00:13:44.974 guten Job. Die machen da, stellen ganz viele tolle Materialien bereit und machen 00:13:44.974 --> 00:13:49.346 Videokonferenzen mit den Lehrern und zeigen dass denen. Und die haben nachher 00:13:49.346 --> 00:13:54.145 auch Big-Blue-Button hochgezogen. Mittlerweile in einer wahnsinnig riesigen 00:13:54.145 --> 00:14:00.105 Installation mit hunderten Servern mit 100000en gleichzeitigen Clients in der 00:14:00.105 --> 00:14:07.121 Videokonferenz. Also wirklich, Hut ab. Am Montag war dann die Deadline. Und wir 00:14:07.121 --> 00:14:13.796 hatten drei 3948 neue Moodles installiert und bis auf 62 Stück waren auch alle 00:14:13.796 --> 00:14:19.665 funktional. Das heißt, sagen wir mal 99% Mission Accomplished. Wir waren riesig 00:14:19.665 --> 00:14:24.682 froh bei den 62 Stück musste man noch mal von Hand angucken. Die hatten noch 00:14:24.682 --> 00:14:28.182 verschiedene Probleme, aber im Wesentlichen lief das Ganze rund. Und dann 00:14:28.182 --> 00:14:32.704 hatten wir noch wie gesagt vorher schon lange Moodle und das waren so 1100 00:14:32.704 --> 00:14:38.627 Bestands Moodle. Das heißt so knappe 5000 Moodle hatten wir dann. Das neue 00:14:38.627 --> 00:14:43.781 Deployment war initial, ja so was halt da war und die Woche über und die nächsten 00:14:43.781 --> 00:14:48.203 Wochen über kam dann immer mehr und mehr Hardware dazu. Aber das war jetzt mal so 00:14:48.203 --> 00:14:52.407 der Stand vom Montag. Außerdem war der Stand, dass ein paar Leute irgendwie echt 00:14:52.407 --> 00:14:56.525 dringend Schlaf gebraucht haben. Ja und so fing unsere Arbeitswoche am Montag dann 00:14:56.525 --> 00:15:00.843 an. Und Dienstag haben wir dann gespannt auf die Graphen geguckt. Das war der erste 00:15:00.843 --> 00:15:04.694 Tag der Schulschließungen und auf dem neuen Cluster passierte irgendwie nix. Wir 00:15:04.694 --> 00:15:08.330 haben erst gegrübelt und irgendwann wurde uns dann klar naja ok klar die haben jetzt 00:15:08.330 --> 00:15:11.030 erstmal ihre Admin Accounts. Die müssen jetzt erst mal das ganze Kollegium mit 00:15:11.030 --> 00:15:14.510 Accounts versorgen und dann die Schüler. Und müssen sich vielleicht noch 00:15:14.510 --> 00:15:19.010 einarbeiten und Material hochladen und so. Und die folgenden Tage wurde es auch so 00:15:19.010 --> 00:15:22.460 nach und nach ein bisschen mehr, aber am Anfang war nicht so viel los. Das Problem 00:15:22.460 --> 00:15:26.870 waren jetzt aber die Moodles von den Bestandskunden. Weil die hatten Accounts. 00:15:26.870 --> 00:15:30.260 Die wussten wie es funktioniert. Die sind Mittwo.. Dienstag einfach zu Hause 00:15:30.260 --> 00:15:35.210 geblieben. Haben ihren Laptop aufgeklappt und konnten sofort voll einsteigen. Und 00:15:35.210 --> 00:15:37.970 damit hatten hatten wir natürlich auch gerechnet. Wir haben dafür gesorgt dass 00:15:37.970 --> 00:15:43.955 überall genug - dachten wir - genug Platz da ist. Also irgendwie Lastfaktor 5 wäre 00:15:43.955 --> 00:15:47.300 irgendwie noch Luft gewesen. Wir haben da irgendwie reingeguckt, da war nicht so 00:15:47.300 --> 00:15:49.880 viel los. Und wir dachten ja die benutzten die, also hatten die ja vorher auch schon 00:15:49.880 --> 00:15:55.510 benutzt. So schlimm wird es nicht werden. Aber die Server haben dann tatsächlich am 00:15:55.510 --> 00:16:00.040 Mittwoch glaube ich die 20-fache Last wie sonst gesehen. Und da waren wir dann 00:16:00.040 --> 00:16:04.000 schwer beschäftigt damit mehr Ressourcen zuzuteilen. Die VMs zu vergrößern. Mehr 00:16:04.000 --> 00:16:08.530 Hardware dazu zu bauen. Neuere Hardware dazu zu bauen. Also Teile von dem alten 00:16:08.530 --> 00:16:13.000 Webhosting liefen eben noch auf ein paar wenigen Sun-Servern, die noch von früher 00:16:13.000 --> 00:16:16.600 übrig waren. Die haben wir dann durch Linux ersetzt, so schnell wie es geht. 00:16:16.600 --> 00:16:20.500 Kollege hat irgendwie noch aus Einzelteilen, die im Lager waren nochmal 00:16:20.500 --> 00:16:23.170 einen funktionierenden Server zusammengebaut und natürlich neue 00:16:23.170 --> 00:16:28.150 bestellt. Und nachdem wir dann irgendwann die ganzen VMs groß genug vergrößert 00:16:28.150 --> 00:16:30.820 hatten und die alle schön, auf die, auf die Server die wir hatten, verteilt 00:16:30.820 --> 00:16:34.480 hatten, hat es auch einigermaßen funktioniert. Das heißt die ersten paar 00:16:34.480 --> 00:16:38.380 tage war es irgendwie echt blöd und so nach und nach lief's für die 00:16:38.380 --> 00:16:42.220 Bestandskunden dann auch immer besser und ja also dann nach ein bis zwei Wochen 00:16:42.220 --> 00:16:46.630 lief's eigentlich relativ rund. Hier habe ich noch so 'nen kleinen Screenshot von 00:16:46.630 --> 00:16:51.460 einem Monitoring von so'm Bestandsmoodle. "For all resources, whatever it is, you 00:16:51.460 --> 00:16:58.000 need more." Man sieht da, ich hab das schon mal, in dem CPU-Graphen unten links 00:16:58.000 --> 00:17:03.040 einen kleinen Aussetzer, da wurde die VM schon mal vergrößert, das war, glaube ich, 00:17:03.040 --> 00:17:07.000 der Sonntag, da war schon relativ viel Last drauf, weil die Lehrer dann 00:17:07.000 --> 00:17:13.120 angefangen haben, da Sachen hochzuladen und, ich glaub', der Montag war es und das 00:17:13.120 --> 00:17:15.550 hat dann aber auch am Mittwoch wieder nicht mehr gereicht, das heißt,am Mittwoch 00:17:15.550 --> 00:17:20.410 wurde die VM noch mal verdoppelt und also kurz nachdem dieser Screenshot aufgenommen 00:17:20.410 --> 00:17:25.150 wurde, lief's dann auch da rund. Wie gesagt, eine kurze Zeit lang war es echt 00:17:25.150 --> 00:17:29.820 schlecht, aber dann nach ein paar Tagen hatten wir das im Griff. Ja, die folgenden 00:17:29.820 --> 00:17:35.460 zwei Wochen da kam dann immer mehr Last auf das neue Cluster drauf und da haben 00:17:35.460 --> 00:17:38.220 dann bemerkt, dass die zwei großen dicken Datenbankserver langsam zum Problem 00:17:38.220 --> 00:17:42.570 werden. Konkret sind wir hier in Connection-Limits reingelaufen und egal 00:17:42.570 --> 00:17:46.590 wie groß man die gemacht hat, die wurden immer gehittet und vor Allem auch mit 00:17:46.590 --> 00:17:51.000 stale Connections, also diese Moodles machen einen Haufen PHP-Cronjobs, machen 00:17:51.000 --> 00:17:56.010 da ganz viele Sachen und es passiert immer wieder, dass mal was in Timeouts läuft und 00:17:56.010 --> 00:18:01.020 dann bleiben da einfach Datenbank- Connections hängen und ja das verstopft 00:18:01.020 --> 00:18:03.840 dann irgendwann nach und nach die Datenbank. Wir haben dann, wie gesagt, mit 00:18:03.840 --> 00:18:06.870 Parameter-Tuning einiges machen können, aber irgendwann ging's halt nicht mehr so 00:18:06.870 --> 00:18:11.340 gut weiter und wir haben dann beschlossen die Datenbank-Server in die virtuellen 00:18:11.340 --> 00:18:15.090 Maschinen mit reinzuziehen einfach damit wir mehr DB-Server haben und dass das 00:18:15.090 --> 00:18:20.490 besser verteilt. Wir haben dann auch ein bisschen DoS gesehen und ja wirklich, wir 00:18:20.490 --> 00:18:25.410 können unterscheiden von jemandem drückt F5 zu einem NTP-Amplification-DDoS, da 00:18:25.410 --> 00:18:29.460 gibt es immer wieder ein bisschen schnippische Kommentare. Können wir schon 00:18:29.460 --> 00:18:33.210 unterscheiden. Das meiste war Kleinvieh, haben wir irgendwie gar nicht groß bemerkt 00:18:33.210 --> 00:18:37.890 oder uns nicht dran gestört. Also Amplification-Geschichten, die sind easy 00:18:37.890 --> 00:18:42.810 weggefiltert. Es gab aber auch dann ab un d zu mal Application-Layer-DDoS, wo jemand 00:18:42.810 --> 00:18:46.590 tatsächlich ein bisschen tiefer im System Last gemacht hat und auch an den Filtern 00:18:46.590 --> 00:18:50.730 vorbeikam, das war ein bisschen ätzend, kam aber zum Glück sehr selten nur vor 00:18:53.460 --> 00:18:59.370 Feedback gab es vor allem von den von der Presse dann zuerst also diese 100 ich sage 00:18:59.370 --> 00:19:02.460 mal so Größenordnung 100 Moodles, die tatsächlich Probleme hatten, wegen 00:19:02.460 --> 00:19:06.360 Überlastung die haben sehr viel Medienecho bekommen. Das war auch ein bisschen 00:19:06.360 --> 00:19:09.870 schade, dass ausgerechnet hier die Bestandskunden, die es schon lange benutzt 00:19:09.870 --> 00:19:14.070 hatten und sich damit auskannten Probleme hatten, das hat sehr viel negatives 00:19:14.070 --> 00:19:17.130 Medienecho bekommen. 'n bisschen unfair war vielleicht, dass dann irgendwie zwei 00:19:17.130 --> 00:19:20.790 Wochen später immer noch die DPA-Meldung von zwei Wochen vorher ge-copy-pasted war, 00:19:20.790 --> 00:19:26.340 wo es aber schon lange wieder im Griff war. Die paar tausend Instanzen, die gut 00:19:26.340 --> 00:19:31.710 funktioniert haben, die haben nicht so interessiert. Was cool war, dass vom 00:19:31.710 --> 00:19:35.910 Kultusministerium dann am ende für uns einzeln und persönlich Dankesschreiben 00:19:35.910 --> 00:19:41.280 kamen, wo man sich in aller Förmlichkeit bedankt hat, das hat uns sehr gefreut an 00:19:41.280 --> 00:19:44.520 diesem Wochenende auch in den Tagen danach haben uns schon das ein oder andere Mal 00:19:44.520 --> 00:19:49.230 gefragt, warum wir uns den Mist angetan haben und das hat dann richtig gut getan. 00:19:49.230 --> 00:19:53.820 Wir haben auch sehr viel Dank und Lob von den Schulen bekommen, also E-Mails aber 00:19:53.820 --> 00:19:59.280 sogar auch Postkarten und sogar von ein paar Schulen Pakete voll mit Schokolade, 00:19:59.280 --> 00:20:04.020 was uns sehr freut. Schokolade, wenn sie bei uns vom Tisch fällt, berührt den Boden 00:20:04.020 --> 00:20:09.240 nicht. Die muss sofort weg. Ja, also das hat uns riesig gefreut. Momentan ist der 00:20:09.240 --> 00:20:12.240 Status so: Ich habe hier noch mal ein Bild, dass ist irgend so ein Teil von der 00:20:12.240 --> 00:20:17.370 alten Webhosting-Plattform, die ist über den Sommer rausgeflogen jetzt und wurde 00:20:17.370 --> 00:20:24.600 durch modernere, platz- und stromsparendere Dinge ersetzt. Wir haben 00:20:24.600 --> 00:20:28.740 technischen austausch gehabt mit den Kollegen in Berlin und im Saarland und in 00:20:28.740 --> 00:20:33.150 Rheinland-Pfalz. Vor allem die Kollegen in Berlin konnten einiges weiter helfen mit 00:20:33.150 --> 00:20:39.150 schlauen Datenbank-Indizes und Patches im Code, der das ganze noch ordentlich nach 00:20:39.150 --> 00:20:44.790 vorne gebracht hat, großen Dank an der Stelle! An den Moodles haben wir so übers 00:20:44.790 --> 00:20:46.680 Jahr noch einige Sachen verbessert, also wir 00:20:46.680 --> 00:20:50.850 haben die Redis-Session-Cache dazu gebaut, es gibt eine Funktion, die YUI-Combo- 00:20:50.850 --> 00:20:54.210 loading heißt. Wie gesagt, wir machen da vielleicht noch ein Write-Up, weil es doch 00:20:54.210 --> 00:20:57.030 eine große Community gibt die Moodle einsetzt sind die sich dafür interessiert. 00:20:57.550 --> 00:21:02.890 Combo-loading so ein Ding das Javascript zusammenfasst und zusammen ausliefert. Das 00:21:02.890 --> 00:21:06.940 macht sehr viel weniger Requests auf dem Webserver und die kann man auch gut cachen 00:21:06.940 --> 00:21:12.220 dann. Und mehr php-worker da haben wir ein bisschen dran getuned, mehr Datenbanken 00:21:12.220 --> 00:21:16.390 habe ich gerade schon erwähnt. Wir haben mittlerweile mehrere Lagen DDOS-Protection 00:21:16.390 --> 00:21:22.180 und nächste Woche oder so kommt dann auch noch mal ein bisschen mehr Storage dazu. 00:21:22.180 --> 00:21:26.350 Das wird auch irgendwann mal voll. Deswegen sind wir da gerade auch dabei das 00:21:26.350 --> 00:21:31.300 Storage zu upgraden. Ja so ein To-Do dass wir noch auf der Liste haben. Das mit dem 00:21:31.300 --> 00:21:34.870 Apache war halt so eine Sache von wegen unsere ganze Automatisierung hat das so 00:21:34.870 --> 00:21:40.300 drin. Wir machen das jetzt halt mal so. Es gibt aber mit nginx eine Funktion die 00:21:40.300 --> 00:21:44.110 heißt x-Accel-Redirect, die wir dann nutzen könnten. Mit der man auch noch mal 00:21:44.110 --> 00:21:46.930 einige Prozent Performance herausholen kann. Das steht dann vielleicht noch mal 00:21:46.930 --> 00:21:52.900 irgendwann auf dem Plan. Und ja der Moodle Code hat auch Optimierungspotenzial und 00:21:52.900 --> 00:21:56.320 wir planen gerade so ein bisschen dass wir da rein gucken. Bisschen, ein bisschen 00:21:56.320 --> 00:22:01.630 Analyse machen und auch es vielleicht hinkriegen dass wir jemand haben der den 00:22:01.630 --> 00:22:05.020 Moodle Code selber ein bisschen optimiert. Weil an vielen Stellen kann man halt 00:22:05.020 --> 00:22:09.040 irgendwie Server dazu werfen und noch mehr Server dazu werfen. Wenn die Software halt 00:22:09.040 --> 00:22:12.220 an einigen Stellen ab und zu mal hakt, dann kann man so viele Server haben wie 00:22:12.220 --> 00:22:18.370 man will. Ja. Lessons Learned: Eigene Infrastruktur und eigenes Know-How sind 00:22:19.090 --> 00:22:22.870 unersetzbar. Also wir waren ja nicht die Einzigen und nicht die Ersten bei denen 00:22:22.870 --> 00:22:27.040 angefragt wurde das zu machen. Und wir hatten halt die Infrastruktur da. Und wir 00:22:27.040 --> 00:22:31.900 hatten die Leute da die das können und die das seit einiger Zeit betreiben. Ohne das 00:22:31.900 --> 00:22:38.140 wäre es nicht gegangen in der Kürze der Zeit. Dann das Team. Also das waren alles 00:22:38.140 --> 00:22:42.910 Freiwillige. Wir haben niemanden gezwungen und wir haben auch darauf geachtet dass 00:22:42.910 --> 00:22:47.050 alle das freiwillig machen und es war im Mix genau richtig. Also bei allen 00:22:47.050 --> 00:22:50.380 Problemen bei allen Themen, die wir hatten, war immer irgendwie jemand da, der 00:22:50.380 --> 00:22:54.010 gesagt hat, ah ja hatte ich schon mal kann ich mich drum kümmern. Das war genau 00:22:54.010 --> 00:22:56.350 richtig. Und ich glaube, wenn wir ein, zwei Leute weniger gehabt hätten, hätten 00:22:56.350 --> 00:23:00.640 wir sicher irgendwo nen Showstopper gehabt. Wichtig war auch noch das 00:23:00.640 --> 00:23:05.830 selbstorganisierte Team. Das ging einfach sehr schnell und auf dem kurzen Weg, dass 00:23:05.830 --> 00:23:08.950 wir uns einfach zusammen gesetzt haben und jeder hat halt das gemacht was er was er 00:23:08.950 --> 00:23:14.370 gut kann, wo er sich auskennt. Und genauso die Kommunikation wir waren quasi die 00:23:14.370 --> 00:23:19.140 ganze Zeit und auch Tage später noch im Jitsi in der Videokonferenz. Also ich 00:23:19.140 --> 00:23:21.360 glaube wir hatten einen Jitsi Raum der irgendwie drei Wochen am Stück offen war. 00:23:21.360 --> 00:23:26.760 Und man konnte da halt dann auf dem kurzen Weg einfach mal was sagen wenn es 00:23:26.760 --> 00:23:29.970 irgendein Thema gab . Oder mal kurz was diskutieren. Und ansonsten war da halt 00:23:29.970 --> 00:23:35.550 Funkstille und das hat eigentlich ganz gut funktioniert so. Auch nach außen ist die 00:23:35.550 --> 00:23:38.910 Kommunikation sehr wichtig. Wir sind normalerweise gerade als Forschungsnetz 00:23:38.910 --> 00:23:43.980 sehr offen und kommunizieren auch normalerweise mit technischen Details. Und 00:23:43.980 --> 00:23:46.650 es gibt auch immer wieder sehr viel positives Feedback. Die Leute freuen sich 00:23:46.650 --> 00:23:51.060 darüber dass wir da irgendwie auch mal eine Ansage machen. Also auch Laien, die 00:23:51.060 --> 00:23:53.910 dann vielleicht nicht genau verstehen, um was es da geht. Man muss dann halt noch 00:23:53.910 --> 00:23:58.230 mal ein erklärenden Satz zu schreiben. Das ist nicht immer einfach. Aber die haben 00:23:58.230 --> 00:24:00.930 dann schon mal irgendwie ein Verständnis von, da passiert irgendetwas, da kümmert 00:24:00.930 --> 00:24:04.620 sich jemand und da weiß jemand was er tut. Und Leute die sich auskennen sind 00:24:04.620 --> 00:24:09.390 natürlich um Feedback, also um technische Details immer so, umso dankbarer. Wenn ihr 00:24:09.390 --> 00:24:13.890 dann auch ein bisschen Verständnis dafür kriegen dass da, was da so passiert. Genau 00:24:13.890 --> 00:24:19.440 das war es so von mir. Danke fürs Zuhören Schreibt mir eine Mail. Ich bin nachher 00:24:19.440 --> 00:24:22.320 auch noch für das Q&A da und ansonsten freue ich mich auf die lustige 00:24:22.320 --> 00:24:30.770 Pausenmusik. Dankeschön. Tim: Ja, Sebastian. Vielen Dank für deinen 00:24:30.770 --> 00:24:36.260 Vortrag. Das, also absolut krass. Weiß ich überhaupt nicht wie man das in Worte 00:24:36.260 --> 00:24:41.360 fassen soll, was ihr da als Team in kurzer Zeit auf die Bühne gestellt habt. 00:24:41.360 --> 00:24:45.500 Spannende Frage aus dem Chat war natürlich: Wem habt ihr denn die Server 00:24:45.500 --> 00:24:49.580 geklaut? Für wen waren die eigentlich gedacht? Und Strom kommt aus der 00:24:49.580 --> 00:24:52.400 Steckdose? Oder hat ihr so ein großes Rechenzentrum, dass man da einfach 00:24:52.400 --> 00:24:57.920 beliebig hoch skalieren kann? Sebastian: Ja, die Server haben wir uns 00:24:57.920 --> 00:25:01.280 selber geklaut. Das war tatsächlich geplant für dieses Jahr, also für letztes 00:25:01.280 --> 00:25:04.550 Jahr, dass wir die Webhosting Plattform mal modernisieren und das der Kram eh 00:25:04.550 --> 00:25:10.310 rausfliegt, der alte Sun Kram. Wir hatten eigentlich geplant so ein Container Setup 00:25:10.310 --> 00:25:13.640 zu bauen. Da gab es aber irgendwie noch mal einen Showstopper und wir mussten das 00:25:13.640 --> 00:25:16.970 ganze Setup noch mal ein bisschen überdenken. Und das kam quasi genau 00:25:16.970 --> 00:25:21.890 zeitlich dahin, wo wir dann die Server dastehen hatten, aber noch nicht genau die 00:25:21.890 --> 00:25:26.870 Details ausgekaspert hatten und die dann quasi direkt verwenden konnten. Ja. Zum 00:25:26.870 --> 00:25:32.210 Platz: Wir haben wir haben Rechenzentrumsplatz und das mit dem Strom 00:25:32.210 --> 00:25:35.360 ist tatsächlich dann irgendwann auch mal ein Thema, wenn man so viele Server dann 00:25:35.360 --> 00:25:39.050 rein schmeißt. Aber da war es ganz gut, dass dann irgendwann die Sun Server 00:25:39.050 --> 00:25:42.140 rausgekommen sind, weil die brauchen ein paar kW pro Stück da kann man ein paar 00:25:42.140 --> 00:25:49.400 Linux Bleche rein tun. Tim: Ja. Super. Es kamen noch ein paar 00:25:49.400 --> 00:25:54.470 weitere Fragen. Ich guck schon ein bisschen auf die Uhr . Ich würde mal noch 00:25:54.470 --> 00:25:58.880 eine anreißen. Monitort ihr auch das Netzwerk mit Prometheus oder lasst ihr das 00:25:58.880 --> 00:26:02.600 nur auf die Server Dienste los? Wir hatte ja so ein paar Dashboards gesehen, die 00:26:02.600 --> 00:26:05.300 dann hauptsächlich sich auf die Server bezogen haben. 00:26:05.300 --> 00:26:10.692 Sebastian: Ja, wir machen ziemlich viel mittlerweile mit Prometheus. Also wir 00:26:10.692 --> 00:26:14.327 hatten früher so nix aus verschiedenen Dingen. Also zuletzt hatten wir für 00:26:14.327 --> 00:26:17.995 Netzwerk libreNMS groß im Einsatz. Mittlerweile machen wir sehr viel mit 00:26:17.995 --> 00:26:22.606 Prometheus. Weil es sehr flexibel ist, weil es ja Exporter für alles Mögliche 00:26:22.606 --> 00:26:29.284 gibt. Und also auch Netzwerk gehört dazu. Tim: Ok. Ja vielen Dank. Es waren noch 2, 00:26:29.284 --> 00:26:36.011 3 weitere Fragen. Ich würd dir die einfach dann noch später schicken für deinen 00:26:36.011 --> 00:26:41.345 technical Write-Up. Man findet den Sebastian auch auf Twitter. Er ist auch im 00:26:41.345 --> 00:26:45.740 DENOG Twitter Feed entsprechend verlinkt. Oder ansonsten habt ja auch auf den Slides 00:26:45.740 --> 00:26:49.688 seine E-Mail Adresse oder er ist noch im Chat unterwegs, wo ihr ihn gerne noch 00:26:49.688 --> 00:26:53.298 ansprechen könnt. Vielen Dank, Sebastian. Sehr cooler Vortrag. 00:26:53.298 --> 00:26:54.650 Sebastian: Dankeschön. 00:26:54.650 --> 00:26:57.000 Untertitel erstellt von c3subtitles.de im Jahr 2021. Mach mit und hilf uns!