From be3b1d8f91b7e9a42dee9083ee0e9ebf52bbc57f Mon Sep 17 00:00:00 2001
From: LUXEY Adrien <adrien.luxey@inria.fr>
Date: Fri, 30 Apr 2021 10:21:15 +0200
Subject: created doc/talks subfolder and added my talk and the previous one
 done at the wide team

---
 doc/talks/2021-04-28_spirals-team/garage.tex | 147 +++++++++++++++++++++++++++
 1 file changed, 147 insertions(+)
 create mode 100644 doc/talks/2021-04-28_spirals-team/garage.tex

(limited to 'doc/talks/2021-04-28_spirals-team/garage.tex')

diff --git a/doc/talks/2021-04-28_spirals-team/garage.tex b/doc/talks/2021-04-28_spirals-team/garage.tex
new file mode 100644
index 00000000..9f953602
--- /dev/null
+++ b/doc/talks/2021-04-28_spirals-team/garage.tex
@@ -0,0 +1,147 @@
+\section{Introducing Garage}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}{Brought to you by the Deuxfleurs association}
+
+\begin{block}{\textbf{deuxfleurs.fr} -- a libre hosting association with a vision}
+``Shifting the current structure of the Internet from a world of a few very large service providers, to a world where services are hosted by a variety of smaller organisations.''	
+\end{block}
+
+
+\begin{block}{Our goals}
+\begin{itemize}
+	\item To propose performant \& reliable libre services for the masses
+	\item To host and administer our infrastructure ourselves
+	\item To allow members to contribute storage/compute nodes
+	\item Resilience: for availability \& the sysadmins' sleep 
+	\item Conceptual simplicity to ease onboarding \& demistify hosting
+\end{itemize}
+\end{block}
+
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}{The lacking state of the practice}
+
+\begin{block}{Object storage fitted our needs}
+\begin{itemize}
+	\item Distributed by design
+	\item Objects are replicated
+	\item Conceptually simple
+\end{itemize}
+\end{block}
+\vfill 
+
+\begin{block}{Existing object stores did not}
+	\begin{itemize}
+		\item Too specific / complex 
+		\item Resource hungry 
+		\item Hidden constraints 
+	\end{itemize}
+\end{block}
+\vfill
+
+We developed Garage, an object store with minimal functionality.
+
+It works, and serves our static sites and media.
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}{Introducing Garage}
+
+\centering
+\url{garagehq.deuxfleurs.fr}
+
+\url{git.deuxfleurs.fr/Deuxfleurs/garage}
+
+\includegraphics[width=.4\columnwidth]{figures/garage_distributed.png}
+\vfill
+
+\raggedright
+\begin{itemize}
+	\item Distributed data store
+	\item Based on DynamoDB object store (P2P!)
+	\item Modular data types/protocols with CRDTs:
+	\begin{itemize}
+		\item Done: objects (media, static sites, backups...) via S3 API 
+		\item To do: e-mails via IMAP protocol, and more
+	\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[t]{The \textbf{RING}}
+
+\centering
+\fullcite{decandia_dynamo:_2007}
+\vspace{3ex}
+
+\only<1>{\includegraphics[width=.5\columnwidth]{figures/c1.pdf}}%
+\only<2>{\includegraphics[width=.5\columnwidth]{figures/c2.pdf}}%
+\only<3>{\includegraphics[width=.5\columnwidth]{figures/c3.pdf}}%
+\only<4>{\includegraphics[width=.5\columnwidth]{figures/c4.pdf}}%
+\vspace{5ex}
+
+%\raggedright
+\only<1>{Each node is assigned a unique ID on the circular address space.}%
+\only<2-3>{When a new object is added to the store...}%
+\only<3>{\\ It is assigned a unique ID (its \emph{key}) on the address space.}%
+\only<4>{The $R$ nodes after the object are in charge of replicating it.}%
+
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}{Distributed metadata}
+
+\centering
+\includegraphics[width=.8\columnwidth]{figures/garage_tables.pdf}
+\vfill
+
+The objects, versions and blocks are all stored in the ring.
+
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}{Written in Rust}
+
+\begin{columns}
+\column{.65\columnwidth}
+Entirely written in Rust!
+\column{.35\columnwidth}
+\centering
+\includegraphics[width=.85\columnwidth]{figures/rustacean-flat-happy.png}
+\end{columns}
+\vfill
+
+\begin{columns}
+\column[t]{.6\columnwidth}
+	\textbf{Pros:}
+	\begin{itemize}
+		\item Compiled and fast
+		\item Features prevent usual mistakes:
+
+		strongly typed, immutable by default, ownership instead of GC...
+
+		\item Best of several paradigms:
+
+		imperative, OO, functional
+
+		\item Good libraries for network programmings:
+
+		serialization, http, async/await...
+	\end{itemize}
+\column[t]{.4\columnwidth}
+	\textbf{Cons}:
+	\begin{itemize}
+		\item Steep learning curve
+		\item Long compilation times
+		\item Compiler rage
+	\end{itemize}
+\end{columns}
+
+\end{frame}
\ No newline at end of file
-- 
cgit v1.2.3

