\documentclass{beamer} \usepackage{graphicx} \usepackage{wrapfig} \graphicspath{ {./images/} } \usetheme{metropolis} %Usemetropolistheme \title{Ein Rechenzentrum zum Preis eines Multiroom Audio Systems} \date{\today} \author{Georg} \begin{document} \maketitle \begin{frame}{Wie alles began...} Ich will ein Multiroom-Audio-System! \begin{itemize} \item Musik in jedem Raum hören (Küche, Bad, 2 Zimmer) \item Zugriff auf gesamte Musikbibliothek \item Steuerung von jedem Gerät \end{itemize} \end{frame} \begin{frame}{Wie alles begann...} \includegraphics[width=\textwidth]{sonos} Gesamtpreis: 796 € \end{frame} \begin{frame}{Wieso die Idee blöd ist...} Mensch kauft kommerziellen Mist ... \begin{itemize} \item ... den man nicht hacken kann ... \item ... den man nicht reparieren kann ... \item ... der nur eine Sache kann ... \item ... der Nutzer*innen in ein Ökosystem einsperrt ... \item ... der sau teuer ist \end{itemize} \end{frame} \begin{frame}{Disclaimer} Es gibt auch noch andere kommerzielle Angebote dieser Art, die genauso blöd sind. Und es geht sogar noch blöder: Mit Google Home oder Alexa gibt es Überwachung GRATIS OBEN DRAUF!!! \end{frame} \begin{frame}{Was dann?} \begin{wrapfigure}{r}{0.5\textwidth} \centering \includegraphics[width=0.5\textwidth]{snapcast} \end{wrapfigure} Setup: \begin{itemize} \item 4 Raspberry Pi \item 4 günstige Boxen oder Stereoanlagen \item Mopidy als Musikquelle (Dateien, Internetradio, Funkwhale ...) \item Snapcast als Multiroom-"Verteiler" \end{itemize} \end{frame} \begin{frame}{Kosten} \begin{itemize} \item 4 * Raspberry Pi = 4 * 50€ \item 4 * Stereoanlage/Boxen = 4 * 50€ \item Summe: 400€ \item Rest: 396€ \end{itemize} \end{frame} \begin{frame}{Das "Problem"} \includegraphics[width=\textwidth]{langeweile} Langeweile bei Mensch und Gerät \end{frame} \begin{frame}{Die Möglichkeiten} \begin{itemize} \item eine Spielwiese zum experimentieren \item im lokalen Netzwerk Daten verfügbar machen \item Webservices hosten? \end{itemize} \end{frame} \begin{frame}{1. Erweiterung: NAS} \begin{block}{NAS} Network Attached Storage (NAS, englisch für netzgebundener Speicher) bezeichnet einfach zu verwaltende Dateiserver. \end{block} \end{frame} \begin{frame}{1. Erweiterung: NAS} Hardware: \begin{itemize} \item RockPro64 \item PCIe SATA-Adapter \item 2 x 1TB HDD \item Summe: 125€ \item Rest: 271€ \end{itemize} \end{frame} \begin{frame}{1. Erweiterung: NAS} Software \begin{itemize} \item openmediavault (einfach zu installieren, viele Features) \item Wechsel zu dietpi + mdadm RAID + Einbindung auf Notebooks via sshfs \end{itemize} \end{frame} \begin{frame}{2. Erweiterung: Docker Swarm} \begin{columns}[t] \begin{column}{0.5\textwidth} \begin{block}{einzelner Server} \begin{itemize} \item Bündelung der Hardware in ein System \item kaum zusätzlicher Verwaltungsaufwand \end{itemize} \end{block} \end{column} \begin{column}{0.5\textwidth} \begin{block}{verteiltes System} \begin{itemize} \item Verteilung der Hardware auf mehrere Systeme \item Spezialisierung möglich \item vermeintlich höhere Ausfallsicherheit \item einfache Erweiterbarkeit \end{itemize} \end{block} \end{column} \end{columns} \end{frame} \begin{frame}{2. Erweiterung: Docker Swarm} \begin{wrapfigure}{r}{0.5\textwidth} \centering \includegraphics[width=0.3\textwidth]{cake} \end{wrapfigure} Features: \begin{itemize} \item Aufbrechen der Dienste in Unteraufgabenaufgaben \item Zuteilung der Unteraufgaben an Worker \item Reaktion auf Ausfälle einzelner Worker \item Load-Balancing \end{itemize} \end{frame} \begin{frame}{2. Erweiterung: Docker Swarm} \center \includegraphics[width=\textwidth]{ingress-routing-mesh} \end{frame} \begin{frame}{2. Erweiterung: Docker Swarm} aktuelle Services: \begin{itemize} \item Gitea \item Drone CI \item Grafana \item Prometheus \item Cryptpad \end{itemize} \end{frame} \begin{frame}{3. Erweiterung: GlusterFS} \begin{block}{Problem} Wenn das NAS ausfällt, fallen ALLE Dienste aus, weil die Daten nicht mehr verfügbar sind. \end{block} \begin{block}{SPOF} Unter einem Single Point of Failure (kurz SPOF bzw. deutsch einzelner Ausfallpunkt) versteht man einen Bestandteil eines technischen Systems, dessen Ausfall den Ausfall des gesamten Systems nach sich zieht. \end{block} \begin{block}{Lösungsansatz} verteilte Dateisysteme: Ceph, Gluster \end{block} \end{frame} \begin{frame}[t]{3. Erweiterung: GlusterFS} \begin{wrapfigure}{l}{0.5\textwidth} \centering \includegraphics[width=0.5\textwidth]{replicated} \includegraphics[width=0.5\textwidth]{distributed} \end{wrapfigure} Features: \begin{itemize} \item Spiegelung \item Verteilung \item Erasure Code \item Geo-Replication \end{itemize} \end{frame} \begin{frame}{Exkurs: Erasure Codes} \includegraphics[width=\textwidth]{erasure} \end{frame} \begin{frame}{3. Erweiterung: GlusterFS} Hardware: \begin{itemize} \item HDDs recycelt aus Notebooks + SATA-USB-Adapter (35€) \item übrigens Geld: 236€ \item Spendenaufruf: 2,5" HDDs/SSDs, gern alt \end{itemize} \end{frame} \begin{frame} \includegraphics[width=\textwidth]{nest} \end{frame} \begin{frame}{Ausblick} \begin{itemize} \item Ordnung machen \item Mehr Dienste \item ... Vorschläge? :) ... \end{itemize} \end{frame} \begin{frame} Fragen?\\ \pause Vielen Dank fürs zuhören. DIY ftw, squat the web! \end{frame} \end{document}