Betrieb und ein eigenes Mitglied (Meilenstein 4)
Auftrag
«Die fünfte Organisation hat ja gesagt», schreibt Simone Wyss. «Jetzt brauchen wir alles, was der Vorstand verlangt hat. Eine Einschätzung des Schutzbedarfs, ein SLA und einen Preis. Sie soll sicher und mit Backup auf unserer Plattform laufen. Und wenn bei ihr etwas schiefgeht, will ich danach einen ehrlichen Bericht.»
Meilenstein 4 umfasst Teil 6. In der Basis härtest du die Plattform, sicherst Cluster und VMs und stellst eine VM wieder her. In den Zusatzaufträgen entwirfst du ein fünftes Mitglied von Wolkenwerk Bern selbst, bringst es auf deine Plattform, gibst ihm ein SLA und einen Preis und schreibst nach einem Vorfall ein Postmortem. Meilenstein 4 gehört mit Meilenstein 3 zur Abgabe 2.
Alles läuft in deinem eigenen Lab mit deinen persönlichen Parametern aus Kapitel 0.3. Die Basis umfasst sieben Anforderungen.
- Das Front-end ist mit der Firewall gehärtet, SSH nimmt nur noch Schlüssel an.
- Das Passwort von Grafana kommt als SealedSecret aus Git.
- Die Namespaces der Mitglieder laufen mit dem Profil
restrictedder Pod Security, du zeigst einen abgewiesenen Pod. - Der Cluster k3s läuft mit etcd und Snapshots, ein Timer kopiert die Snapshots auf das Front-end.
- Der Backup-Datastore ist angelegt. Ein Backup-Job sichert eine VM jede Nacht zur Zeit aus deinen persönlichen Werten und behält so viele Backups, wie sie verlangen.
- Du hast die VM aus ihrem Backup wiederhergestellt.
- Der Check
m4ist grün.
Die Basis belegst du mit dem Bericht des Checks m4 und mit einem Screenshot zu jeder Anforderung, dessen Dateiname mit ihrer Nummer beginnt. Den Bericht erzeugt python3 ~/cc/checks/check.py m4 auf dem Front-end. Für die Sicherung genügt die VM praxis-1 aus Kapitel 6.2. Machst du Zusatzauftrag A, kann es stattdessen die VM deines eigenen Mitglieds sein.
Zusatzaufträge
Abschnitt betitelt „Zusatzaufträge“Für die drei Zusatzaufträge rechnest du mit vier bis sechs Stunden. Jeder gibt 0 bis 3 Punkte nach den Stufen der Zusatzaufträge. Zu jedem Auftrag, den du machst, gehört eine Dokumentation in fünf Teilen. Die Aufträge B und C bauen auf dem Mitglied aus Auftrag A auf. Auftrag A braucht deinen Triage-Dienst aus Zusatzauftrag B von Meilenstein 3, Auftrag C das Sprachmodell aus Zusatzauftrag A von Meilenstein 3. Die Konzepte dazu und die Anforderungen an jeden Auftrag stehen in Kapitel 6.5.
Ein eigenes Mitglied (Auftrag A)
Abschnitt betitelt „Ein eigenes Mitglied (Auftrag A)“Du entwirfst ein fünftes Mitglied von Wolkenwerk mit seinem Schutzbedarf und bringst es auf beide Ebenen deiner Plattform, mit Gruppe, Quota und VM in OpenNebula sowie einem Namespace aus der Vorlage mit seiner Anwendung im Cluster. Ein Alert der Anwendung erreicht deinen Triage-Dienst aus Zusatzauftrag B von Meilenstein 3. Du löst ihn über Git aus, entscheidest über den Vorschlag und behebst den Fehler. Ideen für das Mitglied und die Anforderungen stehen in Kapitel 6.5.
Cluster wiederherstellen und SLA (Auftrag B)
Abschnitt betitelt „Cluster wiederherstellen und SLA (Auftrag B)“Du stellst den Cluster aus einem Snapshot von etcd wieder her und misst die Zeit bis zum laufenden Zustand. Mit dieser Zeit und der Architektur deines Labs schreibst du ein SLA für dein Mitglied mit Verfügbarkeit, Supportzeiten, RPO und RTO. Die Wiederherstellung darfst du vor der Vorführung machen und dort ihre Spuren zeigen, etwa den Snapshot, die Zeiten und den Zustand danach. Die Anforderungen stehen in Kapitel 6.5, die Teile eines SLA in Kapitel 6.3.
Postmortem und Kostenmodell (Auftrag C)
Abschnitt betitelt „Postmortem und Kostenmodell (Auftrag C)“Zum Vorfall aus Auftrag A baust du ohne Modell eine Zeitlinie aus den Daten auf. Daraus schreibt das lokale Modell einen Entwurf des Postmortems, den du korrigierst. Du hältst fest, was stimmte, was falsch war und was du geändert hast. Dazu rechnest du ein Kostenmodell für dein Mitglied mit dem Preis pro Monat, dem Vergleich mit dem Showback und einem Vorschlag zum Right-Sizing. Die Anforderungen stehen in Kapitel 6.5, die Vollkosten in Kapitel 6.4.
Zusatzaufträge zeigen
Abschnitt betitelt „Zusatzaufträge zeigen“Die Zusatzaufträge zeigst du live im Unterricht oder in einem Screencast von höchstens zehn Minuten. Für die Vorführung im Unterricht vereinbarst du selbst einen Termin mit deiner Dozentin oder deinem Dozenten. Sie muss bis zur Abgabe 2 stattfinden. Der Screencast beginnt mit cat /etc/cc-lab.env und dem Bericht des Checks m4 mit Hash und deinen zwei Fragen, die du in der Vorführung beantwortest.
Im Ordner m4/ deines Abgabe-Repos liegen die Screenshots der Basis. Für die Zusatzaufträge kommen ihre Dokumentation und platform/ dazu, eine Kopie deines Repos platform aus Gitea ohne den Ordner .git, ohne State, Tokens und Passwörter. SealedSecrets dürfen drin sein. Für Auftrag A kommt das Audit-Log deines Triage-Dienstes dazu, für Auftrag C postmortem-entwurf.md vom Modell und postmortem.md mit deiner Korrektur, für die Vorführung der Screencast oder ein Link darauf. Eigene Skripte, etwa für die Zeitlinie, legst du dazu, falls sie nicht im Plattform-Repo stehen.
Das Token von k3s, den Schlüssel von Sealed Secrets und die Backups gibst du nicht ab. Die Berichte der Checks legst du in reports/. Wie das Repo aufgebaut ist und wie du einen Tag setzt, steht in der Übersicht.
Bewertungsraster
Abschnitt betitelt „Bewertungsraster“| Anforderung der Basis | Punkte |
|---|---|
| Front-end mit Firewall und SSH nur mit Schlüssel | 3 |
| Passwort von Grafana als SealedSecret aus Git | 3 |
Profil restricted für die Mitglieder, abgewiesener Pod gezeigt | 3 |
| etcd mit Snapshots, Timer kopiert sie auf das Front-end | 3 |
| Backup-Datastore und Backup-Job mit den persönlichen Werten | 3 |
| VM aus dem Backup wiederhergestellt | 3 |
Check m4 grün | 3 |
| Basis | 21 |
| Zusatzauftrag | Punkte |
|---|---|
| Eigenes Mitglied durchgehend mit Alert und Entscheidung (Auftrag A) | 3 |
| Cluster aus Snapshot mit gemessener Zeit, SLA für das Mitglied (Auftrag B) | 3 |
| Postmortem korrigiert, Kostenmodell für das Mitglied (Auftrag C) | 3 |
| Zusatz | 9 |
Meilenstein 4 gibt zusammen höchstens 30 Punkte. Eine Anforderung der Basis gibt 3 Punkte, wenn Bericht und Screenshot sie belegen, 2 Punkte bei grünem Check ohne passenden Screenshot und 1 Punkt, wenn sie nur teilweise erfüllt ist. Jede der zwei Fragen, die du nicht oder falsch beantwortest, kostet 1 Punkt der Zusatzaufträge. Fehlt die Dokumentation oder einer ihrer Teile 1, 2, 4 und 5, gibt ein Zusatzauftrag höchstens 1 Punkt.
Texte und Abbildungen stehen unter CC BY-SA 4.0 und der Code unter der MIT-Lizenz. Die Quellen liegen auf GitHub.