Le métier d’ingénieur DevOps est au carrefour de deux métiers indépendants : celui du développeur réalisant la solution, et celui de l’administrateur se chargeant d'exploiter et de déployer cette application. Plus qu’une profession, ce métier d'ingénieur est presque un courant de pensée tendant à transformer la vision de l’informatique. Si vous souhaitez exercer cette profession, découvrez dans cet article les compétences et les missions du métier d'ingénieur DevOps.
La profession d'ingénieur DevOps est la nouvelle profession star de l'IT. Le DevOps ingénieur est parmi les profils les plus sollicités dans l'IT. La première mission de ce professionnel est de faire le lien entre l'administration systèmes et le développement.
Cet ingénieur supervise surtout les mises en production et les tests et veille à ce que les programmes atteignent des performances souhaitées. Le profil de l'ingénieur DevOps est ainsi hybride. Ce professionnel doit réunir des savoir-faire en test et développement applicatifs ainsi qu'en production informatique.
L’ingénieur DevOps est aussi un professionnel expérimenté pouvant comprendre le processus global du développement de la solution, des spécifications de cette solution à sa mise production.
Cet ingénieur peut s’approprier les exigences fonctionnelles et non-fonctionnelles ; en d'autres termes, ce qui n’est pas demandé explicitement dans les spécifications.
De par son cursus, l’ingénieur DevOps a plutôt des compétences dans l'administration des réseaux et systèmes informatiques.
La personnalisation des solutions existantes ou encore le développement logiciel faisant partie du travail d’un ingénieur, connaitre certains langages de programmation (C, C++, Java, PHP et Python) est aussi parfois essentiel.
Vous devez connaître des outils web open source afin de faire du monitoring ou bien du rendu.
Des connaissances solides dans le domaine de l'administration systèmes sont indispensables, avec en particulier les outils open source.
L’ingénieur DevOps est chargé de la mise en place, de la gestion et de l'administration systèmes informatiques des sociétés pour lesquelles il travaille.
Ainsi, cet ingénieur se charge de :
Le rôle multisectoriel de cet ingénieur dans la société nécessite une bonne connaissance de chaque enjeu du déploiement des solutions dans les divers environnements de la société, et cela pour la qualité et rentabilité de production.
L'ingénieur doit comprendre et tenir compte des contraintes de production de l’entreprise l’employant, et cela, à partir de la phase de développement logiciel.
Mais outre les compétences techniques du métier, ce professionnel possède des qualités d’ingénieur DevOps. Il est donc aussi un manager, puisqu'il intervient comme le chef d’orchestre dans les équipes informatiques des structures qui font appel à lui quand il exerce en freelance.
Description :
- Mise en place, installation, paramétrage, automatisation, gestion de la sécurité (SSL - certificats) et
optimisation des infra (Legacy et Dockerisé) et environnements de déploiement horsProd et Prod.
- Veille technologique, Amélioration de plate-forme d'intégration continue, L'innovation, Assurer les
bonnes pratiques et Documentation.
- Support MOE et équipes de production
- Installation, maintenance et support des socles techniques (changement, optimisation, capacity
planning, surveillance)
- Qualification, tests et mise en production des nouvelles versions
- Gestion des incidents / problèmes N2/N3 (analyse, communication, résolution, rédaction postincident)
Réalisations :
- Migration de la plate-forme de déploiement.. C’est la migration de l'orchestrateur swarm vers
kubernetes.
- Mise en place du test de charge et amélioration de la qualité de performance sur les micro-services
sur un environnement kubernetes.
- Automatisation des livraisons de l’environnement préProd pour les applications légacy.
- Préparation de l'exercice de DR, qui consiste à basculer le serveur nominal vers le serveur de backup
et s'assurer que l’application fonctionne correctement.
- Migration de nexus OSS vers nexus3
- Mise à niveau des serveurs web Apache sur tous le composants legacy.
- Migration de la base de données oracle vers PostgreSQL sur le cloudSG.
- Mise en place de la plate-forme d'intégration continue sur le cloudSG notamment (Jenkins, nexus,
SonarQube..).
- Mise en place du package manager kubernetes HELM et le configurer pour l’ensemble des microservices
Description :
- Automatisation des processus de développement logiciel par la mise en place d’un pipeline d’outils
DevOps orchestré par l’outil Jenkins.
- Mise en place des environnements de tests à base de machines virtuelles ou de conteneurs.
- Automatisation de la mise en production des applications.
Réalisations :
- Mise en place d’un outil de gestion de code source GitLab qui a comme objectif la Création d’un repo
pour chaque projet et Gestion des tags et des branches.
- Mise en place de l’outil d’intégration continue Jenkins qui a comme objectif la création et
configuration des Jobs nécessaires pour faire l’intégration continue, la livraison et le déploiement
automatiques des projets.
- Création des Jenkins files (pipeline as code) qui décrivent les différentes étapes des Jobs et les stocker
dans GitLab et l’automatisation du déclenchement des Jobs.
- Mise en place d’un outil d’analyse statique de qualité de code SonarQube qui a comme objectif la
création d’un fichier de configuration de l’analyse pour chaque projet et le Paramétrage des
analyseurs (sonar scanner, sonar maven scanner…).
- Mise en place d’un gestionnaire d’artéfacts : Nexus OSS en configurant des repositories de format
« maven2 » pour chaque projet et le paramétrage des repositories avec l’outil maven.
- Création des Dockerfiles définissant les conteneurs qui seront utilisés pour déployer et tester les
différentes applications (Infra as Code) avec l’exposition des ports externes pour chaque service.
- Mise en place d’un outil Infra-as-Code Ansible et création des Playbooks (scripts écrits en YAML) pour
faire le déploiement automatique du zéro de certaines applications dans un environnement de
production (machines virtuelles).
-
Description :
Mise en place d'une plateforme B&D DevOps
Réalisations :
- Conception et réalisation d'une plateforme DevOps qui a pour objectif d'automatiser le processus de
la création d'un nouveau projet, qui va être par la suite implémenté dans toute une chaîne
d’intégration et déploiement continue « CI/CD ».
- Création d’une fonctionnalité pour visualisation des les artefacts générés après l’upload sur nexus à la
suite d’un Build réussit avec l’utilisation de l’api de Nexus
- Développement d’un endpoint qui permet d’afficher et l’état des conteneurs et la possibilité de les
gérer.
- Utilisation de l’api Gitlab afin d’afficher la liste des projets disponible.
- Utilisation de l’api Jenkins pour déclenche des builds et suivre l’output depus l’application.