Aller au contenu principal

Competence

Ansible : L'outil indispensable pour les administrateurs SRE

Ma définition


Ansible permet de mettre en application le concept « Don’t Repeat Yourself (DRY) » qui a été popularisé par Andy Hunt et Dave Thomas. Il vise à éviter la répétition dans le code afin d’obtenir un programme ou un script lisible, efficace et surtout maintenable. Ce concept forme le socle de base d’un profil d’administrateur SRE. Un administrateur SRE se doit d’être fiable, efficace et flexible. Pour cela, de nombreuses technologies ont été créées. L’une d’entre elles se nomme « Ansible ». Cette technologie permet de centraliser des configurations ainsi que de les distribuer à un nombre défini de machines. Dans ce cadre, elle répond à une des problématiques les plus chronophages : la répétition d’une même tâche. Par exemple, au sein d’une infrastructure regroupant plusieurs machines, il est nécessaire de configurer manuellement chaque machine avant de les utiliser. Ansible résout cette problématique en fournissant un outil permettant de définir des tâches complexes au sein de plusieurs fichiers de configuration, puis de les appliquer sur un inventaire de machines défini. Ansible est un atout indispensable pour les administrateurs système et les administrateurs SRE.

Communication : Une compétence nécessaire même pour un administrateur SRE

Ma définition


La communication marketing permet de mettre en valeur un produit ou un évènement. Faire un super produit ou évènement n’a aucune utilité si personne ne le connaît ou n’est séduit par ce dernier. Steuart Henderson Britt, un grand écrivain autour de cette notion, la décrit de manière réaliste et humoristique dans cette citation « Doing business without advertising is like winking at a girl in the dark. You know what you’re doing, but nobody else does ». Elle regroupe l’ensemble des méthodes permettant à une entreprise, une association ou un particulier de promouvoir un produit ou un autre sur le marché. Cette compétence est trop souvent oubliée par les personnes travaillant dans le monde de l’informatique. Pourtant, comme dit précédemment, elle est essentielle pour mener un projet à la réussite. Elle est aussi importante pour pouvoir se démarquer et obtenir les meilleures offres d’emplois. Lorsque l’on fait de la communication, on cherche à faire passer un message positif au bon moment.

Docker : Isoler efficacement les applications

Ma définition


Docker est un outil permettant d’isoler une application avec l’intégralité de ces dépendances dans ce que l’on appelle un conteneur. Ce conteneur a de nombreux avantages. Il est immuable, portable et efficient. C’est-à-dire qu’il ne dépend pas d’un système d’exploitation hôte et que peu importe où il sera exécuté, l’application sera identique étant donné que ces dépendances sont isolées avec ce dernier. Il n’y aura donc pas de différence entre un même conteneur exécuté sur deux machines différentes. Globalement, nous décrivons le conteneur une fois dans un fichier de configuration, puis nous pouvons en faire ce que nous voulons, il répond au concept « Build Once, Run Anywhere ». Un point très important de Docker, c’est qu’il est utilisé par toutes les technologies permettant d’avoir des applications hautement disponibles en entreprise. Tous les concepts permettant d’augmenter la fiabilité des applications en entreprise se basent aussi sur cet outil. Ce dernier est omniprésent dans le monde de l’informatique, peu importe le métier pratiqué.

Événementiel : Organiser des expériences marquantes

Ma définition


L’événementiel est l’ensemble des compétences qui permettent d’organiser et de promouvoir des événements professionnels ou personnels. L’intérêt principal de l’événementiel est d’amener un public cible à penser d’une certaine manière. Par exemple, l’objectif peut être de promouvoir une idée, de transmettre des compétences ou encore de promouvoir un produit. Dans le monde professionnel, l’événementiel est un levier puissant pour renforcer l’image de marque d’une entreprise ou d’une personne. Cette compétence est particulièrement précieuse dans le domaine de l’informatique et de l’entrepreneuriat. Comme l’a dit Richard Branson avec cette citation « Business opportunities are like buses, there’s always another one coming. » un événement bien organisé est souvent une opportunité pour agrandir son réseau professionnel, développer ses projets et créer de nouvelles opportunités. Cette compétence est d’autant plus importante ces dernières années, étant donné que les entreprises font de plus en plus attention à leur image ainsi qu’à l’image qu’ont leurs salariés et associés sur Internet. Linked’In qui est omniprésent dans le monde de l’informatique, en est le parfait exemple de la croissance et de l’intérêt qu’ont les entreprises autour de l’image qu’elles projettent sur Internet. L’évènementiel est le levier le plus efficace pour transmettre une notion, une expérience ou renforcer l’image d’une entreprise.

Gestion de projet : Coordonner des individus

Ma définition


Les méthodologies de gestion de projet sont essentiels. Elles permettent de répondre continuellement aux besoins du client en étant flexible grâce à la coordination des équipes. Jeff Bezos que l’on ne présente plus, partage cette vision, notamment avec cette citation « Be stubborn on the vision but flexible on the details ». Cette notion est très importante, car les nouvelles méthodes de gestion de projet permettent de livrer des produits cohérents avec les besoins du client même s’ils évoluent continuellement. Cette notion est nécessaire si l’on a pour objectif de devenir chef d’équipe et de guider des équipes tout en restant à l’écoute de leur besoin.

GitLab CI/CD : Un outil au service des développeurs

Ma définition


GitLab est une plateforme qui permet de centraliser le code des développeurs autour de projets. Chaque nouveau code ajouté dans le projet GitLab a une version qui lui est attribuée. De cette manière, il est beaucoup plus simple de revenir sur des anciennes versions du code si nécessaire. GitLab intègre aussi le concept d’intégration et de livraison continu via GitLab CI/CD. C’est un concept clé dans les entreprises avec des développeurs. La phrase « Move fast and break things » a souvent été citée par les acteurs de la Silicon Valley. Elle n’est pas à prendre au pied de la lettre, mais elle montre que la rapidité est une clé de la réussite. Néanmoins, on ne peut pas être seulement rapide, sinon la qualité du code des applications et leurs stabilités ne seraient pas optimales. C’est là que le concept de CI/CD rentre en jeu. Grâce au concept d’intégration continue, les développeurs vont pouvoir développer une fonctionnalité, puis tester tout au long du processus de développement, son fonctionnement, la qualité de son code ainsi que son niveau de sécurité. Grâce au concept de livraison continu, les développeurs vont pouvoir déployer automatiquement leur nouvelle fonctionnalité, tout en continuant à assurer un suivi de leurs fonctionnements une fois en production. Aujourd’hui, toutes les entreprises utilisent ou tendent vers ces concepts pour améliorer la fiabilité et la rapidité de développement des applications.

IaC : De l'infrastructure manuelle à l'Infrastructure as Code

« En traitant l’infrastructure comme du code, vous créez un moyen reproductible et fiable de gérer et d’approvisionner votre environnement ». La vision de Patrick Debois nous montre la puissance du concept d’Infrastructure as Code aussi appelé IaC. Comme il le décrit brièvement, l’IaC est une manière de penser un système d’infrastructure sous forme de code afin de le rendre plus lisible, efficace et maintenable. C’est avec cette vision que j’ai été amené à utiliser le concept d’Infrastructure as Code au sein de l’infrastructure du Ministère des Armées. Étant donné que la réalisation s’est déroulée au sein du Ministère des Armées dans un contexte sensible, certaines informations ont été volontairement omises.

Kubernetes : Un cluster hautement disponible pour la production

Ma définition


Kubernetes est un outil qui a été démarré par trois ingénieurs de chez Google, Craig McLukie, Joe Beda et Brendan Burns. Il a été conçu pour atteindre une haute disponibilité des applicatifs. Le CTO d’Amazon a parfaitement résumé le quotidien d’un ingénieur en informatique avec cette phrase « Everything fails all the time ». Effectivement, l’humain et les Systèmes d’Informations que nous mettons en place sont faillibles, malgré une expertise pointue des ingénieurs. Nous ne pouvons pas arrêter de faire des erreurs, mais nous pouvons réduire drastiquement leur impact, notamment avec Kubernetes qui propose d’appliquer plusieurs concepts. Comme la redondance et l’auto-réparation des applicatifs ou encore le principe de cohabitation de deux versions d’un même applicatif pour rendre plus transparent un changement de version de ce dernier. Ce concept est essentiel pour mon profil d’administrateur SRE. Le rôle d’un administrateur SRE est d’assurer la fiabilité et l’efficacité des systèmes d’informations d’une entreprise. Certaines entreprises fournissent des services critiques avec de nombreuses attentes chez les clients et certaines organisations gouvernementales ont des missions ainsi que des devoirs à respecter. Dans ce cadre, les applicatifs qui permettent de répondre à ces problématiques se doivent d’être hautement disponibles. Quand l’on parle de la notion de hautement disponible, on essaie de tendre vers un applicatif ou un service qui est fonctionnel et qui est accessible plus de 99% du temps. L’objectif est d’atteindre un maximum de quatre jours d’inaccessibilité dans une année.

Monitoring : Une notion clé pour la fiabilité en entreprise

Ma définition


Le monitoring aussi appelé supervision est l’action de collecter des métriques pour optimiser et prévenir les incidents avant qu’ils ne deviennent critiques. La citation de Peter Drucker « If you can’t measure it, you can’t improve it. » dévoile l’importance de la supervision dans une chaine de production. Dans le métier d’administrateur SRE, cette étape est utilisée lors du déploiement/livraison continu. Lors de la livraison ou du déploiement, elle permet de s’assurer que l’application fonctionne toujours correctement et qu’il n’y a pas eu de dégradation des performances. Au-delà de l’intégration continue et de la livraison continue, elle permet de prévenir les pannes. Par exemple, une application peut se retrouver avec beaucoup plus d’utilisateurs que prévu dû à une collaboration commerciale. Dans ce cadre, si l’application n’arrive pas à allouer de nouvelles ressources suffisamment vite ou si l’application n’est plus accessible, nous serons prévenus via les canaux configurés (Teams, Message, Slack, etc.). Cette notion est importante pour les administrateurs SRE, car elle permet de prévenir et d’avoir une visibilité sur les pannes pour les rétablir rapidement. Elle est aussi importante pour les développeurs qui ont besoin de connaître le comportement des utilisateurs pour améliorer l’ergonomie des applications ou encore si une nouvelle fonctionnalité engendre des fuites de mémoires.

Virtualisation : Un concept présent dans toutes les entreprises

Ma définition


La virtualisation, c’est une technologie qui nous permet de créer plusieurs machines virtuelles sur une même machine physique. Pour faire cela, le concept de virtualisation est possible grâce à un logiciel appelé hyperviseur. Par exemple, cet hyperviseur va nous permettre d’accéder à une machine virtuelle sous la forme d’un onglet sur notre machine physique. Grâce à cela, il est possible de diviser les ressources de la machine sur plusieurs machines virtuelles pour améliorer la répartition de ces dernières. De plus, chaque machine virtuelle peut être complètement isolée de la machine physique, ce qui accroît la sécurité. Elle peut être créée, supprimée, dupliquée, sauvegardée très simplement, ce qui lui permet une grande flexibilité. C’est pour ces différentes raisons que la virtualisation est présente dans toutes les infrastructures d’entreprises. La virtualisation est une notion nécessaire à la gestion d’infrastructure.

Vulgarisation : La vérification de la maîtrise d’une autre compétence

Ma définition


La vulgarisation est la compétence de rendre une notion complexe, simple et compréhensible pour une personne qui ne la maîtrise pas. D’après Albert Einstein, « If you can’t explain it simply, you don’t understand it well enough », cette citation montre l’importance de s’avoir vulgariser. Elle nous permet de s’auto-valider notre compréhension de la notion que nous vulgarisons. Tout en permettant de la transmettre. C’est essentiel dans le milieu professionnel, car elle augmente notre crédibilité et notre sérieux auprès de nos collègues et de nos supérieurs. De plus, pouvoir vulgariser une notion et la rendre compréhensible augmente notre satisfaction personnelle ainsi que notre estime de soi. Cette dernière est très importante, surtout lorsque l’on sait qu’environ 58% des travailleurs dans le monde de l’informatique souffrent du syndrome de l’imposteur. La vulgarisation est une arme indispensable contre nous-mêmes. Elle nous permet de ne pas tomber dans le syndrome de l’imposteur.