Du développement d'une application à la mise en production

Introduction

Des phases et des environnements différents

La phase de développement

La phase de préproduction

Le cas des progiciels

La phase de production

La phase de maintenance

En matière de conclusion : Le système des informations et la gouvernance

 

 

Introduction

Le but de cette présentation est d'aborder concrètement, dans le contexte de l'entreprise, les principales étapes et processus de mise en production d'une application et de ses données, de sa phase de développement jusqu'à sa maintenance.

Ou comment intéger un programme et des données à un environnement industriel.

Les objectifs visés :

Cela veut dire , pour les développeurs et administrateurs que nous sommes, dépasser la satisfaction d'avoir écrit un programme qui répond aux exigences fonctionnelles des spécifications détaillées,
voire simplement, d'avoir réussi à écrire un programme qui fonctionne ;-)

Exemples centrés sur les bases de données et les applications web.

Des phases et des environnements différents

Dans le cycle de vie du SI il existe un certain nombre de phases distinctes, nous nous focaliserons sur 4 d'entre elles

a l'issue de chaque phase, on devra obtenir les documents, scripts, programme nécessaires au passage à la phase suivante. En ce qui nous concerne, par exemple outre le programme développé, tous les éléments permettant le passage en préproduction.

Un peu plus dans le détail nous pouvons présenter un exemple concret objectifs et livrables de chaque phase :

Étapes

Objectif

Livrables

Expression des besoins Rassembler et formaliser les besoins dans un domaine technique ou fonctionnel Dossier d’expression des besoins
Cahier des Charges
Étude d’opportunité Étudier et formaliser les éléments nécessaires à la prise de décision sur le lancement ou non d’un projet Dossier d’Étude d’opportunité
Conception Étudier du général vers le détaillé les spécifications de la solutionÉventuellement maquetter Dossier d’étude préalable,
Dossier d’étude détaillée
Dossier d’Architecture
Dossier de Description des Données,  
Dossier d’étude technique
Planification Mettre en place le projet : organisation de l’équipe, des moyens matériels et humains,Définition des tâches, élaboration des plannings Planning du projet
Organisation de l’équipe de réalisation
Développement Construire la solution retenue selon les spécifications validées

Programmes,
Scripts de création du schéma BD, des shell scripts
Dossier d’installation, Procédures arrêt redémarrage de l’application
Descriptions des traitements différés (batchs)

Tests, Recette, préproduction Valider la conformité de la solution construite et de sa capacité à la mise en production Plan de tests
Dossier d’Architecture
Cahier des contraintes techniques
Description des Données
Consignes d’exploitation
Mise en œuvre Installer et déployer la solution recettée Dossier d’installation
Exploitation Surveiller, Administrer les comptes et les système, Sauvegarder, Épurer, Archiver, Exécuter les travaux différés, Déceler les incidents de production Journal de Bord
Consignes et modes opératoires (sauvegardes, restauration, redémarrage, reprise après panne, ...)
Maintenance Prise en compte des anomalies et demandes d’évolutions
Mesure de la performance et controle qualité

Suivi des anomalies et demandes d’évolutions
Tableau de bord

les environnements associés

On aura 3 environnements (plus ou moins) distincts pour passer du développement, au test et à la mise en production :

architecture 'idéale'

architecture minimale

l'architecture 'idéale' est une architecture à 3 tiers, la minimale à 2 tiers (base locale au serveur)
on pourrait imaginer une architecture minimaliste (à bannir) : srv de DEV = srv de TEST = srv de PROD

spécificités des environnements

Chaque environnement est spécifique en terme de charge, de ressources, de standardisation, de disponibilité, de niveau de sécurité, ou de qualité de service du manière générale. C'est surtout pour cela qu'il est nécessaire d'avoir des environnements distincts.

 
ressources
charge USER
disponibilité
confidentialité 
/ intégrité
DEV
poste
serveur
BD
****
* / ***
**
-
*
**
*
**
**
*
**
*
TEST
poste
serveur
BD 
**
***
***
-
****
**** 
*
**
** 
*
**
*
PROD
poste
serveur
BD 

* **** ****
-
****
****
*
****
****
****
****
****

Du fait de cette hétérogénéité du SI, standards et normes sont très importants. En production bien sûr pour des raisons d'efficacité, mais entre les 3 environnements, pour éviter les problèmes d'incompatibilité.

quelques exemples de spécificités

 

une dérive classique, consiste à recopier les bases de PROD dans la base de TEST, voire dans la base de DEV. Cela évite d'avoir à produire un jeu d'essai (pertinence parfois complexe à réaliser) ou d'initialiser le schéma lors du développement d'une nouvelle version.
Effet pervers : plus aucune confidentialité, des volumes totalement superflus

 

La phase de développement

Développer un programme fonctionnellement satisfaisant n'est pas suffisant (d'où l'utilité d'une recette technique en plus de la fonctionnelle)
Outre le développement du programme dans un langage donné il existe un certain nombre d'outil logicies complémentaires, parfois intégrés au sein d'un logiciel complexe

Ne pas mélanger les genres

Utiliser des ateliers de génie logiciel complets ou des utilitaires additionnels pour développer, qui permettent de :

exemples de livrables spécifiques BDs

Ils peuvent revétir différentes formes : Shells, SQL, .bat

exemples de scripts SQL

exemple de script général

-- cr_schema.sql
spool ian_log
@@cr_tab.sql @@cr_dblink.sql @@cr_view.sql @@init_data.sql @@cr_syn.sql @@cr_pack.sql @@cr_fonc.sql @@cr_proc.sql @@cr_seq.sql @@cr_trig.sql
-- execution d'une procedure stockée DECLARE RETOUR NUMBER; BEGIN RETOUR := NULL; MAJ_ANNUAIRE ( RETOUR ); DBMS_OUTPUT.Put_Line('RETOUR = ' || TO_CHAR(RETOUR)); COMMIT; END; /
-- verif SELECT COUNT(*) FROM t_ANNUAIRE;
-- fermeture des logs SPOOL OFF
exemple de scripts de gestion de droits
-- cr_grant.sql

CREATE ROLE AN_CONS;
CREATE ROLE AN_ADMIN;
GRANT SELECT ON TEL TO AN_ADMIN;
GRANT UPDATE ON TEL TO AN_ADMIN;
GRANT DELETE ON TEL TO AN_ADMIN;
GRANT INSERT ON TEL TO AN_ADMIN;
GRANT SELECT ON TEL TO AN_UTIL;
GRANT UPDATE ON TEL TO AN_UTIL;
GRANT SELECT ON TEL TO AN_CONS;
GRANT SELECT ON ANNUAIRE TO AN_CONS;
GRANT AN_UTIL TO UTIL1;
GRANT AN_CONS TO UTIL2;

Un cahier des contraintes techniques

Un cahier des contraintes techniques (matérielles et logicielles) est nécessaire, surtout dans le cas de mise en place de progiciel.
Il sera transmis aux fournisseurs dès l'expression du besoin.

OS client (+ SP, + niveau kernel), type de navigateur, niveau d'HTML supporté, capacité mémoire et disque
OS serveur (+ SP, + niveau kernel)
logiciels systèmes (SGBDs
protocole supportés : TCP/IP, SQL*Net, webdav, samba, http, SSL, ...
et les caractéristiques techniques détailléesdes différents composant matériels du SI.

Un peu de méthode

Outre les méthodes classiques et les ateliers de génie logiciel associés (MERISE, MEGA, CASEs, UML) qui dépendent de la technologie retenue et des choix stratégiques de l'entreprise, on pourra mettre à profit une méthode comme XP, pratique et facile à mettre en oeuvre.

extrême programming : XP.
Comme son nom l'indique elle est très orienté développement mais l'assurance qualité est très présente dans cette méthode.
Les concepts sont simples et issues de l'expérience de la communauté des programmeurs. Il n'y a pas d'outil lourds à mettre en place , mais des préconisations de pratiques référenbtes (best practices).
En collaboration étroite et récurrente avec l'utilisateur final, la satisfaction de ce dernier est plus probable.

exemple : le manuel utilisateur peut servir, trèe en amont, de spécification détaillée.

Voir 'a gentle introduction to XP'

 

La phase de préproduction

la distribution du programme et/ou de son environnement

autres exemples lourds : appli designer, applet, programme VB ou access. Leger : appli ASP/PHP, appli J2EE

la migration des données

la migration évoquée ici concerne le passage de la BD de developpement vers la BD de test. Ce processus peut aussi être utilisé lors du développement en cas de récupération de données d'un ancien logiciel existant déja dans l'entreprise.

les procédures de mise en préproduction

la préproduction est partculièrement délicate lorsque l'environnement est éloigné de l'environnement de PROD. Il peut être nécessaire dans ce cas de faire les TESTs en PROD.
exemples : de easyPHP local Apache/Mysql@free.fr, de MYSQL à Oracle

Le cas des progiciels

Dans le cas d'un progiciel, la phase de développement est évidemment inexistante.
Importance :

Il doit idéalement vérifier le cahier des contraintes techniques (mais ca n'arrive jamais ;-(
... et dans le cas contraire subir des adaptations pour son intégration.

 

La phase de production

le cas échéant, avant la mise en production effective de l'application, on formera les utilisateurs à l'utilisation du logiciel

 

La phase de maintenance

c'est la qu'on va tester la qualité du code, sa lisibilité, sa pérennité / portabilité
et ... la qualité de la doc

 

Le système des informations et la gouvernance informatique

Le système d'informations (S.I) de l'entreprise est un objet complexe

Complexité de l'informatique, en terme :

On vise un meilleur controle des processus et une informatique orientée service.
La gouvernance informatique
(IT governance) directement issue de la gouvernance d'entreprise, prend en compte l'organisation de manière systémique pour satisfaire ces objectifs d'efficacité.

exemples d'outils et référentiels associés à la gouvernance

(d'après le journal du net) Le mécanisme de la gouvernance s'appuie sur trois grands axes :
- la stratégie qui définit les objectifs de la DSI à moyen et à long terme ;
- le pilotage qui a pour but d'atteindre les objectifs fixés et de contrôler le système d'information ;
- l'organisation qui structure l'activité informatique de l'entreprise au travers d'un cadre de référence.

ITIL : I.T Infrastructure Library (Bibliothèque d'infrastructure informatique)
C 'est un ensemble de recommandations mises au point par le bureau gouvernemental du commerce britanique (OGC)
Elles visent à améliorer la qualité des 'services' informatiques fournis aux utilisateurs.
Certains des septs processus abordés parles ouvrages de la librairie ITIL concernent le processus de mise en production.
Les grandes sociétés de service et de consulting anglo saxonnes s'appuient sur cette librairie. ITIL est conforme à la norme ISO 20000.

les principaux livres de la librairie ITIL (d'après Frédéric Georgel)


Pour plus d'infos voir le site officiel de l'ITIL

le COBIT, Control objectives for information and related technology,
Le modèle CobiT (Control Objectives for Business & Related Technology) est une méthode de Maîtrise des Systèmes d’Information (IT Gouvernance) et d'audit de systèmes d'information, éditée par l’Information System Audit & Control Association (ISACA) en 1996. C'est un modèle qui vise à aider le management à gérer les risques (sécurité, fiabilité, conformité) et les investissements.

Domaines et processus de COBIT (d'après Frédéric Georgel)

 

 

(c) 2002- 2006 Didier Deléglise


(c) 2002- 2006 Didier Deléglise


modifié
le 20/11/2006

Ecrire a DD
ecris
moi


les forums techniques Oracle

mon BLOG Oracle,
en Francais
connaitre DD
l'autre vie
de DD

mon CV

trucs
et astuces

JOBs Oracle
du jour
Homepage "Tout sur Oracle"
Mon site :
Tout sur Oracle (et le web)
Copyright (C) 2002
Utilisation de ces documents