Starting references to Release It by Michael T Nygard

This commit is contained in:
Fred Pauchet 2023-04-14 21:51:29 +02:00
parent ae881a52fe
commit 32517aa7b1
3 changed files with 30 additions and 0 deletions

View File

@ -21,6 +21,17 @@ Au niveau des composants destinés à épauler ces applications, nous pouvons di
\textbf{Les composants de supervision}, qui permettent de s'assurer que tout fonctionne correctement, et qu'aucun incident n'est prévu ou n'a été constaté récemment.
\end{enumerate}
\textit{Designing for production} means thinking about production issues as first-class concerns: \cite[pp. 142-143]{release_it}:
\begin{itemize}
\item \textbf{Operations}: Security, availablity, capacity, status, communication,
\item \textbf{Control plane}: Monitoring, deployment, anomaly detection, new features
\item \textbf{Interconnect}: Routing, load balancing, failover, traffic management
\item \textbf{Instances}: Services, processes, components, instance monitoring
\item \textbf{Foundation}: Hardware, VMs, IP addresses, physical network.
\end{itemize}
\section{Composants fonctionnels}
\begin{figure}[H]
@ -164,6 +175,19 @@ Au niveau logiciel (la partie mise en subrillance ci-dessus), la requête arrive
https://circus.readthedocs.io/en/latest/, https://uwsgi-docs.readthedocs.io/en/latest/, statsd
\begin{quote}
When we crash an actor or a process, how does a new one get started ?
You could write a bash script with a while() loop in it.
But what happens when the problem persists across restarts ?
The script basically fork-bombs the server. \cite[p. 109-110]{release_it}
\end{quote}
Actors system use a hierarchical tree of supervisors to manage the restarts.
Whenever an actor terminates, the runtime notifies the supervisor.
The supervisor can then decide to restart the child actor, restart all of its children, or crash itself.
If the supervisor crashes, the runtime will terminate all its children and notify the supervisor's supervisor.
Ultimately you can get while branches of the supervision tree to restart with a clean state.
\subsection{Journaux d'évènements}

View File

@ -1064,7 +1064,9 @@ Cet élément peut être:
\subsubsection{Ignorer une ligne de code}
\begin{listing}
\end{listing}
\subsubsection{Ignorer un bloc de code}

View File

@ -100,6 +100,10 @@
isbn = {978-1-449-37332-0},
release = {Fifteenth release - 2021-03-26}
}
@book{release_it,
title = {Release It!},
author = {Michael T. Nygard}
}
@book{rework,
title = {Rework},
author = {David Heinemeier Hansson and Jason Fried},