Closed sylvainmetayer closed 5 years ago
Comment l'automatisation peut permettre de réduire les erreurs humaines dans la mise en oeuvre d'une application ?
scalabilité déploiemnt infra ... A la carte, je choisis un peu ce que je veux Avec blabla du développement a l'intégration continue, le reporting de bug automatique, ....
Idée : comment l'automatisation peut permettre de réduire les erreurs humaines dans le processus de développement/dans la chaine d'instrialisation dans la mise en oeyvre d'une nouvelle solution en production ?
1.1 – Management des S.I
L'automatisation peut permettre de relancer rapidement une activité défaillante (SLA / PRA / PCA)
1.2 – Management des Ressource
Je suis moi même une équipe, je suis mon propre chef, je travaille en autonomie et je détermine les tâches à prioriser, estimation des tâches, ...
1.3 – Ethique & Evolution du S.I.
Métrique - KPI - temps de déploiement / nombre d'incident / uptime / Nombre de build KO / Nombre de build OK ... permettent de définir l'impact des services mis en place sur le S.I
1.4 – Stratégie financière :
Le fait d'automatiser des processus permet de gagner du temps, et par conséquent de l'argent et de consacrer ses efforts à d'autres taches qui peuvent apporter de la valeur métier.
Le coût horaire libéré, calculer à partir de combien de temps il est rentable.
- Par exemple, une tache à 3000€ qu'on automatise et qui ne coute plus que 300€ est rentable en 10 semaines.
2.1 – Management de Projet
2.2 – Méthode de Gestion de Projet
3.1 – Gestion des données
Développement avec des CMS qui utilisent des bases de données (MySQL) / Projet Symfony + MySQL.
Automatisation de la création de la base de données (projet club sportif) et de la restauration des données
mysqldump + import lors de la restauration
injection sql, reqûetes préparée / pdo
3.2 – Business Intelligence
Bloc 4 – Etudes & Développement
Drupal 8 / Symfony
Tests automatisés unitaires (phpunit) permettant à la plateforme d'intégration continue de vérifier la conformité du code par rapport aux attentes métier.
Intégration dans gitlab-ci / jenkins
Intégration dans gitlab-ci / jenkins
Rédaction de SFD
Bloc 5 – Infrastructure Systèmes & Réseaux
Docker
Monitoring : monit pour monitorer l'état d'application ? (perso)
Bloc 6 – Management & Conseil ERP
Facteur humaiin : Le temps libéré par l'automatisation des tâches peut permettre de souder les liens d'une équipe et d'améliorer les relations de cette dernière. Cela libère du temps pour du team building par exemple.
- Un sujet technique qui rapproche en terme d'humain
Parler de l'automatisation technique et de comment l'organisation projet doit évoluer lorsqu'elle est mise en oeuvre ?
Comment faire en sorte que ça marche dans la durée ? Des controles / supervisons périodique afin de checker que tout va bien.
Workflow : savoir ce qui est automatisé, comment c'est mis en oeuvre ,documentation des outils, ...
Faire en sorte que l'automatisation ne casse pas et que l'on en tire quelques chose, que l'on soit nouvel arrivant sur le projet, ou développeur déjà présent sur le projet.
Scalabilité : Docker / provisionner de nouveaux serveurs rapidement avec Ansible par exemple.
Déploiement : chaine de déploiement (dev/test/inte/preprod/prod) avec chacune ses spécificités
Exemple :
- en dev, on souhaite des logs direct dans la console, en prod on les mets dans un fichier de log.
- en dev, on veut le mode debug, en prod on le désactive.
Reporting de bug
chaine d'erreur au plus court (retrouver image xdcd sur le temps pour automatiser une tache)
différence entre intégration continue et tests unitaire (image du lavabo + séchoir à mains côte à côte). Les test unitaires vont tester la cohérence d'une partie du système tandis que l'intégration va tester la cohérence de l'échange entre divers systèmes / fonctions.
historique (déploiement manuel, script expect, outil de déploiement, ...)
BV entrerpise de certification, dans l'industrie
[x] DevOps Handbook :
[x] p52 : choix du flux de la valeur sur laquelle travailler
[x] => réduire cycle livraison
[x] p59 permet de voir les différents réactions face à la mise en place d'un mouvement devops / agile.
[x] - Ceux qui vont le vouloir
[x] - Ceux qui vont suivre une fois mise en place
[x] - Ceux qui sont réfractaire
[x] ~Conway Law~
[x] Idée de transformation d'entreprise : Etsy ? (p80)
Exemples à utiliser lors du mémoire provenant de projets réalisés en entreprise
[ ] Application sur Nouvelle Aquitaine
[ ] Application sur BV
[x] scalabilité, déploiement, infra ... Du développement a l'intégration continue, le reporting de bug automatique, ....
[x] L'automatisation peut permettre de relancer rapidement une activité défaillante (SLA / PRA / PCA)
[ ] Je suis moi même une équipe, je suis mon propre chef, je travaille en autonomie et je détermine les tâches à prioriser, estimation des tâches, ...
[x] Métrique - KPI - temps de déploiement / nombre d'incident / uptime / Nombre de build KO / Nombre de build OK ... permettent de définir l'impact des services mis en place sur le S.I
[x] Le fait d'automatiser des processus permet de gagner du temps, et par conséquent de l'argent et de consacrer ses efforts à d'autres taches qui peuvent apporter de la valeur métier.
[x] Le coût horaire libéré, calculer à partir de combien de temps il est rentable. - Par exemple, une tache à 3000€ qu'on automatise et qui ne coute plus que 300€ est rentable en 10 semaines.
[ ] Développement avec des CMS qui utilisent des bases de données (MySQL) / Projet Symfony + MySQL.
[x] > Automatisation de la création de la base de données (projet club sportif) et de la restauration des données
[ ] Utiliser une méthode de sauvegarde et de restauration d’une base de données appropriée > mysqldump + import lors de la restauration
[ ] Sécuriser une base de données en utilisant le langage SQL du Système de Gestion de Bases de données > injection sql, reqûetes préparée / pdo
[ ] Développer des composants logiciels en environnement objet> Drupal 8 Symfony
[x] Réaliser des tests unitaires en utilisant des règles d’erreur et exceptions> Tests automatisés unitaires (phpunit) permettant à la plateforme d'intégration continue de vérifier la conformité du code par rapport aux attentes métier.
[x] Concevoir et exécuter des procédures de tests systématiques/Gérer l'Intégration continue en utilisant des outils d’intégration > Intégration dans gitlab-ci / jenkins
[ ] Rédaction de SFD
[x] Concevoir l’infrastructure d’une plateforme de virtualisation en utilisant des technologies d’hyper virtualisation > docker
[ ] Mettre en oeuvre des dispositifs de surveillance et d’analyse de données en temps réel > Monitoring : monit pour monitorer l'état d'application ? (perso)
[x] Management> Facteur humain : Le temps libéré par l'automatisation des tâches peut permettre de souder les liens d'une équipe et d'améliorer les relations de cette dernière. Cela libère du temps pour du team building par exemple. Un sujet technique qui rapproche en terme d'humain
[x] > Comment faire en sorte que l'automatisation marche dans la durée ? Des controles / supervisons périodique afin de checker que tout va bien.
[x] - Workflow : savoir ce qui est automatisé, comment c'est mis en oeuvre ,documentation des outils, ... Faire en sorte que l'automatisation ne casse pas et que l'on en tire quelques chose, que l'on soit nouvel arrivant sur le projet, ou développeur déjà présent sur le projet.
[x] Scalabilité : Docker / provisionner de nouveaux serveurs rapidement avec Ansible par exemple.
[x] Déploiement : chaine de déploiement (dev/test/inte/preprod/prod) avec chacune ses spécificités
Exemple :
- en dev, on souhaite des logs direct dans la console, en prod on les mets dans un fichier de log.
- en dev, on veut le mode debug, en prod on le désactive.
[x] Reporting de bug
[ ] chaine d'erreur au plus court (retrouver image xdcd sur le temps pour automatiser une tache)
[x] différence entre intégration continue et tests unitaire (image du lavabo + séchoir à mains côte à côte). Les test unitaires vont tester la cohérence d'une partie du système tandis que l'intégration va tester la cohérence de l'échange entre divers systèmes / fonctions.
[x] Gestion des tokens, gestion des comptes.
[x] Un compte admin ou plusieurs sous compte avec des droits limités ? En cas d'intrusion, un attaquant a moins de chance de corrompre tout le système.
[x] Infra : restricition d'accès (htaccess / firewall / ..?)
[ ] https://github.com/x3rus/training/blob/master/devops/01-introduction.md
[ ] https://www.redhat.com/fr/topics/automation/whats-it-automation
[ ] https://dev.to/kylegalbraith/the-benefits-you-need-to-know-about-infrastructure-as-code-8c4
[ ] DevOps assessment - how to measure your maturity https://www.linkedin.com/pulse/devops-assessment-how-measure-your-maturity-r%C3%A9my-vannarien
[ ] https://www.linkedin.com/feed/update/urn:li:activity:6524306203999379456/
[ ] https://www.slideshare.net/geerlingguy/devops-for-humans-ansible-for-drupal-deployment-victory
[ ] https://twitter.com/CommitStrip_fr/status/1130506691617992704?s=09
[ ] https://medium.com/@tdeniffel/tcr-test-commit-revert-a-test-alternative-to-tdd-6e6b03c22bec
[ ]
cf #53
Comment l'automatisation peut permettre de réduire les erreurs humaines dans la mise en oeuvre d'une application ?
Session2018_Referentiel_Memoire_Prof_5eAnnee.pdf
Prendre le Référentiel point par point.Cf. ici pour les différentes idéesDescription
Les projets informatique sont de plus en plus nombreux mais leur fiabilité n'est pas toujours optimale. Combien de projet sont encore déployé manuellement car aucune automatisation n'est présente sur le projet ? En plus d'une perte de temps, parfois importante, cela engendre un stress au niveau des équipes, qui à chaque livraison redoute les régressions qui pourraient survenir ou encore les bugs de déploiement. L'automatisation peut également permettre d'améliorer l'onboarding d'un nouveau développeur sur un projet. Il n'est en effet par rare de voir des projets ou la configuration de l'environnement requiert à elle seule plusieurs jours, sans que le développeur puisse vraiment commencer à travailler. Également, l'automatisation va permettre d'améliorer la fiabilité et la confiance des développeurs et des clients dans le projet, puisque des tests automatisés ainsi qu'une chaine d'industrialisation complètement automatisée permet ainsi de déployer avec confiance une application.
Mots clés
Bibliographie
Proposition de plan
Exemple à utiliser lors du mémoire provenant de projets réalisés en entreprise