Organisation, outils, démarches spécifiques
Ce séminaire de référence examine l’impact de l’utilisation de l’Open Source dans les projets logiciels. Il examine les différents niveaux d’adoption par les équipes projet : utilisation de composants d’infrastructure, choix d’outils et de solutions issues du libre, prise en compte des méthodes de développement communautaire, participation à des projets Open Source. Les apports et les risques liés à l’Open Source sont analysés au travers de nombreux exemples illustrant :
- l’organisation des équipes de développement ainsi que les relations avec les prestataires et les communautés de développeurs. Les facteurs favorisant la pérennité de ses investissements logiciels ;
- les différents niveaux de collaboration avec les communautés de développement. Les méthodologies et outils à adopter à chacun de ces niveaux ;
- l’utilisation d’outils Open Source afin de maîtriser ses propres développements : outils de développement, outils de conception, outils de tests, etc. ;
- les principaux frameworks techniques de développement sur les environnements Java, PHP, et .Net ;
- l’état de l’art des solutions applicatives (portail, gestion de contenu, groupware, outils collaboratifs, etc.) issues du libre ;
- les solutions d’infrastructure Open Source pour garantir un niveau de service donné en déploiement.
1. L’Open Source dans les projets
- Concepts fondamentaux
- * Historique, motivations, chiffres et tendances.
- * Les différentes licences Open Source, les pièges à éviter.
- * Les acteurs de l’Open Source dans le domaine du développement logiciel (clients finaux, sociétés de services, éditeurs, etc.).
- * Impact de la perte de propriété du code utilisé et/ou produit par les équipes de développement.
- * Évaluation de la pérennité d’une solution issue de l’Open Source : organisation et taille de la communauté, activité, les sites à consulter (sf.net, freasmeat.net, fsf.org, etc.).
- * Prévention des principaux risques : les coûts cachés, les pseudo-solutions Open Source, le support, les conflits d’intérêt, les « roadmaps », etc.
- * Apports de l’Open Source à l’évolutivité et la pérennité de ses investissements logiciels.
- Modèle de participation aux communautés
- * Formes de contribution (Bugs Reports/Request For Enhancement, Support/Abonnement aux mailings lists, Création de documentation ou traduction, Patches/Correction de bugs, Extension et implémentation de nouvelles fonctionnalités)
- * Les statuts : project leader, commiter, contributor.
- * Favoriser l’émergence d’une communauté et gestion des conflits d’intérêt entre ses propres objectifs et ceux de la communauté.
- Étude de cas d’un projet Open Source applicatif
- * Acteurs, motivations, rôles.
- * Les étapes de mise en libre de ce logiciel auprès de la communauté.
- * Maintenance par un regroupement d’entreprises et administrations utilisatrices.
2. Méthodologies Open Source et industrialisation des développements
- Les principes popularisés par l’Open Source
- * « Release Early, Release Often »
- * « Keep It Simple Stupid »
- * Les concepts de l’eXtreme Programing applicables en entreprise : peer review, build automatique, tests unitaires, auto-documentation, etc.
- L’environnement des développeurs / concepteurs
- * Les ateliers de conception UML.
- * Les ateliers de développement Eclipse.
- * Source code manager, règles d’utilisation et politique de versionning : CVS, subversion.
- * Automatisation des builds et stratégie : nightly-build, snapshot, etc.
- L’environnement de support au déploiement
- * Les tests automatiques : Maven/Cruise Control, Canoo WebTest, etc.
- * Les outils de suivi des bugs : JIRA, Mantis, Bugzilla.
- * Les mailings lists Users, Developpers, Announcement, Commit.
3. Les principaux frameworks techniques
- Les serveurs d’applications cible
- * La prise en compte de l’Open Source dans ses choix de serveurs d’applications.
- * PHP, Java, .Net, Zope : forces, faiblesses, opportunités, risques.
- * Identifier quand les développeurs font du propriétaire sur du libre.
- * Faire du libre sur du propriétaire : exemple les communautés .Net.
- Framework PHP
- * Les différents mécanismes de templates.
- * Les principaux frameworks : PHPLib, Horde, BinaryCloud, Seagull, etc.
- * PEAR, l’entrepôt de composants du PHPGroup.
- * Implémentation de Web Services en PHP.
- * Génération de graphiques, production de PDF, manipulation de documents Office, etc.
- Framework Java
- * Le cas des serveurs d’applications Java Open Source : moteur de servlets, containers EJB, implémentation JDO, etc.
- * Les différents projets Jakarta (Turbine, Avalon, Velocity, Jelly, Commons, etc.).
- * Vue d’ensemble de Struts : briques fournies, APIs, fonctionnement général, les limites.
- * Exemple d’architecture applicative à base de différentes briques performantes : Xform pour la validation, Hibernate pour le mapping objet/relationnel, etc.
- * Implémentation de Web Services en Java.
- * Génération de graphiques, production de PDF, manipulation de documents Office, etc.
- Framework .Net
- * Les communautés de développeurs .Net.
- * Les différents modèles de distribution de composants sur la plate-forme .Net et exemples (GPL, ASP.Net Starter Kit, etc.).
- * Le projet Mono.
- Problématique d’urbanisation
- * Cohabitation de plusieurs briques Open Source. Démarche pour mettre en place une “glue” efficace.
- * Solution de Single Sign On : CAS, etc.
- * Intégration type EAI léger : BIE, OpenConnector, etc.
4. Les briques fonctionnelles majeures
- Une troisième voie
- * Entre développement spécifique et intégration de produits packagés : la troisième voie.
- * Les stratégies gagnantes d’adoption : prototypage, projet pilote, généralisation.
- Solution de portail
- * Ce que cache le besoin portail : gestion de contenu Web, portail d’intégration, outils de collaboration.
- * Les huit briques fonctionnelles : intégration à l’existant ; catégorisation des contenus ; recherche ; publication du contenu ; automatisation des process ; outils de collaboration ; personnalisation/customisation ; analyses de statistiques.
- * État de l’art des principales solutions Open Source : SPIP-Agora, EZPublish, Zope, RedHat CCM, Typo 3, uPortal, JetSpeed, DotNetNuke, etc.
- Groupware
- * Les solutions de gestion de projet : PHProjekt, phpCollab, dotProject, etc.
- * Les outils de gestion électronique de document.
- Moteur de recherche
- * Les besoins couverts par les moteurs de recherche issus du libre : recherche plein texte, propagation des recherches, recherche dans des formats natifs (PDF, Word, etc.).
- * État de l’art des principales solutions.
5. Les composants d’infrastructure influant sur les développements
- Répartition de charges/ Reprise sur incident
- * Précautions à prendre dans ses développements pour rester compatible avec ces technologies.
- * Reverse Proxy : Apache, configuration Bind, Squid, etc.
- * Solution de type cluster : Linux Virtual Server, Beowulf, etc.
- * Système maître/esclave : HeartBeat.
- Mécanismes de cache
- * Caches de données : Squid.
- * Caches applicatifs en PHP, Java.
- Monitoring/Statistiques
- * Détection de bon fonctionnement d’un service applicatif.
- * Statistiques ressources système : MRTG, RRDtool, etc.
- * Analyse de logs : Logcheck, Webalizer, Awstat, etc.
PRIX : 1 480 €HT (1 770,08 €TTC)