GithubHelp home page GithubHelp logo

5mcsi_metriques's Introduction


PROJET METRIQUES

Quelles sont les notions qui vont être abordées au cours de cet atelier ? Cet atelier a pour objectif de vous apprendre à créer des graphiques (dans le cadre de création de métriques par exemple) grace à une application Python et via la construction d'API. Vous allez utiliser et mettre en oeuvre au travers de cet atelier, un serveur Python utilisant le Framework Flask. Vous allez créer des API, découvrir les Actions et les Secrets GitHUB pour au final mettre en service des bibliothèques graphiques. Large programme mais tout à fait accessible et ne nécessitant pas de base technique particulière. Juste de l'observation et de la rigueur dans votre travail.


Séquence 1 : GitHUB

Objectif : Création d'un Repository GitHUB pour travailler avec son projet
Difficulté : Très facile (~10 minutes)

GitHUB est une plateforme en ligne utilisée pour stocker le code de son programme. GitHUB est organisé en "Repository", c'est à dire en répertoire (contenant lui même des sous répertoires et des fichiers). Chaque Repository sera indépendant les un des autres. Un Repository doit être vu comme un projet unique (1 Repository = 1 Projet). GitHUB est une plateforme très utilisée par les informaticiens.

Procedure à suivre :
1° - Créez vous un compte sur GitHub : https://github.com/
Si besoin, une vidéo pour vous aider à créer votre propre compte GitHUB : Créer un compte GitHUB
A noter que si vous possédez déjà un compte GitHUB, vous pouvez le conserver pour réaliser cet atelier. Pas besion d'en créer un nouveau.
Remarque importante : Lors de votre inscription, utilisez une adresse mail valide. GitHUB n'accepte pas les adresses mails temporaires

2° - Faites un Fork du Repository suivant : https://github.com/OpenRSI/5MCSI_Metriques.git
Voici une vidéo d'accompagnement pour vous aider dans les "Forks" : Forker ce projet

Travail demandé : Créé votre compte GitHUB, faites le fork de ce projet et copier l'URL de votre Repository GitHUB dans la discussion public.

Notion acquise lors de cette séquence :
Vous avez appris lors de cette séquence à créer des Repository pour stocker et travailler avec votre code informatique. Vous pourez par la suite travailler en groupe sur un projet. Vous avez également appris à faire des Forks. C'est à dire, faire des copies de projets déjà existant dans GitHUB que vous pourrez ensuite adapter à vos besoins.


Séquence 2 : Création d'un hébergement en ligne

Objectif : Créer un hébergement sur Alawaysdata
Difficulté : Faible (~10 minutes)

Rendez-vous sur https://www.alwaysdata.com/fr/

Remarque : Attention à bien vous rappeler de vos Login/Password lors de la création de votre compte site car vous en aurez besoin plus tard pour la création de vos Secrets GitHUB.

Voici une vidéo d'accompagnement pour vous aider dans cette séquence de création d'un site sur Alwaysdata : Vidéo Alwaysdata

Procédure :
1° - Créez votre compte Alwaysdata (gratuit jusqu'à 100Mo, aucune carte nécéssaire).
2° - Depuis la console d'administration (Le panel d'administration de Alwaysdata) :
. 2.1 - Cliquez sur "Sites" (Colonne de gauche) puis supprimer votre site PHP (via l'icone de la Poubelle).
. 2.2 - Installer ensuite une application Flask (Bouton + Installer une application).
. . 2.2.1 Adresses = utilisez le sous-domaine qui vous appartient que vous trouverez dans l'information " Les sous-domaines suivants vous appartiennent et sont actuellement inutilisés : {Site}.alwaysdata.net
. . 2.2.2 Répertoire d'installation = /www/flask
. 2.2.3 N'oubliez pas d'Accepter les conditions.
3° - Autoriser les connexions SSH :
. 3.1 - Cliquez sur SSH (Accès distant).
. 3.2 - Modifier les paramètres de votre utilisateur.
. 3.3 - Définissez si besion un nouveau mot de passe.
. 3.4 - Cliquez sur Activer la connexion par mot de passe.

Travail demandé : Mettre en ligne votre application Flask "Hello World !" et copier l'URL de votre site dans la discussion public.

Notions acquises lors de cette séquence :
Vous avez créer un hébergement (gratuit) et découvert également que vous pouvez installer bien d'autres applications (Django, Drupal, Jenkins, Magento, Symphony, etc...). Les perspectives sont nombreuses.


Séquence 3 : Les Actions GitHUB (Industrialisation Continue)

Objectif : Automatiser la mise à jour de votre hébergement Alwaysdata
Difficulté : Moyenne (~15 minutes)

Dans le Repository GitHUB que vous venez de créer précédemment lors de la séquence 1, vous avez un fichier intitulé CICD.yml et qui est déposé dans le répertoire .github/workflows. Ce fichier a pour objectif d'automatiser le déploiement de votre code sur votre site Alwaysdata. Pour information, c'est ce que l'on appel des Actions GitHUB. Ce sont des scripts qui s'exécutent automatiquement lors de chaque Commit dans votre projet (C'est à dire à chaque modification de votre code). Ces scripts (appelés actions) sont au format yml qui est un format structuré proche de celui d'XML.

Pour utiliser cette Action (CICD.yml), vous avez besoin de créer des secrets dans GitHUB afin de ne pas divulguer des informations sensibles aux internautes de passage dans votre Repository comme vos login et password par exemple.

Pour ce projet Métriques, vous avez 4 secrets à créer dans votre Repository GitHUB :
USERNAME = Le login qui est utilisé pour la connexion SSH.
PASSWORD = Le mot de passe qui est utilisé pour la connexion SSH.
ALWAYSDATA_TOKEN = Le token est à créer depuis l'interface d'administration Alwaysdata. Cliquez sur votre profil en haut à droite, puis sur 'Profil' puis sur 'Gérer les tokens'. Laissez le champ "Adresses IP autorisées" vide. Dans le cas contraire vous limiteriez les connexions seulement à une adresse IP. Pour le champ Application* mettez "Metriques" par exemple.
ALWAYSDATA_SITE_ID = Vous trouverez l'ID de votre site depuis l'interface d'administration Alwaysdata dans les paramètres de votre site (dans le titre #XXXXX) XXXXX étant l'ID de votre site. Ne prenez pas le # mais juste les chiffres.

Voici une vidéo pour vous expliquer le processus de création de vos secrets dans GitHUB : Création des secrets

Notions acquises de cette séquence :
Vous avez vu dans cette séquence comment créer des secrets GiHUB afin de mettre en place de l'industrialisation continue.
L'utilité des scripts d'actions (C'est à dire des scripts exécutés lors des Commits) est très importante mais sortes malheureusement du cadre de cet atelier faute de temps. Toutefois, je vous invites à découvrir cet outil via les différentes sources du Web (Google, ChatGPT, etc..).


Séquence 4 : Exercices

Objectif : Apprendre à créer votre application de monitoring
Difficulté : Moyenne

Votre solution est à présent en ligne. Rendez-vous sur la page d'accueil de votre site et suivez les instructions pour réaliser les exercices qui vous sont demandés. Bon courage et bon travail à tous.


Troubleshooting :

Objectif : Visualiser ses logs et découvrir ses erreurs

Lors de vos développements, vous serez peut-être confronté à des erreurs systèmes car vous avez faits des erreurs de syntaxes dans votre code, faits de mauvaises déclarations de fonctions, appelez des modules inexistants, mal renseigner vos secrets, etc…
Les causes d'erreurs sont quasi illimitées. Vous devez donc vous tourner vers les logs de votre système pour comprendre d'où vient le problème :
Voici une vidéo pour accéder aux logs de vos Actions GitHUB : Vidéo Log GitHUB
Voici une vidéo pour vous expliquer comment accéder au logs de votre serveur Alwaysdata : Vidéo Log Alwaysdata

5mcsi_metriques's People

Contributors

bstocker avatar kel78 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.