Le travail des ingénieurs de production informatique

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

Le travail des ingénieurs de production informatique

LE TRAVAIL DES INGENIEURS DE PRODUCTION Bref rappel sur le cycle de vie des applications Le cycle de vie des applications informatiques ...