Hackathon DevOps & Monitoring EPITECH 2020
Cette page présente une version détaillée des instructions pour le hackathon DevOps / Monitoring / Observabilité organisé par Bleemeo pour les étudiants de l'EPITECH en Février 2020.
Introduction
Bleemeo propose aux étudiants de l'EPITECH de venir découvrir les problématiques DevOps et du Monitoring/Observabilité à travers un hackathon organisé dans les locaux de l'EPITECH.
Ce hackathon est gratuit et ouvert à toutes et à tous.
L'objectif est de sensibiliser à ces notions, qui sont peu abordées lors de la scolarité, mais sont aujourd'hui très prisées dans l'industrie. Ces notions vous serons expliquées et détaillées en préambule de ce hackathon. Aucune connaissance préalable n'est nécessaire, ni en DevOps, ni en monitoring. Les équipes de Bleemeo et de Toulouse DevOps vous accompagnerons pendant l'après-midi pour vous guider et répondre à vos questions techniques.
Déroulé de l'événement
- 13h00-14h00: définition des objectifs du hackathon
- 14h00-18h00: après-midi pour développer et déployer le développement en équipes de 3 à 5 personnes
- 18h00-19h00: soutenance de 5min devant le jury et remise des prix 🏆
- 19h00: buffet de clôture 🍕 🍻
Objectif du Hackathon
Lors de ce hackathon, vous aurez à développer dans le langage de votre choix et à déployer sur un serveur dans le cloud une application en respectant les bonnes pratiques de l'observabilité.
En cette période de galette des rois, vous aurez à mettre en place une application web qui permet de gérer une distribution de parts de galettes. Une fois la galette coupée, on désigne qui recevra la part avec un tirage au sort (pour éviter de savoir qui aura la fève):
- saisir les noms des personnes participant au tirage au sort via un formulaire
- permettre le tirage au sort pour la distribution de chaque part de galette à une personne
- visualiser le résultat du tirage au sort
- afin de simuler le pic de charge des résultats du tirage au sort (et d'éviter des graphes complètement plat), vous pourrez mettre en place un simulateur de charge pour la page de visualisation
L'application web peut-être développée dans le langage de votre choix. Les librairies Prometheus qui permettent d'instrumenter votre code sont disponibles ici: https://prometheus.io/docs/instrumenting/clientlibs/. Nous vous recommandons pour des raisons de rapidité de choisir un langage supporté par ces librairies. Mais nous ne l'imposons pas. Certains frameworks web (Django) proposent également des librairies de plus haut niveau. N'hésitez pas à nous demander ou à regarder sur votre moteur de recherche préféré.
Déroulement du Jury
Devant le jury, vous devrez en 5 min:
- présenter votre application, faire une démonstration de son fonctionnement (saisie nom, tirage au sort, visualisation du résultat)
- présenter le monitoring mis en place pour votre machine et pour l'application: checks, dashboards, métriques, ...
Aucun slide n'est demandé, une présentation orale avec projection de l'application suffit.
Les points suivants seront pris en compte par l'évaluation du jury:
- Supervision système de la machine AWS EC2 fournie
- Mise en place de métriques applicatives (nombre de requêtes, etc.)
- Mise en place de dashboards pour grapher les métriques
- Mise en place d'un check externe permettant de s'assurer de la disponibilité de l'application
Des points bonus seront accordés pour le déploiement propre de l'application (Docker, systemd, ...), pour la beauté de l'UI ou tout autre point que le jury jugerait pertinent de bonifier 🤩.
Outils mis à disposition
Les outils suivants sont mis à votre disposition:
- Une instance EC2 avec un accès root (vous aurez accès après avoir fourni une clé SSH à l'un des organisateurs sur le chat, pingez @clement avec le nom de votre équipe)
- Un compte Bleemeo pour avoir les métriques Prometheus de votre application et le monitoring système. Faites un signup sur https://bleemeo.com/trial/
- Un chat pour communiquer entre vous et avec les organisateurs à https://chackathon.bleemeo.com
Boite à astuces
Quelques astuces et commandes / liens utiles pour la réalisation de ce hackathon:
- Sous Linux, vous pouvez créer une clé SSH à l'aide de la commande
ssh-keygen -t rsa 4096 - L'agent Bleemeo permet d'avoir très simplement un monitoring système complet.
- L'agent Bleemeo permet de récupérer des métriques Prometheus: https://go.bleemeo.com/l/doc-prometheus
- Git cheatsheet: https://github.github.com/training-kit/downloads/github-git-cheat-sheet.pdf
- Docker cheatsheet: https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf
- Bash cheatsheet: https://devhints.io/bash
- Winscp, outil pour copier par ssh des fichiers depuis Windows https://winscp.net/eng/index.php
- PuTTY, ssh client for Windows https://www.putty.org/