Scripting

Ma définition

Le scripting est l’art de créer des scripts informatiques, généralement interprétés ou exécutés par un langage de script (Python, Bash ou encore PowerShell). Ces scripts sont utilisés pour simplifier des opérations répétitives, manipuler des données, ou orchestrer des actions complexes sur des systèmes informatiques.

Au cours de mon cursus scolaire et professionnel, j’utilise le scripting pour optimiser les processus, améliorer l’efficacité des systèmes et réduire les erreurs manuelles.

1ère anecdote

Lors de mon stage en entreprise, j’ai pu réaliser un script Python dont le contexte est le suivant : Airbus possède une base de données appelée CMDB (Configuration Management DataBase) qui contient tous les noms de domaine complets (Fully Qualified Domain Name ou FQDN) (ex : serveur1.eu.fr, serveur2.eu.fr) ainsi que les statuts (ex : Utilisé, Retiré) correspondants à chaque machine (ex : ordinateurs, serveurs, conteneurs) utilisée par Airbus. La plateforme logicielle Ansible pour la configuration et la gestion des machines dispose également d’une base de données contenant les noms de domaine et les organisations des machines utilisées par Airbus via Ansible.

Cependant, il n’existe actuellement aucune solution pour vérifier si une machine dont le statut indique qu’elle n’est plus utilisée dans la base de données CMDB est supprimée automatiquement de la base de données d’Ansible. Par conséquent, Airbus se base sur les noms de domaine de la base de données d’Ansible pour attribuer une licence Ansible à chaque machine, ce qui signifie que des licences sont payées pour des machines qui ne sont pas ou plus utilisées.

Ce script permet d’obtenir des listes comprenant les valeurs qui ne sont pas considérées comme correctes. Cela permet d’économiser de l’argent en évitant le paiement de licences inutilisées et fait gagner énormément de temps à mon équipe car cela était fait à la main tous les mois pendant 3 jours environ.

2ème anecdote

Lors de mon expérience dans un projet visant à optimiser le déploiement de systèmes d’exploitation personnalisés pour les étudiants, j’ai développé des scripts de personnalisation, directement implantés dans des ISO personnalisés. Cette approche permettait d’intégrer automatiquement des applications et des services spécifiques au premier démarrage des machines, réduisant ainsi le temps et les manipulations nécessaires pour les utilisateurs. En utilisant mes compétences en scripting (notamment en Bash), j’ai conçu des scripts qui posaient des questions automatiquement à l’utilisateur et configuraient l’installation en conséquence.

Cette initiative a considérablement amélioré l’expérience des étudiants en simplifiant le processus de configuration initiale. Grâce à ces scripts, les étudiants pouvaient démarrer leur système et avoir accès aux applications et services pertinents immédiatement, sans avoir à passer par des installations manuelles fastidieuses. En réduisant le temps nécessaire à la configuration initiale, cela a permis aux utilisateurs de se concentrer davantage sur leur travail académique.

Mon autocritique

En évaluant ma compétence en scripting, je constate que je possède un niveau avancé d’expertise. Je suis à l’aise avec plusieurs langages de scripting tels que Python et Bash. Ma maîtrise s’étend à la création de scripts pour automatiser des tâches complexes ou encore à l’analyse de données.

L’apprentissage de cette compétence a été significatif grâce aux projets scolaires et en entreprise. Bien que je sois compétent dans l’automatisation de divers processus, il existe toujours des concepts plus avancés à explorer, notamment en matière d’optimisation de scripts et d’intégration continue/déploiement continu (CI/CD) via des scripts.

Dans mon profil d’Expert en Ingénierie, la compétence en scripting occupe une place primordiale. Elle me permet d’optimiser les processus opérationnels, d’assurer la reproductibilité des tâches et d’améliorer l’efficacité globale des équipes techniques. Cette compétence peut parfois nécessiter des adaptations suivant les différents scénarios, par exemple en travaillant avec l’API spécifique d’Ansible. L’automatisation par le biais de scripts est essentielle pour libérer du temps précieux et se concentrer sur des tâches à plus forte valeur ajoutée.

Ma vitesse d’acquisition de cette compétence a été assez rapide car j’ai tout de suite compris l’intérêt que cela pouvait avoir dans notre métier. Je dirais que je possède un niveau confirmé en scripting. J’ai rapidement progressé grâce à des projets concrets et à une exposition constante à des problèmes du monde réel nécessitant des solutions automatisées.

Avec le recul que j’ai aujourd’hui, je conseillerais de toujours chercher à élargir ses compétences en scripting, en restant informé des nouvelles tendances et des meilleures pratiques. Il est également crucial de développer des compétences complémentaires telles que la gestion de versions et la sécurité informatique, qui sont souvent liées à l’automatisation par le scripting.

Pour ceux qui souhaitent développer leurs compétences en scripting, je recommande de commencer par des projets simples et concrets, en pratiquant régulièrement et en tirant parti de ressources en ligne telles que des tutoriels, des forums communautaires et des projets open source. Il est essentiel de ne pas se limiter à un seul langage de script, mais plutôt d’explorer plusieurs langages pour comprendre leurs forces et leurs faiblesses dans différents contextes.

Mon évolution dans cette compétence

Je souhaite monter en progression pour être confirmé en scripting, niveau que je peux obtenir en suivant notamment la formation gratuite de Kamil « PowerShell Course for IT Professionals » qui me permettra de maitriser ce langage de script que je n’ai pas beaucoup pratiqué.