2020-11-30 14:54:31 +00:00
%\nonstopmode
\documentclass [aspectratio=169] { beamer}
\usepackage [utf8] { inputenc}
% \usepackage[frenchb]{babel}
\usepackage { amsmath}
\usepackage { mathtools}
\usepackage { breqn}
\usepackage { multirow}
\usetheme { Luebeck}
\usepackage { graphicx}
%\useoutertheme[footline=authortitle,subsection=false]{miniframes}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate { footline}
{ %
\leavevmode %
\hbox { \begin { beamercolorbox} [wd=.15\paperwidth ,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fill]{ author in head/foot} %
\usebeamerfont { author in head/foot} \insertframenumber { } / \inserttotalframenumber
\end { beamercolorbox} %
\begin { beamercolorbox} [wd=.2\paperwidth ,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]{ author in head/foot} %
\usebeamerfont { author in head/foot} \insertshortauthor
\end { beamercolorbox} %
\begin { beamercolorbox} [wd=.65\paperwidth ,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{ title in head/foot} %
\usebeamerfont { title in head/foot} \insertshorttitle ~--~\insertshortdate
\end { beamercolorbox} } %
\vskip 0pt%
}
\usepackage { tabu}
\usepackage { multicol}
\usepackage { vwcol}
\usepackage { stmaryrd}
\usepackage { graphicx}
\usepackage [normalem] { ulem}
\title [Garage : jouer dans la cour des grands quand on est un hébergeur associatif] { Garage : jouer dans la cour des grands \\ quand on est un hébergeur associatif}
\subtitle { (ou pourquoi on a décidé de réinventer la roue)}
\author [Q. Dufour \& A. Auvolat] { Quentin Dufour \& Alex Auvolat}
\date [02/12/2020] { Mercredi 2 décembre 2020}
\begin { document}
\begin { frame}
2020-12-01 12:46:23 +00:00
\titlepage
2020-11-30 14:54:31 +00:00
\end { frame}
\begin { frame}
2020-11-30 16:32:37 +00:00
\frametitle { La question qui tue}
\begin { center}
\includegraphics [scale=3] { img/sync.png} \\
\Huge Pourquoi vous n'hébergez pas vos fichiers chez vous ? \\
\end { center}
2020-11-30 14:54:31 +00:00
\end { frame}
2020-11-30 16:32:37 +00:00
\begin { frame} [t]
\frametitle { La cour des grands}
2020-12-01 12:46:23 +00:00
\begin { columns} [t]
\begin { column} { 0.5\textwidth }
{ \huge Le modèle du cloud...}
\begin { center}
\includegraphics [scale=0.08] { img/cloud.png}
\end { center}
2020-11-30 16:32:37 +00:00
2020-12-01 12:46:23 +00:00
+ \underline { intégrité} : plus de perte de données
+ \underline { disponibilité} : tout le temps accessible
+ \underline { service} : rien à gérer
\vspace { 0.15cm}
\textbf { changement des comportements}
\end { column}
\pause
\begin { column} { 0.5\textwidth }
{ \huge ...et son prix}
\begin { center}
\includegraphics [scale=0.07] { img/dc.jpg}
\end { center}
- matériel couteux et polluant
- logiciels secrets
- gestion opaque
\vspace { 0.2cm}
\textbf { prisonnier de l'écosystème}
\end { column}
\end { columns}
2020-11-30 14:54:31 +00:00
\end { frame}
2020-11-30 16:32:37 +00:00
\begin { frame} [t]
\frametitle { Garage l'imposteur}
2020-12-01 12:46:23 +00:00
\begin { columns} [t]
\begin { column} { 0.5\textwidth }
{ \huge Ressemble à du cloud...}
\begin { center}
\includegraphics [scale=0.5] { img/shh.jpg}
\end { center}
+ \underline { compatible} avec les apps existantes
+ \underline { fonctionne} avec le mobile
+ \underline { s'adapte} aux habitudes prises
\end { column}
\pause
\begin { column} { 0.5\textwidth }
{ \huge ...fait du P2P}
\begin { center}
\includegraphics [scale=1] { img/death.jpg}
\end { center}
\vspace { 0.4cm}
+ \underline { contrôle} de l'infrastructure
+ \underline { transparent} code libre
+ \underline { sobre} fonctionne avec de vieilles machines à la maison
\end { column}
\end { columns}
2020-11-30 16:32:37 +00:00
2020-12-01 12:46:23 +00:00
\end { frame}
2020-11-30 16:32:37 +00:00
2020-12-01 12:46:23 +00:00
\graphicspath { { img/} }
2020-11-30 16:32:37 +00:00
2020-12-01 12:46:23 +00:00
\begin { frame}
\frametitle { Mais donc, c'est quoi Garage ?}
\begin { columns} [t]
\begin { column} { 0.5\textwidth }
\centering
\textbf { Un système de stockage distribué}
\vspace { 1em}
2020-12-01 13:31:13 +00:00
\includegraphics [width=.7\columnwidth] { img/garage_ distributed.pdf}
2020-12-01 12:46:23 +00:00
\end { column}
\pause
\begin { column} { 0.5\textwidth }
\centering
\textbf { qui implémente l'API S3}
\vspace { 2em}
\includegraphics [width=.7\columnwidth] { img/Amazon-S3.jpg}
\end { column}
\end { columns}
\end { frame}
2020-11-30 16:32:37 +00:00
2020-12-01 12:46:23 +00:00
\begin { frame}
\frametitle { Consistent Hashing (DynamoDB)}
\textbf { Comment répartir les fichiers sur les différentes machines ?}
\vspace { 1em}
\centering
2020-12-01 16:42:13 +00:00
\only <1>{ \includegraphics [width=.55\columnwidth] { img/consistent_ hashing_ 1.pdf} } %
\only <2>{ \includegraphics [width=.55\columnwidth] { img/consistent_ hashing_ 2.pdf} } %
\only <3>{ \includegraphics [width=.55\columnwidth] { img/consistent_ hashing_ 3.pdf} } %
\only <4>{ \includegraphics [width=.55\columnwidth] { img/consistent_ hashing_ 4.pdf} } %
2020-11-30 16:32:37 +00:00
\end { frame}
2020-12-01 12:46:23 +00:00
2020-12-01 13:31:13 +00:00
\begin { frame}
\frametitle { Garage Internals : 3 niveaux de consistent hashing}
\centering
\includegraphics [width=.85\columnwidth] { img/garage_ tables.pdf}
\end { frame}
\begin { frame}
2020-12-01 16:42:13 +00:00
\frametitle { Modèles de cohérence}
Garage utilise un modèle de cohérence relativement faible :
\vspace { 1em}
2020-12-01 13:31:13 +00:00
2020-12-01 16:42:13 +00:00
\begin { itemize}
\item Objets répliqués 3 fois, quorum de 2 pour les lectures et les écritures\\
$ \to $ cohérence \textbf { ``read your writes''}
\vspace { 1em}
\item <2-> Types de donnée CRDT + mécanisme d'anti-entropie\\
$ \to $ cohérence \textbf { à terme} (eventual consistency)
\vspace { 1em}
\item <3-> Cela s'applique pour chaque fichier individuellement :\\
pas de linéarisabilté ou de cohérence causale entre les opérations\\
sur des fichiers différents
\vspace { 1em}
\item <4-> \textbf { Avantage :} convient bien à un déploiement géodistribué (multi-datacenter)
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { Rust : retour d'expérience}
2020-12-01 13:31:13 +00:00
\begin { columns}
2020-12-01 16:42:13 +00:00
\begin { column} { 0.55\textwidth }
Garage est entièrement écrit en Rust !
2020-12-01 13:31:13 +00:00
\vspace { 2em}
\textbf { Points forts :}
\vspace { .5em}
\begin { itemize}
\item Langage compilé, très rapide
\vspace { .5em}
\item Typage fort, beaucoup de sécurités
\vspace { .5em}
\item Le meilleur de plusieurs paradigmes:
fonctionnel, orienté objet, impératif
\vspace { .5em}
\item Un écosytème de librairies très complet:
serialisation, async/await, http, ...
\end { itemize}
\end { column}
2020-12-01 16:42:13 +00:00
\begin { column} { 0.45\textwidth }
2020-12-01 13:31:13 +00:00
\begin { centering}
2020-12-01 16:42:13 +00:00
\hspace { 2em} \includegraphics [width=0.55\columnwidth] { img/rustacean-flat-happy.png}
2020-12-01 13:31:13 +00:00
\end { centering}
2020-12-01 16:42:13 +00:00
\vspace { 2em}
2020-12-01 13:31:13 +00:00
\textbf { Points faibles :}
\vspace { .5em}
\begin { itemize}
\item Les temps de compilation...
\vspace { .5em}
\item Compliqué à apprendre
\end { itemize}
2020-12-01 16:42:13 +00:00
\vspace { 2em}
2020-12-01 13:31:13 +00:00
\end { column}
\end { columns}
\end { frame}
2020-11-30 14:54:31 +00:00
\end { document}
%% vim: set ts=4 sw=4 tw=0 noet spelllang=fr :