Presentations-revealjs/index.html
2024-10-04 10:45:07 +02:00

172 lines
5.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Make.org Infra</title>
<link rel="stylesheet" href="reveal.js/dist/reset.css">
<link rel="stylesheet" href="reveal.js/dist/reveal.css">
<link rel="stylesheet" href="reveal.js/dist/theme/moon.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="reveal.js/plugin/highlight/monokai.css">
<!-- Font awesome is required for the chalkboard plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Custom controls plugin is used to for opening and closing annotation modes. -->
<script src="https://cdn.jsdelivr.net/npm/reveal.js-plugins@latest/customcontrols/plugin.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js-plugins@latest/customcontrols/style.css">
<!-- Chalkboard plugin -->
<script src="https://cdn.jsdelivr.net/npm/reveal.js-plugins@latest/chalkboard/plugin.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js-plugins@latest/chalkboard/style.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js-plugins/menu/font-awesome/css/fontawesome.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown data-separator="^\n---\n$" data-separator-vertical="^\n--\n$">
<script type="text/template">
# Make.org Infrastructure
#### The open-source ~warmachine~ peacemachine
![make_logo](images/make_logo.png)<!-- .element height="100px" width="200px"
position="absolute" bottom="0" right="0"-->
![make_foundation_logo](images/make_foundation_logo.png)<!-- .element height="100px" width="200px"
position="absolute" bottom="0" right="0"-->
![alex_avatar](images/zaeroses2.png)<!-- .element height="100px" "width=200px"
position="absolute" bottom="0" right="0"-->
---
## Plan
1. Introduction
2. Aperçu de l'infra
3. CI/CD
4. Récap'
5. Et après?
---
## Introduction
--
### Make.org c'est:
* 35 serveurs bare-metal + 2 VPS sous CentOS chez OVH
* 2 environnements (prod+preprod) iso (ou presque)
* Une orchestration assurée par Chef Infra
* Une CI/CD gérée via Gitlab et mue par des runner GCP/self-hosted
* 19 services dans Docker Swarm
* 2 DB hostés + 3 DB managés / env
* 4 services clusterisés
* Un uptime du front à 99.92% depuis Novembre
* 1.5 SRE
---
## Aperçu de l'infra
--
![infra](images/infra.png)
---
## CI/CD
--
### Flow CI/CD
![cicd](images/cicd.png)
* Gitlab
* Tâches lancées par Rundeck
* Docker-Machine
* CI/CD templatisée
---
## Récap'
--
### Là ou c'est beau
* Code testé, buildé, déployé et mergé automatiquement (ou presque)
* Très peu de conf "snowflake"
* Service clusterisés (avec et sans Docker Swarm)
* Une capacité de montée charge importante
* Hébergé en Europe
* Aucun incident grave à notre charge
---
## Et après?
* Kubernetes
* AlmaLinux
* Backup Cassandra
* Amélioration logging
* Grafana dashboard refacto
* Divers housekeeping
* Mise à jour infrastructure
* Robo-cat
* Et j'en passe
</script>
</section>
</div>
</div>
<script src="reveal.js/dist/reveal.js"></script>
<script src="reveal.js/plugin/notes/notes.js"></script>
<script src="reveal.js/plugin/markdown/markdown.js"></script>
<script src="reveal.js/plugin/highlight/highlight.js"></script>
<script src="reveal.js/plugin/zoom/zoom.js"></script>
<script src="custom_plugins/mermaid/mermaid.js"></script>
<script src="custom_plugins/pdfexport/pdfexport.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
controls: true,
progres: true,
history: true,
center: true,
slideNumber: true,
overview: true,
width: 1280,
heigth: 960,
margin: 0.04,
customcontrols: {
controls: [
{ icon: '<i class="fa fa-pen-square"></i>',
title: 'Toggle chalkboard (B)',
action: 'RevealChalkboard.toggleChalkboard();'
},
{ icon: '<i class="fa fa-pen"></i>',
title: 'Toggle notes canvas (C)',
action: 'RevealChalkboard.toggleNotesCanvas();'
}
]
},
// mermaid initialize config
mermaid: {
// flowchart: {
// curve: 'linear',
// },
},
// Learn about reveal.js/plugins: https://revealjs.com/reveal.js/plugins/
plugins: [ RevealMarkdown, RevealMermaid, RevealHighlight, RevealNotes, RevealZoom, PdfExport, RevealChalkboard, RevealCustomControls],
});
</script>
</body>
</html>