SlideShare a Scribd company logo
1 of 21
LE KIT DE SURVIE EN
PRODUCTION
Comment les dinosaures de
l’informatique peuvent nous sauver ?
PLAN
La survie ? Quelle survie ?
Un kit de survie, oui, mais pour
quoi faire ?
Toujours plus d’outils pour un kit à
votre image
Conclusion
Plan
01
• L’informatique, une question de survie ?
• Quels dangers pour une solution en
production ?
LA SURVIE ? QUELLE SURVIE ?
L’INFORMATIQUE, UNE QUESTION DE SURVIE ?
Plutôt une question de confort : l’informatique est un ensemble de solutions
automatisées à des problèmes, réalisées en suivant une organisation plus ou moins
rigoureuse
Ces solutions sont vouées à être intégrées en milieu hostile puisqu’il est en visibilité
des utilisateurs : la Production
La Production doit être :
Fiable
Disponible
Maintenable
Une solution doit donc répondre aux problèmes et survivre suite à son
intégration en Production
QUELS DANGERS POUR UNE SOLUTION EN PRODUCTION ?
Quelques exemples de situations dégradées en Production :
Critiques
Indisponibilité/instabilité : les utilisateurs n’accèdent plus à un outil incontournable
Qualité de données : des informations pré requises ne sont pas disponibles à temps
Majeurs
Indisponibilité/instabilité : les outils sont accessibles mais ne fonctionnent pas correctement
Qualité de données : les informations sont présentes mais erronées
Mineurs
Indisponibilité/instabilité : les outils sont accessibles et fonctionnels mais leur utilisation n’est pas aisée
Qualité de données : les données sont présentes et justes mais nécessitent une manipulation
Attention ! La gravité de ces situations est relative !
02
• Pourquoi opter pour la survie ?
• Un plan d’approche en trois phases
• MODE SURVIE – Comprendre la situation
• MODE SURVIE – Rétablir une situation normale
• MODE SURVIE – Rattraper les erreurs
UN KIT DE SURVIE, OUI, MAIS POUR QUOI FAIRE ?
POURQUOI OPTER POUR LA SURVIE ?
Lorsqu’une situation dégradée jugée critique est observée en Production, il faut
réagir vite :
L’analyse approfondie de la situation, la spécification, les développements, les tests et le
déploiement d’un correctif nécessitent trop de temps
Des actions plus rapides peuvent être priorisées sur ce correctif, même s’il convient de le
planifier :
Utilisation d’un banc de Production de secours
Restauration d’un serveur ou d’une base de données dans un état antérieur stable (Snapshot/Dump) –
Nécessite la compréhension de la situation
Retour-arrière d’une application en cas de montée de version sur cet applicatif (Rollback) – Nécessite la
compréhension de la situation
Mise en place d’un contournement automatisé et rattrapage des données produites en situation
dégradée
UN PLAN D’APPROCHE EN TROIS PHASES
Réaction à vif
« Mode survie »
Planning en heures
• « Comprendre la
situation » en analysant
• « Rétablir une situation
normale » sans
développement
• « Rattraper les erreurs »
Correctif applicatif
rapide
Planning en jours
• Développements simples
et courts en réponse à
l’analyse de la situation
en Production
• Tests sur les cas observés
en production
• Déploiement priorisé
Correctif applicatif
stabilisé
Planning en semaines
• Développements
spécifiés avec
extrapolation de la
situation en Production
• Tests sur l’ensemble des
cas théoriques
• Documentation accrue
MODE SURVIE – COMPRENDRE LA SITUATION
Analyser et ordonner les événements récents :
Etat de l’environnement
Bon fonctionnement des composants
Messages d’erreurs et rapports d’exécution
Collecter les données nécessaires au traitement
Outils recommandés :
find, locate
sort, uniq
grep
vi, nano, cat
MODE SURVIE – COMPRENDRE LA SITUATION
EXEMPLE
Cas d’étude :
Le 20 janvier 2021 à 17h, les responsables RH d’une entreprise indiquent l’impossibilité de
générer les fiches de paie des 25 salariés et constatent l’apparition d’un volume anormalement
important de documents destinés à des employés externes à l’entreprise
A savoir :
L’outil RH dispose de deux traitements s’articulant sur une base de données des employés de
l’entreprise :
1. Le 1er envoie un mail automatique personnalisé pour indiquer aux externes que leur facture a été reçue
et que le paiement sera réalisé dans les prochains jours. Ce traitement se lance automatiquement
lorsqu’une ressource externe dépose sa facture au sein d’un répertoire dédié qui lui est accessible
2. Le 2nd génère les fiches de paie des salariés et les dépose dans leur coffre fort numérique, externe à la
société. Ce traitement est planifié une fois par mois
Hypothèse :
Le volume trop important de documents à destination des externes bloque la chaine de
traitement de l’outil RH et empêche la génération des fiches de paie par manque d’espace
disque
MODE SURVIE – COMPRENDRE LA SITUATION
EXEMPLE
Idées :
1. Vérifier la présence de fichiers volumineux de plus de 2 Mo :
$ find . -size +2048k
2. Identifier des fichiers contenant une expression particulière permettant d’incriminer le
traitement dédié aux factures des prestataires :
$ find . -size + 2048k | xargs ls | xargs grep -l "externe Intranet"
3. Vérifier qu’il existe des fichiers créés le 20 janvier 2021 entre 14h00 et 17h00 :
$ find . -size + 2048k -newermt "2021-01-20 14:00" -not -newermt
"2021-01-20 17:00" | xargs ls | xargs grep -l "externe Intranet" |
xargs ls -lh
4. Etudier la présence de doublons dans le fichier (impossible d’éditer le fichier depuis Notepad,
Excel…)
$ set -x && sort ./dir_1/dir_1_2/users_csv_01.csv | uniq -c | head
Analyse :
Le traitement dédié aux factures des prestataires a généré de trop nombreuses lignes le 20
janvier à 14h parce qu’il se déclenche sur la colonne « date_modification » de la table
« employe_demo » de la base utilisée par la suite d’outils RH
MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE
Agir :
Remettre l’environnement en ordre de marche
Relancer les composants
Préparer les données en entrées
Relancer le traitement en observant les résultats de la relance OU se substituer au traitement
(shunt/contournement)
Outils recommandés :
vi, nano
sed, awk, bash, python
tail
grep
MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE
EXEMPLE
Une fiche d’exploitation pour un cas réel
Préparer les données : user des expressions régulières. Un exemple est fourni dans la
section suivante
Proposer un contournement en se basant sur des scripts simples :
bash
…
python
MODE SURVIE – RATTRAPER LES ERREURS
Réagir :
S’assurer de la stabilité de l’environnement
S’assurer de la stabilité des composants
Corriger les données en erreur produites pendant le dysfonctionnement du traitement
Outils recommandés :
sort, uniq
grep
vi, nano, cat
MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE
EXEMPLE
Reprise du cas d’étude de la section « Comprendre la situation »
Correctif :
Modifier les dates « date_modification » dans la table « employe_demo » pour les
externes seulement en y mettant la date de dernier traitement avec succès contenue dans la
table « last_success_run_demo »
04
• Quelques outils pratiques
• Pour aller plus loin
• À vous de jouer
• Conclusion
TOUJOURS PLUS D’OUTILS POUR UN KIT À VOTRE IMAGE
Les commandes systèmes :
https://www.ubuntupit.com/best-linux-commands-
to-run-in-the-terminal/
Scripts Python :
https://linuxhint.com/python_scripts_beginners_gui
de/
Scripts Perl : https://learn.perl.org/first_steps/
…
QUELQUES OUTILS PRATIQUES
Les interfaces de lignes de
commandes (CLI)
SQL/NO SQL
SQLServer : https://docs.microsoft.com/fr-
fr/sql/tools/mssql-cli?view=sql-server-
ver15
Cassandra :
https://cassandra.apache.org/doc/latest/t
ools/
MongoDB :
https://docs.mongodb.com/mongocli/sta
ble/
…
Message Broker
RabbitMQ :
https://www.rabbitmq.com/cli.html
…
Les expressions régulières
Wikipedia (EN) :
https://en.wikipedia.org/wiki/Regular_exp
ression
Créer et tester des expressions régulières :
https://regexr.com/ ou
https://regex101.com/
Les tâches planifiées
CRONTAB : https://crontab.guru/
POUR ALLER PLUS LOIN
À VOUS DE JOUER
Des problèmes solutions qui se basent sur des dinosaures
Gardez une trace (ex : wiki) de vos expériences et constituez votre propre arsenal
d’outils
Des dinosaures efficaces et éprouvés pour des
résultats rapides
Les commandes systèmes
Les scripts rapides et simples à déployer
Les expressions régulières et la théorie du langage
La survie, la débrouille, mais pas la
désorganisation
Il faut tracer, pour vous mais aussi pour les autres
Une philosophie d’exploitation qui s’applique
aux développements et aux tests
CONCLUSION
Straight to
the point
www.spikeelabs.fr

More Related Content

Similar to Kit de survie en Production

Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Microsoft Technet France
 
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?Hapsis
 
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Michelet
 
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannage
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannageDp0153 formation-symantec-netbackup-7-5-maintenance-et-depannage
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannageCERTyou Formation
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPatelier111
 
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...Lucien Boix
 
Gestion des réservations du consommable et des pannes
Gestion des réservations du consommable et des pannesGestion des réservations du consommable et des pannes
Gestion des réservations du consommable et des pannesPasteur_Tunis
 
Article: Quelle maturité faut-il pour le SPC?
Article: Quelle maturité faut-il pour le SPC?Article: Quelle maturité faut-il pour le SPC?
Article: Quelle maturité faut-il pour le SPC?Infodream
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel Bruchet
 
Schuman présentation expérimentation bts à réunion du 24 10-2012
Schuman présentation  expérimentation bts à réunion du 24 10-2012Schuman présentation  expérimentation bts à réunion du 24 10-2012
Schuman présentation expérimentation bts à réunion du 24 10-2012acastra
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfCIPE
 
Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Wiiisdom
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTASidereo
 
Le Plan de Reprise d'Activité pour les PME
Le Plan de Reprise d'Activité pour les PMELe Plan de Reprise d'Activité pour les PME
Le Plan de Reprise d'Activité pour les PMEAvignon Delta Numérique
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?Marc Bojoly
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxFootballLovers9
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxZakariaLabay
 

Similar to Kit de survie en Production (20)

Upc
UpcUpc
Upc
 
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
 
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?
WEBINAR : Comment amener RPSI et RPCA vers une situation coopérative ?
 
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
 
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannage
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannageDp0153 formation-symantec-netbackup-7-5-maintenance-et-depannage
Dp0153 formation-symantec-netbackup-7-5-maintenance-et-depannage
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
 
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...
Comment monitorer ses projets et rendre le on-call vivable ? (Confoo 2021 Onl...
 
Gestion des réservations du consommable et des pannes
Gestion des réservations du consommable et des pannesGestion des réservations du consommable et des pannes
Gestion des réservations du consommable et des pannes
 
Article: Quelle maturité faut-il pour le SPC?
Article: Quelle maturité faut-il pour le SPC?Article: Quelle maturité faut-il pour le SPC?
Article: Quelle maturité faut-il pour le SPC?
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Schuman présentation expérimentation bts à réunion du 24 10-2012
Schuman présentation  expérimentation bts à réunion du 24 10-2012Schuman présentation  expérimentation bts à réunion du 24 10-2012
Schuman présentation expérimentation bts à réunion du 24 10-2012
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdf
 
TPM Cours3 LeanManufacturing.ppt
TPM Cours3 LeanManufacturing.pptTPM Cours3 LeanManufacturing.ppt
TPM Cours3 LeanManufacturing.ppt
 
Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTA
 
Le Plan de Reprise d'Activité pour les PME
Le Plan de Reprise d'Activité pour les PMELe Plan de Reprise d'Activité pour les PME
Le Plan de Reprise d'Activité pour les PME
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
 
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptxresume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
resume-theorique-m106-partie1-v2-6228baed03113 (1).pptx
 

More from SpikeeLabs

VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔SpikeeLabs
 
Power BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousPower BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousSpikeeLabs
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023 SpikeeLabs
 
Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !SpikeeLabs
 
Domain_Driven_Design
Domain_Driven_DesignDomain_Driven_Design
Domain_Driven_DesignSpikeeLabs
 
Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022SpikeeLabs
 
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...SpikeeLabs
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022SpikeeLabs
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualitéSpikeeLabs
 
Salesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSalesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSpikeeLabs
 
Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !SpikeeLabs
 
9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et BobSpikeeLabs
 
Déploiement Kubernetes
Déploiement KubernetesDéploiement Kubernetes
Déploiement KubernetesSpikeeLabs
 
Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec MulesoftSpikeeLabs
 

More from SpikeeLabs (16)

VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔Novu _ La cloche de l'intranet va enfin faire _Dring🔔
Novu _ La cloche de l'intranet va enfin faire _Dring🔔
 
Power BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vousPower BI _ La data n'a plus de secret pour vous
Power BI _ La data n'a plus de secret pour vous
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
 
Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !Mots de passe : Protégez-les, gérez-les, oubliez-les !
Mots de passe : Protégez-les, gérez-les, oubliez-les !
 
DesignSystem
DesignSystemDesignSystem
DesignSystem
 
Domain_Driven_Design
Domain_Driven_DesignDomain_Driven_Design
Domain_Driven_Design
 
Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022Retour sur les conférences du DevFest de Nantes 2022
Retour sur les conférences du DevFest de Nantes 2022
 
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualité
 
Salesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empireSalesforce : les pouvoirs d’un empire
Salesforce : les pouvoirs d’un empire
 
Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !Windows ou Linux : il faut choisir... ou pas !
Windows ou Linux : il faut choisir... ou pas !
 
9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob9 choses que vous ignorez sur Alice et Bob
9 choses que vous ignorez sur Alice et Bob
 
Déploiement Kubernetes
Déploiement KubernetesDéploiement Kubernetes
Déploiement Kubernetes
 
Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec Mulesoft
 

Kit de survie en Production

  • 1. LE KIT DE SURVIE EN PRODUCTION Comment les dinosaures de l’informatique peuvent nous sauver ?
  • 2. PLAN La survie ? Quelle survie ? Un kit de survie, oui, mais pour quoi faire ? Toujours plus d’outils pour un kit à votre image Conclusion Plan
  • 3. 01 • L’informatique, une question de survie ? • Quels dangers pour une solution en production ? LA SURVIE ? QUELLE SURVIE ?
  • 4. L’INFORMATIQUE, UNE QUESTION DE SURVIE ? Plutôt une question de confort : l’informatique est un ensemble de solutions automatisées à des problèmes, réalisées en suivant une organisation plus ou moins rigoureuse Ces solutions sont vouées à être intégrées en milieu hostile puisqu’il est en visibilité des utilisateurs : la Production La Production doit être : Fiable Disponible Maintenable Une solution doit donc répondre aux problèmes et survivre suite à son intégration en Production
  • 5. QUELS DANGERS POUR UNE SOLUTION EN PRODUCTION ? Quelques exemples de situations dégradées en Production : Critiques Indisponibilité/instabilité : les utilisateurs n’accèdent plus à un outil incontournable Qualité de données : des informations pré requises ne sont pas disponibles à temps Majeurs Indisponibilité/instabilité : les outils sont accessibles mais ne fonctionnent pas correctement Qualité de données : les informations sont présentes mais erronées Mineurs Indisponibilité/instabilité : les outils sont accessibles et fonctionnels mais leur utilisation n’est pas aisée Qualité de données : les données sont présentes et justes mais nécessitent une manipulation Attention ! La gravité de ces situations est relative !
  • 6. 02 • Pourquoi opter pour la survie ? • Un plan d’approche en trois phases • MODE SURVIE – Comprendre la situation • MODE SURVIE – Rétablir une situation normale • MODE SURVIE – Rattraper les erreurs UN KIT DE SURVIE, OUI, MAIS POUR QUOI FAIRE ?
  • 7. POURQUOI OPTER POUR LA SURVIE ? Lorsqu’une situation dégradée jugée critique est observée en Production, il faut réagir vite : L’analyse approfondie de la situation, la spécification, les développements, les tests et le déploiement d’un correctif nécessitent trop de temps Des actions plus rapides peuvent être priorisées sur ce correctif, même s’il convient de le planifier : Utilisation d’un banc de Production de secours Restauration d’un serveur ou d’une base de données dans un état antérieur stable (Snapshot/Dump) – Nécessite la compréhension de la situation Retour-arrière d’une application en cas de montée de version sur cet applicatif (Rollback) – Nécessite la compréhension de la situation Mise en place d’un contournement automatisé et rattrapage des données produites en situation dégradée
  • 8. UN PLAN D’APPROCHE EN TROIS PHASES Réaction à vif « Mode survie » Planning en heures • « Comprendre la situation » en analysant • « Rétablir une situation normale » sans développement • « Rattraper les erreurs » Correctif applicatif rapide Planning en jours • Développements simples et courts en réponse à l’analyse de la situation en Production • Tests sur les cas observés en production • Déploiement priorisé Correctif applicatif stabilisé Planning en semaines • Développements spécifiés avec extrapolation de la situation en Production • Tests sur l’ensemble des cas théoriques • Documentation accrue
  • 9. MODE SURVIE – COMPRENDRE LA SITUATION Analyser et ordonner les événements récents : Etat de l’environnement Bon fonctionnement des composants Messages d’erreurs et rapports d’exécution Collecter les données nécessaires au traitement Outils recommandés : find, locate sort, uniq grep vi, nano, cat
  • 10. MODE SURVIE – COMPRENDRE LA SITUATION EXEMPLE Cas d’étude : Le 20 janvier 2021 à 17h, les responsables RH d’une entreprise indiquent l’impossibilité de générer les fiches de paie des 25 salariés et constatent l’apparition d’un volume anormalement important de documents destinés à des employés externes à l’entreprise A savoir : L’outil RH dispose de deux traitements s’articulant sur une base de données des employés de l’entreprise : 1. Le 1er envoie un mail automatique personnalisé pour indiquer aux externes que leur facture a été reçue et que le paiement sera réalisé dans les prochains jours. Ce traitement se lance automatiquement lorsqu’une ressource externe dépose sa facture au sein d’un répertoire dédié qui lui est accessible 2. Le 2nd génère les fiches de paie des salariés et les dépose dans leur coffre fort numérique, externe à la société. Ce traitement est planifié une fois par mois Hypothèse : Le volume trop important de documents à destination des externes bloque la chaine de traitement de l’outil RH et empêche la génération des fiches de paie par manque d’espace disque
  • 11. MODE SURVIE – COMPRENDRE LA SITUATION EXEMPLE Idées : 1. Vérifier la présence de fichiers volumineux de plus de 2 Mo : $ find . -size +2048k 2. Identifier des fichiers contenant une expression particulière permettant d’incriminer le traitement dédié aux factures des prestataires : $ find . -size + 2048k | xargs ls | xargs grep -l "externe Intranet" 3. Vérifier qu’il existe des fichiers créés le 20 janvier 2021 entre 14h00 et 17h00 : $ find . -size + 2048k -newermt "2021-01-20 14:00" -not -newermt "2021-01-20 17:00" | xargs ls | xargs grep -l "externe Intranet" | xargs ls -lh 4. Etudier la présence de doublons dans le fichier (impossible d’éditer le fichier depuis Notepad, Excel…) $ set -x && sort ./dir_1/dir_1_2/users_csv_01.csv | uniq -c | head Analyse : Le traitement dédié aux factures des prestataires a généré de trop nombreuses lignes le 20 janvier à 14h parce qu’il se déclenche sur la colonne « date_modification » de la table « employe_demo » de la base utilisée par la suite d’outils RH
  • 12. MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE Agir : Remettre l’environnement en ordre de marche Relancer les composants Préparer les données en entrées Relancer le traitement en observant les résultats de la relance OU se substituer au traitement (shunt/contournement) Outils recommandés : vi, nano sed, awk, bash, python tail grep
  • 13. MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE EXEMPLE Une fiche d’exploitation pour un cas réel Préparer les données : user des expressions régulières. Un exemple est fourni dans la section suivante Proposer un contournement en se basant sur des scripts simples : bash … python
  • 14. MODE SURVIE – RATTRAPER LES ERREURS Réagir : S’assurer de la stabilité de l’environnement S’assurer de la stabilité des composants Corriger les données en erreur produites pendant le dysfonctionnement du traitement Outils recommandés : sort, uniq grep vi, nano, cat
  • 15. MODE SURVIE – RÉTABLIR UNE SITUATION NORMALE EXEMPLE Reprise du cas d’étude de la section « Comprendre la situation » Correctif : Modifier les dates « date_modification » dans la table « employe_demo » pour les externes seulement en y mettant la date de dernier traitement avec succès contenue dans la table « last_success_run_demo »
  • 16. 04 • Quelques outils pratiques • Pour aller plus loin • À vous de jouer • Conclusion TOUJOURS PLUS D’OUTILS POUR UN KIT À VOTRE IMAGE
  • 17. Les commandes systèmes : https://www.ubuntupit.com/best-linux-commands- to-run-in-the-terminal/ Scripts Python : https://linuxhint.com/python_scripts_beginners_gui de/ Scripts Perl : https://learn.perl.org/first_steps/ … QUELQUES OUTILS PRATIQUES
  • 18. Les interfaces de lignes de commandes (CLI) SQL/NO SQL SQLServer : https://docs.microsoft.com/fr- fr/sql/tools/mssql-cli?view=sql-server- ver15 Cassandra : https://cassandra.apache.org/doc/latest/t ools/ MongoDB : https://docs.mongodb.com/mongocli/sta ble/ … Message Broker RabbitMQ : https://www.rabbitmq.com/cli.html … Les expressions régulières Wikipedia (EN) : https://en.wikipedia.org/wiki/Regular_exp ression Créer et tester des expressions régulières : https://regexr.com/ ou https://regex101.com/ Les tâches planifiées CRONTAB : https://crontab.guru/ POUR ALLER PLUS LOIN
  • 19. À VOUS DE JOUER Des problèmes solutions qui se basent sur des dinosaures Gardez une trace (ex : wiki) de vos expériences et constituez votre propre arsenal d’outils
  • 20. Des dinosaures efficaces et éprouvés pour des résultats rapides Les commandes systèmes Les scripts rapides et simples à déployer Les expressions régulières et la théorie du langage La survie, la débrouille, mais pas la désorganisation Il faut tracer, pour vous mais aussi pour les autres Une philosophie d’exploitation qui s’applique aux développements et aux tests CONCLUSION