\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{float}
\usepackage{hyperref}
\usepackage[export]{adjustbox}
\usepackage[francais]{babel}
\usetheme{Montpellier}

\definecolor{light-blue}{rgb}{0.8,0.85,1}
\definecolor{mygrey}{gray}{0.75}

\title{%
  MBB - Workflow de réservation de nos machines SMP \\
  }
\author{Rémy Dernat}

\begin{document}

\maketitle

\frame
{
  \frametitle{Machines réservables}
  \begin{itemize}
    \item<1-> 3 \textbf{bigmems / \textasciitilde Dell PE R815} : \textit{512Go RAM / 64 coeurs et qqs To de stockage en local}
    \item<1-> 2 machines GPU type DevBox (3 à 4 cartes TitanXp)
  \end{itemize}
  \begin{figure}[H]
  \centering
  \includegraphics[scale=0.1]{nvidia-quad-titanxp-devbox-skylake-x.jpg}
  \end{figure}  
}

\frame
{
	\frametitle{Fonctionnement des réservations des machines performantes SMP - "bigmems"}
  \begin{enumerate}
    \item Réservation des utilisateurs dans GRR,
    \item Création d'un évènement dans Caldav (NextCloud) avec en résumé l'utilisateur et la date de commencement après validation par un admin de l'évènement dans GRR,
    \item Cron qui s'exécute sur un serveur SaltStack toutes les nuits pour vérifier si une réservation ne commence pas le jour même,
    \item Si une réservation commence (après analyse du résumé de l'évènement caldav), alors l'orchestrateur SaltStack va demander la réinstallation de la machine.
  \end{enumerate}
}

\frame
{
  \frametitle{GRR}
  \includegraphics[scale=0.15]{grr.png}
}

\frame
{
  \frametitle{caldav - nextcloud}
  \includegraphics[scale=0.15]{owncloud_caldav.png}
}

\frame
{
  \frametitle{Fonctionnement des réservations des machines performantes SMP - "bigmems"}
  \begin{itemize}
    \item<1-> L'orchestrateur SaltStack
    \begin{enumerate}
      \item \url{https://docs.saltstack.com/en/latest/topics/orchestrate/orchestrate_runner.html\#orchestrate-runner}
      \item Met à jour les données du serveur Salt et les serveurs TFTP (FAI \url{https://fai-project.org/}) pour ce client,
      \item Arrête les services clés sur le client, démonte les filesystem,
      \item Ordonne à la machine de rebooter,
      \item Supprime la clé du client à réinstaller,
      \item Attend (longtemps - après FAI) que la machine se réinstalle,
    \end{enumerate}
  \end{itemize}
  \begin{figure}[H]
  \centering
  \includegraphics[width=0.15\textwidth,right]{saltstack_logo.png}    
  \end{figure}  
}

\frame
{
  \frametitle{Orchestrateur SaltStack - extrait}
  \includegraphics[scale=0.18]{orchestrateur_salt.png}
}

\frame
{
  \frametitle{FAI - Class}
  \includegraphics[scale=0.18]{class_fai.png}
}

\frame
{
  \frametitle{Fonctionnement des réservations des machines performantes SMP - "bigmems"}
  \begin{itemize}
    \item<1-> L'orchestrateur SaltStack
    \begin{enumerate}
      \item Re-rajoute la machine dans Salt (rajout de la clé),
      \item Reformate les autres disques et les monte en Zfs,
      \item Déploie toutes les recettes particulières pour la machine,
    \end{enumerate}
    \item<1-> Le lendemain matin : envoie d'un mail à l'utilisateur pour vérifier que tout est Ok (son login, ses accès, ses points de montage, ...). \newline
    Actuellement cette sous-partie n'est pas totalement automatisée afin de vérifier manuellement que tout s'est bien installé.
  \end{itemize}
}

\frame
{
  \frametitle{Discussion}
  \begin{itemize}
    \item<1-> Temps nécessaire pour développer ce workflow => Beaucoup de temps (...), car :
    \begin{itemize}
      \item<1-> Légère modification de GRR pour créer des évènements caldav dans NextCloud,
      \item<1-> Création d'un client caldav en bash (...),
      \item<1-> Installation et configuration de FAI,
      \item<1-> + beaucoup de config Salt pour gérer orchestrateur, recettes DHCP + TFTP pour FAI + recettes spécifiques de la machine.
    \end{itemize}
  \end{itemize}
}

\frame
{
  \frametitle{Discussion}
  \begin{itemize}
    \item<1-> J'aurai pu limiter le travail de Salt avec plus de configurations FAI, \newline
    Mais : étapes de post-install préférables avec Salt car plus homogène avec le reste du parc (pour tout avoir dans Salt),
    \item<1-> L'insertion dans CalDav permet de voir les réservations sans aller dans GRR, mais en utilisant n'importe quel client caldav (ex : lightning/thunderbird),
    \item<1-> Réinstallation complète >1h00,
    \item<1-> Connexion cluster - noeud de calcul type conteneurs LXD sur bigmems,
    \item<1-> Environnement "propre" entre chaque utilisation,
  \end{itemize}
}

\frame
{
  \frametitle{Discussion}
  \begin{itemize}
    \item<1-> Nouvelles machines GPU réservables - Utilisation de conteneurs Docker (\textit{nvidia-docker}) et développement de quelques services spécifiques; beaucoup plus simple que tout ce qui a été fait précédemment, mais pas du bare-metal.
    \item<1-> Réutilisation des recettes précédentes + \textit{Banquise} pour gérer nos futurs clusters de calcul.
  \end{itemize}
}

\frame
{
  \frametitle{Contacts}
  \begin{itemize}
    \item<1-> remy.dernat@umontpellier.fr
  \end{itemize}
}

\end{document}
