30.06.2007: mainframe vraiment stoppé !
Projet NACA Solutions Linux 2009 Didier Durand (
[email protected]) Paris | 1er avril 2009
Agenda
2. 3. 4. 5. 6.
Présentation Publicitas / DD Origine / naissance du projet Stratégie générale de migration Conversion de l'application maison (pub2000) Bénéfices • •
tangibles intangibles
NACA = New Architecture for Core Applications ou Nouvelle Architecture Centrale d'Applications |
|2
Publicitas - présentation
• • • •
• • • • • •
• |
|3
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
Origines du projet
Indice Publicitas des dépenses publicitaires en Suisse
•
•
•
|
• • •
|4
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
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 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%
logiciels tiers logiciels IBM (zOS, Cics, DB2, etc..
Périphériques Cpu
Analyse •
Le Logiciel IBM est le "point chaud"
•
Un environnement plus compétitif est impératif
•
Il aura un impact positif sur les logiciels tiers
•
Hardware/périphériques ne représentent pas la priorité initiale on pourrait rester sur 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)
|
|8
Conséquences de la bascule Intel pour NACA: - forte réduction des coûts HW (aussi !) - 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
• • • •
|
| 10
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….)
Conduite du projet - Principes directeurs •
• •
•
•
•
• • • •
•
• •
•
• • •
•
• •
• |
| 11
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)
NACA - Après
New Apache
New
New
New
Tomcat
Perl New
Open Source Technologies |
| 12
Proprietary Technologies
Origines du projet Legacy Operating System MVS
MVS
Transaction Manager
CICS
NACA Linux
Tomcat Screen Management
BMS
Apache Database
DB2
Batch Control
JCL
UDB & Korn Shell Perl
Printing / Output Management
PSF + Archie
Cups System Admin
|
| 13
TSO, JES, BMC, etc…
& Plugins
Origines du projet Legacy Operating System MVS
MVS
Transaction Manager
CICS
NACA Linux
Tomcat
Screen Management
BMS
Apache Database
DB2
Batch Control
JCL
UDB & Korn Shell Perl
Printing / Output Management
PSF + Archie
Cups System Admin
|
| 14
TSO, JES, BMC, etc…
& Plugins
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 copy
Lexical Analysis
Syntax Analysis
Semantics Analysis
Code Generation
BMS desc
Internal Object implementation
“Cobol” support SQL support Display support CICS Emulation Tracing / logging White Box Testing
Pub2000 CICS Inventory • 780 programs • 2’200’000 lines Cobol • 1’930 includes • 580 DB2 tables • 500 BMS maps
|
| 16
DBMS
Java Program (incl SQL)
Containing servlet
XML Screen
Cocoon & Apache
facteur essentiel de succès = migration progressive
CICS
DB2
Java becomes reference
Activity
• 100% of data on DB2 • Cobol remains reference
Instantaneous way back to old system
Java on Tomcat
Progressive Migration DRDA connection
Cobol on Cics
Data Migration to UDB
100%
0% Tomcat
6-9 months
Big Bang Avoidance = Success key !! |
| 17
2-3 months
Time
Mainframe Switched off
Automated "blackbox" testing 3270 CICS
(1)
XML Screen Data
XML Screen Data
(4) when (1) & (3) different (3) 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
COBOL
Transcoder or run-time or Cobol bug fixes
XML Screen Data
(2)
DB2
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
•
• • • • •
|
| 20
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
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
[email protected] M: +41 79 212 21 53
|
| 24