LE TRAVAIL
DES INGENIEURS DE PRODUCTION
Bref
rappel sur le cycle de vie des applications
Le cycle de vie des applications informatiques
comprend généralement les phases suivantes :
·
La conception :
définition des contours en accord avec les besoins du client.
·
Le développement :
écriture du code.
·
La qualification :
tester l’application pour s’assurer qu’elle répond aux besoins du client et aux
exigences de qualité définies. Généralement c’est l’équipe projet qui s’en
occupe.
·
L’homologation :
faire tester l’application par les utilisateurs finaux dans des conditions
similaires à la production. Phase appelée aussi UAT (User Acceptance Tests).
·
La mise en
production : déployer l’application dans son environnement cible pour qu’elle
puisse être exploité.
·
La stabilisation
(ou suivi post production) : veiller au grain pour corriger au plus vite
les premiers incidents de production liés au développement jusqu’à la
stabilisation de l’application.
·
La production :
phase d’exploitation et de maintenance.
·
Le décommissionnement :
retrait de l’application du parc
lorsqu’on ne l’utilise plus.
Mission
des ingénieurs de production
Le rôle des ingénieurs de production est
d'opérer les applications lorsqu'elles sont en production. Ils participent à
leur déploiement (mise en production) et s’assurent que ces dernières
continuent de fonctionner normalement (maintien en condition opérationnelles) pour
être exploitées de façon optimale par les utilisateurs. Dans le cadre de cette
mission ils fournissent essentiellement les services suivants :
- La prise en charge des incidents,
- La réalisation des demandes de changements,
- Le traitement de certains types de requêtes sensibles,
- La supervision (monitoring) des ressources d’infrastructures afin d'anticiper les
incidents et de minimiser voire annuler leurs impacts sur le bon
fonctionnement des applications.
- L’optimisation
de ces ressources afin de garantir les meilleures performances en terme de
fiabilité, de sécurité et de disponibilité des applications.
- L’amélioration
continue des services.
- La gestion
des environnements de pré-production et/ou d’homologation ainsi que le
provisionnement de ces
environnements.
- Garantir que les ressources d’infrastructure sont
à jour en terme de niveau de patching.
- La prise en charge des demandes d’automatisation liées au plan
batch.
L’équipe
de production en général
Les ingénieurs de production ne sont
évidemment pas les seuls intervenants au niveau de la production. On y trouve
aussi les Incident manager qui
s’assurent que les incidents sont bien détectés, assignés, suivis, traités et
documentés en respectant le processus de gestion associé défini au sein de
l’organisation. Les Change manager
et les Problem manager font un
travail similaire respectivement pour les demandes de changements et les
problèmes. On peut avoir aussi une Tour de contrôle qui regroupe ces trois
types d’intervenants. Ceci sans compter le Responsable de la production qui
coiffe toute cette équipe. La liste n’est pas exhaustive bien sûr. A titre
d’exemple certaines organisations ont un Service
Desk au niveau de l’équipe de production, qui est le point d’entrée pour
les demandes de services et qui les qualifie en premier avant de les router
vers les équipes d’ingénieurs de production adéquates. Ce service peut
travailler également à fournir des statistiques intéressantes au management
concernant les demandes afin d’aider à la prise de décision. On peut trouver
également des postes de Référents intégrés
à la production. Le Référent est généralement spécialisé sur une application
sur laquelle il possède plusieurs années d’expérience en terme de support et/ou
une certification, ce qui fait de lui un expert reconnu dans son domaine. Evidemment
tous ces intervenants sont coiffés par un Manager
qu’on peut appeler Responsable de la
production.
Clients et
fournisseurs
Du fait qu’ils sont les garants du bon
fonctionnement de la production, les ingénieurs de production sont susceptibles
de collaborer avec toutes les équipes de l’entreprise qui interviennent sur les
applications et l’infrastructure. De façon directe, ils fournissent des
services à minima aux utilisateurs
finaux chez le client, aux équipes de supports
fonctionnels, aux équipes projets
et aux éditeurs lorsqu’il s’agit
d’intervenir sur l’infrastructure (requêtes, incidents, changements, …). Ils
s’appuient également sur les administrateurs
(admin systèmes, admin de base de données, admin middleware, …) et les référents pour effectuer des tâches qui
requièrent un certain niveau d’expertise et d’habilitation.
Techniques,
fonctionnels ou les deux
En fonction du périmètre d'intervention
sur l'application on peut distinguer deux types d'ingénieurs de production.
- Les ingénieurs de production fonctionnels interviennent au niveau du « contenu »
: paramétrage et données,
- Les ingénieurs de production techniques interviennent au niveau du « contenant »
: infrastructure.
Dans certaines organisations on peut
trouver des ingénieurs de production « technico-fonctionnels » qui
assument les deux rôles.
Compétences
requises
Les grosses banques possèdent plusieurs
clients et gèrent un énorme volume de transactions au quotidien. Elles
fournissent également plusieurs types de produits et interagissent avec
plusieurs organismes tels que des gouvernements, des régulateurs, d’autres organismes
financiers, d’autres entreprises de secteurs différents, etc. De ce fait
plusieurs applications tant internes qu’externes interagissent pour délivrer
les services bancaires aux clients. Toutefois, en général il y a une
application centrale, le Core Banking System (CBS) qui est au cœur et permet de
gérer notamment les clients, les comptes, les prêts, les dépôts, et d’autres
services financiers de base. Cette application est la plus sensible et tout une
architecture de sécurité est construite autour. Le CBS échange des données avec
plusieurs autres applications internes (leasing, lutte anti blanchiment,
business intelligence, …) et externes (plateforme Swift pour les flux
financiers internationaux, gestion des distributeurs automatiques, applications
digitales de partenaires tierces, …).
Pour bien fonctionner ces applications ont
besoin d'une infrastructure logicielle qui combine généralement une
ou plusieurs des briques suivantes (liste non exhaustive) :
- Un système d'exploitation,
- Un système de gestion de base de données,
- Un serveur d'application pour les applications
web,
- Un serveur web pour les applications web,
- Un ordonnanceur dans le cas où il y a des
traitements batchs,
- Un client de messagerie pour permettre l’envoi
des alertes mails,
- Un outil de transfert de fichiers dans le cas des
applications qui échangent des fichiers avec d’autres applications,
- Un outil de messaging inter-application pour des
applications échangeant des messages avec d’autres,
- Des composants pour la sécurité et la gestion des
accès tels les autorités de certifications, les trousseaux de clés et les
outils de gestion d’identité et des accès (IAM).
- Une plateforme de gestion des API (API Gateway)
pour les applications digitales voulant communiquer avec les applications
internes (CBS et autres).
- Des outils DEVOPS.
- Etc.
Aussi, pour assurer la sécurité de la
production et minimiser les risques d’incidents, ainsi que pour assurer un
niveau de service de qualité aux clients, un ensemble de procédures et de
pratiques doivent être respectés tant au niveau technique qu’organisationnel.
Le framework ITIL et/ou les
pratiques Devops offrent des outils
puissants qui ont fait leurs preuves dans ce domaine.
A noter qu’aujourd’hui, dans toutes les
banques d’envergures et sérieuses, les infrastructures sont provisionnées via
un Cloud que cela soit public (Amazon, Azure, Google Cloud Platform, IBM DMZR,
…), privé ou hybride.
L’ingénieur de production devra connaitre
le nécessaire sur les applications qu’il gère, les composants d’infrastructures
sur lesquels tournent ces applications ainsi que les procédures et pratiques en
vigueur au sein de son entreprise. C’est pourquoi il possède généralement un
profil presque passe partout. L’avantage est qu’il a plein de possibilités de
choix de domaines d’expertise au fil des années. L’inconvénient est qu’il doit
apprendre au quotidien pour se maintenir à jour dans plusieurs domaines.
Ci-dessous un tableau qui liste, de façon
non exhaustive les domaines de compétences qui peuvent être attendus d’un
ingénieur de production (en 2024) au niveau des banques françaises et dont nous
traiterons les bases dans ce site.
|
Domaine |
Compétences
|
|
Systèmes d’exploitation |
· Windows · Linux
(Red Hat surtout) |
|
Systèmes de gestion de bases de données |
· Oracle · SQL
Server · PostgreSQL |
|
Serveurs d’applications |
· Apache
Tomcat · IBM
Websphere application server |
|
Serveurs web |
· Apache
HTTPD |
|
Ordonnanceurs |
· Control-M · Autosys |
|
Outils de transfert de fichiers |
· Axway Transfer
CFT · SFTP |
|
Messaging inter-applications |
· JMS, IBM
MQ Series |
|
Sécurité |
· GPG · Certificats |
|
Cloud |
· Fondamentaux |
|
Outils DEVOPS |
· Puppet · Ansible · Terraform · Git et
Github · Jenkins · Bitbucket · Docker · Kubernetes |
|
IT Management |
· Gestion
des incidents · Gestion
des changements · Gestion
des requêtes · Gestion
des problèmes · Amélioration
continue |
|
Cloud |
· Fondamentaux |
|
Outils de travails |
· Filezilla · Winscp · Putty |
Niveaux de
supports dans la production
En fonction de l'habilitation ainsi que du
niveau d'expertise sur les applications on distingue généralement les niveaux
de support (levels en anglais) suivants :
- Le support de niveau 1 (L1) : constitués généralement de techniciens ou d’analystes
qui peuvent réaliser des tâches avec une procédure très claire afin de résoudre
des incidents et traiter des demandes de services. Certaines organisations
les appellent des pilotes d’exploitation.
- Le support de niveau 2 (L2) : les ingénieurs de production possédant plus
d'habilitations et d'expertise. Ils sont capables, de façon autonome, à
prendre en charge des demandes ou incidents sans procédure décrite, en
requérant à leurs connaissances plus poussées et leur expérience sur la
production.
- Le support de niveau 3 (L3) : les éditeurs qui ont créés l’application et possèdent évidemment
le niveau d’expertise le plus élevé sur celle-ci.
Généralement dans le cadre du support sur l’infrastructure,
les ingénieurs de production assurent le premier niveau (L1) et peuvent
solliciter les administrateurs dédiés - administrateurs systèmes, DBA,
administrateurs réseaux, … - pour le second niveau de support (L2). Ces
derniers vont faire appels aux éditeurs des applications concernées en cas de
besoin.
Gestion de
la continuité de service
Vue la nécessité pour les applications
bancaires et similaires de tourner 24H/24 et 7J/7, les ingénieurs de production
peuvent être emmenés à intervenir durant les heures non ouvrées (week-ends,
fériés, heures de pause, nuit) pour effectuer des tâches ou opérations
planifiées à l’avance. Il peut s’agir par exemple de la réalisation de
changements significatifs ou majeurs nécessitant une interruption de service
(durant les week-ends par exemple : patching, répétition générale, mise en
production, …). Il est possible également que ces interventions ne soient pas
planifiées et dans ce cas l’ingénieur est réservé pour une période où il doit
rester joignable et apte à prendre en charge une tâche en cas de besoin. On
appelle cela une astreinte.
Pour les organisations de types
multinationales telle que les grandes banques qui sont généralement implantées
dans plusieurs pays du globe, le principe du Follow The Sun est utilisé pour assurer une couverture 24h/24 de la
production. Il s’agit concrètement de jouer sur les décalages horaires et faire
en sorte que les équipes de production soient répartis dans des pays avec
horaires différentes pour minimiser les interventions des ingénieurs en dehors
de leurs heures ouvrées. Ainsi des ingénieurs qui travaillent à Paris jusqu’à
18h peuvent passer le relais à leurs collègues à Montréal où il est 12h au même
moment. Ce passage de relais (ou handover)
est généralement matérialisé par un document où l’équipe passante fourni les
informations concernant ce qui est fait et le reste à faire à l’équipe qui
reprend le service.
Vocation
de ce site
Ce site a pour vocation de fournir les
notions de bases, aussi bien sur le volet technique et organisationnel, aux
futurs ingénieurs de production. Il peut servir également de rappel intéressant
pour les actuels ingénieurs de production. Il contient des articles qui
fournissent plus d’explications sur les notions déjà mentionné dans cette
introduction. Mais aussi des tutoriels ou des mémos sur les composants
d’infrastructures logicielles les plus utilisées dans la production bancaire.
Aucun commentaire:
Enregistrer un commentaire