\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}
