Vous êtes sur la page 1sur 24

30.06.2007: mainframe vraiment stoppé !

Projet NACA
Solutions Linux 2009

Didier Durand (didier.durand@publicitas.com)


Paris | 1er avril 2009
Agenda

2. Présentation Publicitas / DD
3. Origine / naissance du projet
4. Stratégie générale de migration
5. Conversion de l'application maison (pub2000)
6. Bénéfices
• tangibles
• intangibles

NACA =
New Architecture for Core Applications
ou
Nouvelle Architecture Centrale d'Applications
| |2
Publicitas - présentation

• Régie publicitaire internationale basée à Lausanne (Suisse)


spécialisée dans la presse (journaux & magazines) et
Internet:
• régie exclusive de 400 titres suisses
• intermédiaire pour des milliers d'autres
• 60%+ de la publicité presse suisse traitée
• Société de PubliGroupe (autres = annuaires, marketing,
"custom publishing")
• CA 2008 : 1.12 milliard d'euros
• 1'650 collaborateurs
• présence dans 20+ pays
• extensions vers le "All Media": TV, radio, cinéma, etc…

• Didier Durand, 44 ans, 15 ans chez PubliGroupe,


actuellement resp. Architecture & Technologie pour
Publicitas
• blog: http://media-tech.blogspot.com
| |3
Origines du projet

Indice Publicitas
des dépenses publicitaires
en Suisse
Moment de la
décision NACA

• Système informatiques de Publicitas


• 2 machines à coûts fixes : réseau + mainframe:
• Budget global limité:
• en mauvaise conjoncture, c'est le budget des projets qui souffre
• Or, projets  avenir!
• donc, préserver l'avenir  restreindre le budget d'exploitation  "tuer"
les systèmes à coûts fixes

| |4
Application PUB 2000 - Avant / après NACA

Contexte applicatif:
• applicatif maison de gestions des commandes / ordres
d'insertion dans la presse. 100% code source disponible
• 1'500 utilisateurs internes
• 750'000 transactions /jour & 800'000 pages /mois
• travaux en batch nocturnes (270 types de documents)
• 500 écrans applicatifs / 1'500 tables relationnelles
Avant
• Environnement Mainframe z800 (350 Mips) IBM / CICS /
COBOL / DB2
• Réseau TCP/IP / émulation TN3270
• 4 millions de lignes de Cobol à transcoder (2'150
programmes)
Après
• cluster de serveurs Intel sous Linux Redhat
• Java / Apache Tomcat / IBM UDB
• n écrans HTML (+ javacript/AJAX & CSS)
• 4 millions de lignes de Java
| |5
Application "critique" et Open Source

• Risque: vous n'êtes pas seul - Google, NASA, Boeing,


Airbus, Areva, Wall-Street etc.. l'utilisent aussi à des
échelles énormes

• Qualité: relire "la Cathédrale et le Bazar" de E. Raymond

• Performances: le RoadRunner (#1 au monde - 1.026


pétaflop) fonctionne sous Linux !

• Sécurité: la "sécurité par l'ignorance" (logiciels


propriétaires) - La dissection par l'Open Source est bien plus
solide

• Support: seulement les forums ? ou plus…..  notre choix


de la distribution RedHat avec son support professionnel

| |6
Business case

100% = n * millions CHF/an Analyse


100%
• Le Logiciel IBM est le "point
90% logiciels tiers chaud"
80%
70% • Un environnement plus
logiciels IBM compétitif est impératif
60%
50% (zOS, Cics, DB2, etc.. • Il aura un impact positif sur
40% les logiciels tiers
30%
• Hardware/périphériques ne
20% Périphériques représentent pas la priorité
10% initiale  on pourrait rester sur
0%
Cpu hardware mainframe

Passage à l'Open Source: 70%+ des cash-outs quasi-annulés !


| |7
Serveurs Intel: la bonne surprise !

source: intel

Progrès architecture Intel >> Progrès architecture mainframe


(loi de Moore en pleine action !)
[volume x86 >> volume proceseurs mainframe)
Conséquences de la bascule Intel pour NACA:
- forte réduction des coûts HW (aussi !)
| |8
- architecture à croissance horizontale
Agenda

• Présentation Publicitas / DD
• Origine / naissance du projet
• Stratégie générale de migration
• Conversion de l'application maison (pub2000)

(NACA = New Architecture for Core Applications)

| |9
Bénéfices "intangibles"

• Open Source = standards


• En migrant vers le libre, on respecte naturellement les standards (de facto
ou de jure) de l'informatique: XML, J2EE, SOA, HTML, etc..

• Migration  modernisation:
• interface graphique pour tous les services systèmes (Webmin, etc.)
• outils modernes et très "pointus"

• Nouvelles fonctions "bonus": qq. exemples


• arrivée dans le monde Java / Linux ouvert: intégration globale beaucoup
plus simple (communication RPC synchrone et temps réel)
• PDF très cher / compliqué sur le mainframe  naturel sur Linux (permet
une digitalisation complète
• Système d'archivage (Knowledge Tree) permet une recherche "full-text"
• architecture à croissance horizontale plutôt que verticale  plus de
décisions d'upgrade complexes
• remplacement de fonctions maisons en Cobol par des packages Open
Source (tris, etc….)

| | 10
Conduite du projet - Principes directeurs

• Les économies financières comme pilote:


• les autres avantages de l'Open Source comme bonus
• de tels gains que le projet s'autofinance au cours de sa durée
• Migration 100% iso-fonctionnelle:
• les modifications applicatives "planteraient" le projet! (si, si…)
• Préserver les équipes en place:
• un NACA-like ne peut se faire contre les experts (fidèles) du système en place
• qui est mieux placer pour gérer après que ceux qui connaissent avant? (c'est
"juste une nouvelle technologie" - no big deal pour des ingénieurs-systèmes)
• chance d'évoluer pour les équipes en place  plan de formation solide
• pas de "jeunes loups" contre les "vieux crocodiles"
• Pas de big-bang:
• une infinité de petits pas plutôt de grands bonds (souvent fatals….)
• réversibilité de chaque étape
• Migration bottom-up:
• les fonctions système d'abord  système d'impression
• puis on "remonte" vers l'applicatif
• les équipes système peuvent "se faire la main" sur leurs outils
• Automatisation maximum:
• qualité
• productivité des utilisateurs finaux
• Patience et opiniâtreté: 4 ans initialement prévus (4.5 ans au final)
| | 11
NACA - Après

New
Apache

New
New

New

Tomcat

Perl
New

Open Source Technologies Proprietary Technologies

| | 12
Origines du projet
Legacy NACA
Operating System MVS MVS
Linux

Transaction Manager CICS

Tomcat
Screen Management BMS
Apache
Database DB2
UDB

Batch Control JCL & Korn Shell


Perl
Printing / Output Management PSF + Archie
Cups
System Admin TSO, JES, BMC, etc…
& Plugins

| | 13
Origines du projet
Legacy NACA
Operating System MVS MVS
Linux

Transaction Manager CICS

Tomcat

Screen Management BMS


Apache
Database DB2
UDB

Batch Control JCL & Korn Shell


Perl
Printing / Output Management PSF + Archie
Cups
System Admin TSO, JES, BMC, etc…
& Plugins

| | 14
Transcodage automatique - Pourquoi / Comment

• Exécution rapide du projet pour les économies:


• Mélange fonctionnel ("rengineering") / technologique interdit !
• Qualité du code homogène
• aucune dépendance sur les hommes, leur forme du jour, ….
• Répétition de l’opération
• fonctionnement à double COBOL / Java sur plusieurs mois (stabilité,
formation, etc….)
• pas d’interruption longue de la maintenance fonctionnelle
• Valeur ajoutée supplémentaire:
• génération automatisé de tests au moment du transcodage
• Évolution massive d’architecture possible à tout moment (à l’épreuve de
la production…): la couche "système" peut être ré-architecturé sans
modifier le nouveau source Java de l'application  optimisation
permanente durant la montée en charge.

• Outil maison suite à appel d'offres (très large) infructueux:


toujours "un peu de manuel"  le 100% automatique a été
critique dans le projet (autant de fois que nécessaire…)
| | 15
Transcodage automatique - L'outil

Cobol
pgm

Cobol Lexical Syntax Semantics Code


copy Analysis Analysis Analysis Generation
BMS
desc
“Cobol” support
SQL support
Internal Display support
Object
implementation CICS Emulation
Tracing / logging Java XML
White Box
Program Screen
Testing (incl SQL)
Pub2000 CICS Inventory
• 780 programs
• 2’200’000 lines Cobol
• 1’930 includes
Containing Cocoon &
• 580 DB2 tables DBMS servlet Apache
• 500 BMS maps

| | 16
facteur essentiel de succès = migration progressive

Java
becomes
reference
CICS DB2 Activity
• 100% of data on DB2
• Cobol remains reference
100%
Java

Migration to
Progressive on Tomcat
Migration

Data

UDB
Instantaneous
way back
DRDA
to old system
connection Cobol
on Cics
0%
Time
Tomcat 6-9 2-3
months months

Mainframe
Switched
Big Bang Avoidance = Success key !! off
| | 17
Automated "blackbox" testing

3270

CICS DB2 COBOL


(1)
XML Transcoder or
Screen run-time or Cobol
Data bug fixes

(2)
(4)
XML
Screen when (1) & (3) different
XML
Data
Screen (3)
Data
Tomcat

HTML
Cumulative effect:
-several thousand scenarios to be accumulated
- run every night
- used after migration when Java further maintained by people
- very useful to validate system changes
| | 18
Les outils de NACA

En Juillet 2008, la version 1.0 des outils de transcodage 100%


automatique du projet ont été mis en Open Source:
• NacaTrans: transcodeur Cobol vers Java - 83'000 lignes de code
source - 690 classes Java
• NacaRT: librairie d'exécution (verbes Cobol, accès SQL, émulation
CICS, multiples optimisations d'exécution, etc.) - 153'000 lignes de
code source - 890 classes Java.
• Licence GPL (NacaTrans) / LGPL (NacaRT)
• Version 1.1 publiée en Mars 2009 - d'autres à suivre!
• 500+ téléchargements à ce jour - Projets pilotes en route dans
d'autres grands comptes.
• Voir
http://media-tech.blogspot.com/2008/07/les-outils-du-projet-naca-de-
• Google Code: http://code.google.com/p/naca/
• Forum sur Google Groups:
http://groups.google.com/group/naca-automated-cobol-to-java-transco

| | 19
Tous les détails (publiés) de NACA

• Différents articles sur Media & Tech


• 1: Description globale du projet:
http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-

• 2: Trancodage automatique Cobol vers Java


http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automa
• 3: Aspects techniques du projet
http://media-tech.blogspot.com/2007/11/projet-naca3-prsentation-techniqu
• 4: Exemple de programme transcodé, intégration Eclipse
http://media-tech.blogspot.com/2007/11/naca-4-exemple-de-programme-tr
• 5: les outils NACA en Open Source:
http://media-tech.blogspot.com/2008/07/les-outils-du-projet-naca-de-public

| | 20
Agenda

• Présentation Publicitas / DD
• Origine / naissance du projet
• Stratégie générale de migration
• Conversion de l'application maison (pub2000)
• Conclusions

(NACA = New Architecture for Core Applications)

| | 21
Conclusions (1)

Points critiques:

• Le business case initial doit être clair: les avantages


financiers énormes de l'Open Source sont la motivation la
plus évidente directe du projet

• la progression à multiples petits pas et la réversibilité de


chaque mutation sont essentielles

• les inventaires des fonctions (applicatives et système) en


production doivent être 100% à jour  nous aurions pu
faire mieux….

• L'iso-fonctionnalité est un must: permet le transcodage


automatisé et le fabrication quasi-gratuite de jeux de tests
critiques au succès du projet

| | 22
Conclusions (2)

Bénéfices:
• Economies (vrais "cash-outs") de plusieurs millions d'euros / an
• Grande stabilité et excellentes performances (meilleures
qu'avant!...  loi de Moore)
• Un système technologiquement à l'état de l'art  la base
technologique pour bâtir le successeur de l'application PUB 2000
par reegineering progressif (création d'objets-métiers) … et sans
stress (les économies sont déjà faites!)
• Construction d'un propre centre de backup (qq. serveurs…)
• Architecture à croissance horizontale avec très faibles incréments
donc pas de décision pénible / procrastination
• des équipes systèmes et applicatives mutées à ces nouvelles
technologies (pari humain réussi !)

| | 23
Merci!

Publicitas
Didier Durand,
Head of Architecture & Technology
Business engineering
didier.durand@publicitas.com
M: +41 79 212 21 53

| | 24