diff --git a/content/slides/cri/criprod.html b/content/slides/cri/criprod.html new file mode 100644 index 0000000000000000000000000000000000000000..c4dc422bc843cb0ca1ef6970875c4d7916d97e2c --- /dev/null +++ b/content/slides/cri/criprod.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>criprod</title> + + <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css"> + <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css"> + + <!-- Theme used for syntax highlighting of code --> + <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css"> + <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="../main.css"> + + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="md/criprod.md" + data-separator="^\n\n\n" + data-separator-vertical="^\n\n" + data-separator-notes="^Note:" + data-charset="utf-8"> + </section> + </div> + </div> + + <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script> + <script src="../../node_modules/reveal.js/js/reveal.js"></script> + + <script> + // More info about config & dependencies: + // - https://github.com/hakimel/reveal.js#configuration + // - https://github.com/hakimel/reveal.js#dependencies + Reveal.initialize({ + controls: true, + progress: true, + history: true, + center: false, + dependencies: [ + { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' }, + { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' }, + { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true }, + { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } + ] + }); + </script> + </body> +</html> diff --git a/content/slides/cri/images/apero.gif b/content/slides/cri/images/apero.gif new file mode 100644 index 0000000000000000000000000000000000000000..aadbda372892e443593781eef396d68bf560e08e Binary files /dev/null and b/content/slides/cri/images/apero.gif differ diff --git a/content/slides/cri/md/criprod.md b/content/slides/cri/md/criprod.md new file mode 100644 index 0000000000000000000000000000000000000000..705489904656ec89a7614c38629cf7aaffabc57d --- /dev/null +++ b/content/slides/cri/md/criprod.md @@ -0,0 +1,212 @@ +# criprod +#### l'informatique qui marche! + + +## galactica + +* navire sans capitaine +* plus d'image package +* plus de support sur les problèmes +* pas de mise à jour de la plateforme +* héberge des services critiques + +* fonctionne à date +* ok pour la recherche +* source d'inspiration + + +## Et si ... + +on réfléchissait au prochain système de virtualisation + +* maintenable +* redéployable +* scalable +* utilisable + +## par tous! + +fini les SPOFs + +#### on gère tous un datacenter home made! + + +## loi de Murphy + +* tout cassera à un moment ou à un autre + * mauvaise config + * mise à jour foireuse + * piratage + * panne matérielle + +au plus mauvais moment si possible + + +## loi de Murphy + +* réparer c'est bien mais ce n'est pas toujours possible + * temps d'investigation + * données perdues + * configuration manquantes + * expertise + + +## Alors? + +* On redéploie + * vite + * souvent + * les yeux fermés + * tout le datacenter de préférence + * toutes les machines et tous les services + + +## komankonfé + +il nous faut + +* des routines de sauvegarde +* des routines de déploiement +* des routines de restauration + + +## en terme de ressources ... + +* 2 (cluster d')hyperviseurs + * un pour la prod + * un pour la redondance + +* un serveur pour + * sauvegarder la prod + * déployer et restaurer tous les services sur l'hyperviseur + + +# TOUTES LES NUITS! + + +## chaque service a un double + +* prêt à prendre le relais +* tous les déploiements sont testés toutes les nuits + +### On a plus peur! + + +## et t'as des machines pour ça + +* récupérons tout + * on veut que ça pète + * pour se persuader qu'on sait remonter les yeux fermés + + +#### Pour faire de la bonne cuisine il faut ... + +* des outils / ustensiles + * un **cluster** d'hyperviseur **proxmox** + * **terraform** pour crééer TOUTES les VMs nécessaires à nos services + * **terraform** maintient l'état (en term d'inventaire) de notre **datacenter** + + +#### Pour faire de la bonne cuisine il faut ... + +* des recettes + * des déploiements automatisé avec **ansible** ou **maison** + * versionnés sur un **gitlab** accessible en ldap ET avec le mot de passe root + +* des ingrédients + * un gestionnaire de secret **vault** accessible en ldap ET avec le mot de passe root + + +## PCA / PRA + +* Donnez nous + * un **gitlab** avec les bonnes recettes de déploiement + * un fichier texte **terraform** décrivant l'état du datacenter + * les mots de passe nécessaires au déploiement + +## Et on reconstruit tout! +### en 1 ligne de commande + + +### Est ce qu'on fait pas chier pour rien? + +* les routines de déploiements + * sont agnostiques de l'hyperviseur + * sont autodocumentées + +* l'infra est reproductible + * sur aws, google cloud, ... + * sur openstack (mouahahaha!) + +c'est un bonne opportunité de peaufiner le nettoyage entamer il y bientôt 2 ans + + +# les devs peuvent nous aider +## si on dit s'il te plaît + + +## On pourra mettre "DevOps" comme skills linkedin ... + +## ... Et parler de sujet fun à l'apéro ;) + + +## Next step 1 + +* présentation de **proxmox** + * son installation (william) + * son utilisation avec **terraform** + +* réflexion pour que tout le cri (voir l'équipe dev) puissent créer des vms + * chacun pousse sa vms avec un playbook offert pour la maison + * y a rien à casser + + +## Next step 2 + +* Présentation d'**ansible** au travers de 3 services: **gitlab**, **vault**, **my isima** + +* réflexion pour que tout le cri ait en tête les bonnes pratiques pour écrire & architecturer correctement ses playbooks ansible ou maison + * un projet a un cycle de vie probablement standard (install, configure, initialize, restore, backup) + + +## Next step 3 + +* Présentation de **vault** + * consulter / écrire des secrets + +* réflexion pour automatiser l'écriture des secrets dans la configuration de nos playbooks + * les devs peuvent nous aider + + +## Next step 4 + +* Présentation de HaProxy et de la gestion des certificats **SSL** + * créer une entrée dans **HaProxy** + * créer une entrée dans **Bind** + * rendre une machine visible sur un port + * installer son certificat + +* réflexion pour automatiser l'écriture de la configuration **HaProxy**, **DNS**, et **ssl** + * les devs peuvent nous aider + + +## Next step 5 + +* mise en place du backup et du cluster backup avec redéploiement automatique quotidien +* chacun migre ses services + * et se pose la question de son binôme pour ce service + + +## Next step 6 + +* c'est déjà la rentrée ;) + + +## Next step 7 + +* démontage de galactica au profit de cluster de proxmox pour la recherche ;) + + +## Next step 8 + +<!-- .element: width="85%" --> diff --git a/content/slides/index.html b/content/slides/index.html index 09ed33a97184e865897f6411a2543915c758c98c..1429b9398dcc2f30fb3ac977f4555d60c1fc005e 100644 --- a/content/slides/index.html +++ b/content/slides/index.html @@ -1,3 +1,9 @@ +<h3>cri</h3> + +<li><a href="cri/criprod.html">criprod</a></li> + +<h3>cours</h3> + <li> <a href="privacy/jnarac.html">je n'ai rien à cacher</a> <ul>