aboutsummaryrefslogtreecommitdiff
path: root/doc/talks/2021-04-28_spirals-team/escaping_the_cloud.tex
blob: 9f1f13ba594c8e10b14192ee6ec17a8943929f74 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
\section{Escaping the cloud}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \begin{frame}{Down to Earth with home-hosting}


% \todo{Stanley Parabole reference?}

% \end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{Why?}

\begin{itemize}
	\item \textbf{Privacy}: no prying eyes besides your ISP
	\item \textbf{Control} of your infrastructure
	\item \textbf{Ecology}: reuse old hardware
\end{itemize}

\vfill
\begin{block}{\emph{Tim Berners-Lee} (1994)}
``Now, if someone tries to monopolize the Web, for example pushes proprietary variations on network protocols, then that would make me unhappy.''
\end{block}

\begin{itemize}
	\item Make Tim Berners-Lee happy
\end{itemize}

\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{What?}

\centering\Large
A data store for commodity hardware on heterogenous household connections. 


\vfill\raggedright\normalsize


\begin{block}{Targetting user-facing services}
\begin{itemize}
	\item Static sites 
	\item E-mails
	\item Instant communication
	%\item Video streaming % No need for a data store
	\item Collaboration 
\end{itemize}
\end{block}
\vfill

Nothing fancy like sensors data streams, AI or IoT.

\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{What?}


\begin{block}{Requirements}
\begin{itemize}
	\item \textbf{No single point of failure} / flat hierarchy: 

	Any node can die for extended periods of time.
	\item \textbf{Multi-site}: cluster spans regions/countries.
	\item \textbf{Acceptable performance}.
	\item \textbf{Lightweight}: targets legacy hardware.
	\item \textbf{Conceptually simple}: built for low-tech organisations.

	Adding/maintaining cluster nodes should be easy.
\end{itemize}
\end{block}
\vfill 

\begin{block}{Non-goals}
\begin{itemize}
	\item \textbf{Super badass performance}.
	\item \textbf{NAT traversal} etc.: we require full-mesh connectivity.
\end{itemize}
\end{block}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{How?}

\begin{itemize}
	\item Theoretically possible with object storage \& CRDTs.
	\vfill
	\item Household uplinks are getting decent (optical fibers).
\end{itemize}



\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{Research Questions}

\begin{itemize}
	\item Decent performance despite bad inter-node connectivity.
	\vfill

	\item Tailoring workloads as a function of nodes' capabilities:

	\begin{itemize}
		\item Make use of low-end nodes (e.g. Raspberry Pis),
		\item Avoid impeding global performance because of low-end nodes.
	\end{itemize}
	\vfill

	\item Building CRDTs for target use-cases:

	\begin{itemize}
		\item Software engineering: DSL or native code?
		\item Provide APIs to data store users? Risky?
	\end{itemize}
	\vfill

	\item Cluster management: effortless UX, low perf. overhead.
\end{itemize}
\end{frame}