jacinthe - indico.math.cnrs.fr€¦ · note initiale, extraits (13/12/2010) • pour assurer la...

46
Jacinthe Histoire d’un projet logiciel à épisodes pour la SMF Michel Demazure Mathrice, 9 avril 2013

Upload: others

Post on 17-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Jacinthe

Histoire d’un projet logiciel à épisodes pour la SMF

Michel Demazure

Mathrice, 9 avril 2013

Page 2: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 3: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 4: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le cadre

• La

– association (1872) reconnue d’utilité publique – trois fonctions

• société savante (2000 membres, individuels et institutions) • éditeur et distributeur (n° 1 mathématique en France,

revues papier et électroniques, monographies) • centre de colloques (CIRM, Marseille-Luminy)

– une petite entreprise à clientèle mondiale • hors CIRM (qui a une gestion spécifique) • six salariés, deux localisations (Paris, Marseille) • CA annuel : 500 K€

Mathrice, 9 avril 2013

Page 5: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Environnement en 2010

• Matériel – postes de travail individuels Macintosh

• Applications – une base de données 4D sur un poste (S.G.) – des logiciels de gestion SAGE

• venant de OS9 • comptabilité, amortissements, paye • gestion commerciale (GESCOM) sur deux postes (Paris et

Marseille), communiquant par transmission de fichiers

• Web – serveurs sous drupal (public, membres, ventes) – Mathrice

Mathrice, 9 avril 2013

Page 6: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Environnement en 2010

Mathrice, 9 avril 2013

Page 7: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Situation en 2010

• Difficultés majeures – pour assurer la cohérence des informations

– pour faire face aux réclamations de plus en plus nombreuses des clients

• Points noirs : – base 4D patchée à l’extrême, défaillante

– SAGE pas en réseau entre les deux sites

– applications « privées » non communicantes

– nomenclatures concurrentes

– « synchronisation » (sic) par courriel

Mathrice, 9 avril 2013

Page 8: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Une complexité objective

• Exemple : une institution 1. chinoise, membre de la société, 2. qui achète via un distributeur hollandais, 3. qui paye par une banque à Singapour, 4. demande l’envoi des factures à une adresse et l’envoi des

ouvrages à une autre adresse, 5. … et si ça se trouve, on l’a en double dans 4D !

• Analyse : la dualité tiers / clients – plusieurs « tiers » (nom, adresse, …) : membre, payeur,

correspondant… – plusieurs « clients » : plusieurs clients du système comptable, de

la gestion commerciale, plusieurs régimes douaniers…

Mathrice, 9 avril 2013

Page 9: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Note initiale, extraits (13/12/2010)

• Pour assurer la réussite de l’opération, il faut donc – ne pas charger la barque avec des fonctionnalités qui pourront être

ajoutées dans une deuxième phase ; – ne pas modifier l’ergonomie et les pratiques actuelles au-delà de ce qui

est nécessaire, et en particulier, conserver l’environnement Macintosh (au prix d’une complexité supplémentaire de développement des interfaces avec le composant SAGE) ;

– créer un mécanisme de pilotage efficace.

• Dans l’esprit de ce qui précède, les trois objectifs techniques essentiels sont – unifier les opérations comptables et financières sous SAGE (version

Mac) ; – créer sous MySql la base des tiers (qui remplacera la base actuelle sous

4D) ; – créer (OpenOffice) ou adapter (Drupal) les interfaces nécessaires pour

les utilisateurs.

Mathrice, 9 avril 2013

Page 10: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Décisions (début 2011)

• Refonte totale – démarche projet, comité de pilotage, chef de projet (« Kenji ») – objectif de basculement au 1/1/2012

• Principes – tout en réseau, tout accessible à tous (y compris Sage Gescom) – conserver l’environnement Macintosh – conserver Sage (donc Sage sur Mac : pas SQL, pas automatisable) – outils Open source (sauf Sage)

• Structure générale retenue – une base de données unique articulant « tiers » et « clients » – alimentant Sage en « clients » et alimentée par Sage en événements

commerciaux – accédée via des formulaires OpenOffice

Mathrice, 9 avril 2014

Page 11: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 12: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Vers Jacinthe

• Pourquoi ce nom ? – face à GesCom (SAGE « gestion commerciale ») – d’abord GesInt (« gestion interne »), puis Jacinthe

• 2 + 2 composantes sur un serveur interne OSX : – JacintheD : base de données MySQL – JacintheO : formulaires OpenOffice pour « parler à JacintheD » – Sage (GesCom) en réseau, communiquant avec Jacinthe par échanges

de fichiers – des scripts de management et de communication (SQL, bash,…)

• communication avec serveurs externes – ‘smf-2’ (proxy) – ‘smf’ (public, membres) – ‘smf-4’ (publications) – …

Mathrice, 9 avril 2013

Page 13: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Base de données (principe)

Mathrice, 9 avril 2013

Page 14: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Base de données (détails)

Mathrice, 9 avril 2013

Page 15: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Jacinthe 2012

Mathrice, 9 avril 2013

Page 16: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le basculement (1er janv. 2012)

• Énorme chantier (6/2011 – 3/2012): – normalisation de la nomenclature des produits, unification des

nomenclatures, unification des fichiers Sage entre Paris et Marseille, basculement comptable au 1/1/2012

– extinction de 4D au 1/1/2012, basculement de 6000 fiches

• Fin du développement (1/2012 – 3/2012) – articulation des diverses composantes, mise au point des

nouvelles procédures – « améliorations » rendues possibles par le nouveau système

• Apparition de manques – commodités disparues avec 4D, – SQL nécessaire pour les recherches complexes – pas d’outils de reporting au-delà des formulaires OO

Mathrice, 9 avril 2013

Page 17: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 18: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Une troisième composante

• Pour répondre aux manques – suite à une boutade en comité de pilotage (12/1/12) – premier commit (git@bitbucket) le 16/1/12, mise en

service v1 le 31/3/12 – en exploitation journalière depuis (v2 le 1/9/12)

• développée sous Windows en ruby + sequel + Qt – ruby : 26 modules, 56 classes, 553 méthodes – sequel : « reverse engineering » de la base – Qt : portabilité OSX / Windows / X (Gnome, etc.)

• JacintheReports (J2R) – deux GUI : rapporteur, auditeur – rapporteur batch, tableau de bord

Mathrice, 9 avril 2013

Page 19: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

« Reverse engineering »

• GUI (ou web service) – modèle (ORM) base de données avec sa structure – interface avec l’utilisateur (GUI ou vue/contrôleur) – jeu entre interface /modèle / contenu de la BD

• Initialisation, cas normal (cf. Rails, Sinatra, Groovy, …) – initialisation : config modèle – migration/update : nouvelle config

• Initialisation « inverse », cas de J2R – structure de la base JacintheD préexistante – extraction : structure de la base (SQL) config – config « compilée » et stockée (tables YAML) – migration/update : nouvelle structure nouvelle compilation

Mathrice, 9 avril 2013

Page 20: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le cas « normal »

Mathrice, 9 avril 2013

Page 21: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le cas « inverse »

Mathrice, 9 avril 2013

Page 22: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Tables YAML

Mathrice, 9 avril 2013

Page 23: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le rapporteur

Mathrice, 9 avril 2013

Page 24: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

L’auditeur

Mathrice, 9 avril 2013

Page 25: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Rapport d’audit (fragment)

Mathrice, 9 avril 2013

Page 26: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 27: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Jacinthe 2012

Mathrice, 9 avril 2013

Page 28: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Une quatrième composante

• Pourquoi, comment ? – Juin 2013 : « Kenji », qui a développé Jacinthe, n’est plus

disponible, je reste seul face à un paquet de scripts – pour comprendre, je réécris tous les scripts en ruby – j’ajoute ceux qui restaient à créer – je bâtis un GUI pour rassembler les commandes – j’en profite pour ajouter au GUI la surveillance des

opérations lancées chaque nuit et des alertes pour diverses anomalies

– je me rends alors compte qu’une grande partie du dialogue entre Sage et Jacinthe peut être automatisée

– on arrive alors à JacintheManager, alias JacMan

Mathrice, 9 avril 2013

Page 29: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

JacMan

• développement (6/2013 – 10/2013) – sql + ruby + Qt

• premier commit le 28/6/13, v1 mise en service le 22/9/13, v2 avec automatisation mise en service le 14/10/13

– deux systèmes, trois encodages • Windows : iso-8859-2 + fins de lignes en CR/LF • Mac(OS9) : macroman + fins de ligne en CR • OSX, *ix : unicode + fins de ligne en LF

– trois exécutables batch : batman, jacdev, cronman – deux GUI : manageur, manageur du catalogue.

– portant l’automatisation (plusieurs raisons, dont une mauvaise)

Mathrice, 9 avril 2013

Page 30: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

batman

$ batman

Liste des commandes disponibles :

<vide> ou <erreur> : cette réponse

help : cette réponse

help <commande> : aide sur <commande>

gi : Importer dans Jacinthe les nouvelles ventes à partir d'un fichier reçu d'Aspaway

ge : Extraire de JacintheD la liste des nouveaux clients et l'envoyer

gr : Envoyer à nouveau les fichiers clients construits précédemment et non reçus

di : Importer dans Jacinthe les données contenues dans le serveur smf

de : Transférer les données depuis JacintheD vers le serveur smf

ca : Importer dans Jacinthe la liste des articles fournie par Gescom

cn : Importer dans Jacinthe la nomenclature fournie par Gescom

cs : Importer dans Jacinthe l'état des stocks fourni par Gescom

ce : Récupérer dans un fichier les éléments du catalogue extraits de Jacinthe

ep : Envoyer au serveur smf4 les plages IP valides

ea : Envoyer au serveur smf4 les abonnements électroniques

en : Notifier par courriel aux tiers concernés leurs abonnements électroniques

ei : Ouvrir dans un éditeur la liste des plages invalides

tb : Construire le tableau de bord du jour et l'envoyer aux destinataires fixés

info : Opérations pendantes

conf : Configuration du manageur

Mathrice, 9 avril 2013

Page 31: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le manageur (GUI)

Mathrice, 9 avril 2013

Page 32: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Nouvel épisode (10-11/2013)

• Sage est externalisé – les logiciels Sage tournaient sur le serveur OSX – Sage annonce l’abandon prochain des versions Macintosh et le

basculement obligatoire vers Windows • on avait choisi initialement de conserver les versions Mac, bien qu’on

aie prévu cette issue

– on décide d’en profiter pour externaliser sur une infrastructure distante (Aspaway), en conservant nos licences

– le basculement est programmé (et effectué) le 2/12/13

• JacMan a donc affaire à un serveur externe de plus – on communique toujours par transmission de fichiers – pas de nouveau problème de conversion ! – problèmes de réseau, de sécurité et de synchronisation (!)

Mathrice, 9 avril 2013

Page 33: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Jacinthe 10/2013

Mathrice, 9 avril 2013

Page 34: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Jacinthe 12/2013

Mathrice, 9 avril 2013

Page 35: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 36: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le pas suivant

• Il reste dans tout cela une fragilité majeure – tout est maintenant si bien intégré que la vie de la SMF est

suspendue au fonctionnement d’une machine unique, le serveur OSX, sur lequel tourne Jacinthe(D + O + R + M).

• d’où le défi actuel – se mettre en mesure de porter sans préavis Jacinthe sur

une machine arbitraire, soit en cas de panne, soit pour continuer la démarche d’externalisation.

• ce qui veut dire : – virtualiser l’ensemble (système d’exploitation, serveur SQL,

OpenOffice, ruby, gems, Jacinthe, J2R, JacMan…) – pour fixer un objectif concret : créer une machine Vagrant

entièrement configurée, mobilisable à tout moment

Mathrice, 9 avril 2013

Page 37: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Du pain sur la planche

• Test de faisabilité positif – construction pilotée par Packer

– une machine Vagrant de base • Centos 6.5, MySQL 5.5, OpenOffice 4.0.1, Ruby 2.1

– sur laquelle tout fonctionne (après installation)

• mais mettant à jour l’hétérogénéité de l’architecture

• Vers un design « moderne » – services autonomes (JacintheD, JacintheO, J2R, JacMan,

Sage, serveurs publics), déployés indépendamment

– sécurité par certificats

– interfaces par « webUI »

Mathrice, 9 avril 2013

Page 38: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Les épisodes

• 2010 : le point de départ

• 2011 : Jacinthe

• 2012 : J2R

• 2013 : JacMan

• 2014 : la suite

• Moralité : les douze facteurs

Mathrice, 9 avril 2013

Page 39: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Le debriefing

• Les contraintes sous lesquelles j’ai travaillé… – développer chez moi sous Windows des GUI devant tourner

identiquement sous OSX (et portables sur Linux/Gnome) – dialoguant avec une base SQL indépendante – en ayant affaire simultanément à trois formats de fichiers – et en n’intervenant sur le serveur d’exploitation que par

push/pull (sous git, qui en plus fait des conversions de fins de ligne !)

• … m’ont conduit spontanément à appliquer quelques-uns des principes de « 12factor », dont les deux premiers : – One codebase tracked in revision control, many deploys – Explicitly declare and isolate dependencies

• … ce qui a rendu aisées l’externalisation et le portage

Mathrice, 9 avril 2013

Page 40: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

« The Twelve-Factor App »

– Nouveau paradigme

• issu de la pratique « nuage » (notamment en PaaS)

• explicité sur http://12factor.net/

– douze principes

– auteur : Adam Wiggins (CTO de Heroku)

– contributions : James Lindenbaum, Mark McGranaghan, Chris Stolt, Ryan Daigle, Mark Imbriaco, Keith Rarick, Will Leinweber, Jesper Jørgensen, James Ward, Adam Seligman, Phil Hagelberg, Jon Mountjoy, Matthew Turland, Daniel Jomphe, Mattt Thompson, Anand Narasimhan, Lucas Fais, Pete Hodgson

Mathrice, 9 avril 2013

Page 41: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

« 12 factor app » (1-4)

• √ Codebase – One codebase tracked in revision control, many

deploys

• √ Dependencies – Explicitly declare and isolate dependencies

• ± Config – Store config in the environment

• ± Backing Services – Treat backing services as attached resources

• “The code for a twelve-factor app makes no distinction between local and third party services”

Mathrice, 9 avril 2013

Page 42: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

« 12 factor app » (5-8)

• √ Build, release, run – Strictly separate build and run stages

• ± Processes – Execute the app as one or more stateless

processes

• ! Port binding – Export services via port binding

• ? Concurrency – Scale out via the process model

Mathrice, 9 avril 2013

Page 43: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

« 12 factor app » (9-12)

• ? Disposability – Maximize robustness with fast startup and graceful

shutdown

• √ Dev/prod parity – Keep development, staging, and production as similar

as possible

• !!! Logs – Treat logs as event streams

• ? Admin processes – Run admin/management tasks as one-off processes

Mathrice, 9 avril 2013

Page 44: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

Ressources

• Virtualisation – Packer (Mitchell Hachimoto) : http://www.packer.io/ – Vagrant (Mitchell Hachimoto) :http://www.vagrantup.com/ – modèles Packer (Opscode) : https://github.com/opscode/bento

• Adam Wiggins et al – Twelve Factor : http://12factor.net/

• Chad Fowler (Keynote talk at Garden City Ruby 2014) : http://www.confreaks.com/videos/2908-gardencityruby-keynote – « jeter les clés » – bind by contract – « homéostasie » :

• « chaos monkey » : https://github.com/Netflix/SimianArmy • Amazon Elastic Compute Cloud : « spot bidding » :

http://aws.amazon.com/fr/ec2/purchasing-options/spot-instances/

Mathrice, 9 avril 2013

Page 45: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

En guise de conclusion

En une phrase :

dorénavant, on développe

dans un environnement

mais pas pour un environnement

Mathrice, 9 avril 2013

Page 46: Jacinthe - indico.math.cnrs.fr€¦ · Note initiale, extraits (13/12/2010) • Pour assurer la réussite de l’opération, il faut donc –ne pas charger la barque avec des fonctionnalités

En guise de conclusion

En une phrase :

dorénavant, on développe

dans un environnement

mais pas pour un environnement

Et, comme dit la SNCF lorsque le train est en retard :

– « Je vous remercie de votre compréhension »

Mathrice, 9 avril 2013