Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activités liées au développement d’applications informatiques en entreprise.
Blogs de Développeurs: Aggrégateur de Blogs d'Informatique sur .NET, Java, PHP, Ruby, Agile, Gestion de Projet
Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activités liées au développement d’applications informatiques en entreprise.
Tu es fière d’ĂŞtre codeuse (ou codeur) ? Tant mieux, car nous avons un dĂ©fi pour toi : sauras-tu Ă©crire du code committable en moins de deux minutes ?
Intéressé ? Nous te proposerons de rejoindre ce vendredi midi des Octos aventureux pour un atelier de programmation. Tous niveaux de TDD acceptés.

Nous travaillerons par paires et en TDD sur un problème de programmation relativement simple. L’exercice consistera Ă rĂ©soudre ce problème en respectant le protocole suivant, inspirĂ© par Adrian Bolboaca :
Écrire et faire passer un testAu bout de 45 minutes, nous effacerons le code produit et dĂ©brieferons ensemble sur l’expĂ©rience.
Toujours intéressé ? Les inscriptions sont ouvertes sur eventbrite.
En venant, assure-toi d’apporter
Si tu viens en binĂ´me, vous pourrez vous contenter d’un seul ordinateur (si tu veux aussi binĂ´mer sur le repas feel free!)
N’oublie pas de t’inscrire pour venir.
what : atelier coder Ă pas de chaton
when : ce vendredi 21 juin de 12h30 Ă 13h30
where : OCTO Technology, 50 avenue des champs Élysées, 75008 Paris, 5ème étage, salle André Gide
Suggestion d'articles :
OCTO était vendredi dernier à la conférence dotScale à Paris. Les différentes sessions de cette conférence tournaient autour du thème des architectures scalables en prenant pour modèle les acteurs du Web et du Cloud.

Durant la journée, de prestigieux speakers se sont relayés dans un format spécial : un enchaînement de keynotes de 20 à 30 minutes. Ainsi se relayaient sur la scène du Théâtre des Variétés des contributeurs majeurs comme Doug Cutting (Cloudera), Shay Bannon (ElasticSearch) ou encore Joshua McKenty (OpenStack).
Suivre les GĂ©ants du WebLa scalabilitĂ© devient un enjeu majeur des architectures pour rĂ©pondre aux nouveaux besoins mĂ©tiers liĂ©s Ă l’exploitation de donnĂ©es gĂ©nĂ©rĂ©s exponentiellement. C’est d’ailleurs dans cette optique qu’est nĂ© Hadoop, comme l’a rappelĂ© Doug Cutting.
Les intervenants de dotScale ont ainsi rappelĂ© des patterns des GĂ©ants du Web pour intĂ©grer la notion de scalabilitĂ© au sein d’une architecture.
Augmenter la capacitĂ© de son architectureTout d’abord le principe de divide & conquer (diviser pour rĂ©gner), bien connu par les Ă©tudiants et autres praticiens d’algorithmes, s’applique en architecture. SĂ©parer un traitement en plusieurs sous-traitements, comme le fait Hadoop au travers de MapReduce, permet de lisser la charge de calcul sur diffĂ©rentes machines.
Ce principe reste le mĂŞme au niveau base de donnĂ©es via le sharding (partitionnement) : une dĂ©finition dĂ©taillĂ©e est disponible sur l’article des GĂ©ants du Web par Marc Bojoly.
La plateforme de blogging WordPress, qui supporte un des plus élevés taux de trafic du Web (en prenant en compte les différents blogs) juste derrière Google et Facebook, a expérimenté cette approche de manière incrémentale.
Barry Abrahamson, CTO de WordPress, explique que pour gĂ©rer tous les sites hĂ©bergĂ©s WordPress se base sur un sharding selon le type d’utilisateurs : des active shards et inactive shards. Les active shards reprĂ©sentent les sites les plus actifs et ayant le plus de contenu en terme de taille.
En effet, tenter de sharder de manière alĂ©atoire selon un hash pour distribuer une quantitĂ© similaire de sites sur les diffĂ©rentes instances du cluster n’est pas applicable au cas WordPress.
Sur le blog technique de WordPress, il est indiqué :
The problem with clusters is that is really easy to become overcrowded. Some of our competitors also use clusters but put 100s of customers on a cluster.  This doesn’t work because of a rule we have: If it doesn’t fit into RAM, it’s too slow. Once there’s too many files to fit in the kernel filesystem cache, too much table data to fit into MySQL’s memory, too many objects to fit into memcached, then suddenly all sites become much slower because only the few, largest sites will stay in memory.
Un même nombre de blogs sur un cluster aurait un impact de performance et de disponibilité ou de coût :
Ainsi, les blogs « inactifs » sont en grand nombre une mĂŞme machine performante disposant d’environnements virtualisĂ©s et les blogs « actifs » sont sur des clusters hĂ©bergeant moins de sites.
We’re very careful to balance clusters with the right number of customers.  The exact number depends of course on the nature of the traffic and the size of the sites, but we actively monitor the relevant system details to produce an internal “capacity” score per cluster.  We never let it get too high, and we’ll migrate sites between clusters if needed to ensure everyone has enough resources.
Les optimisations de performance utilisées sont :
Des optimisations MySQL de l’ordre de key_buffer (optimisation des indexes en mĂ©moire) et query_cache_* (cache de requĂŞte SELECT) ne sont pas utilisĂ©es car le nombre de tables Ă©tant trop important (plus de 500 millions de tables, 120 shards et 2200 serveurs), la probabilitĂ© qu’une requĂŞte en mĂ©moire soit exĂ©cutĂ©e Ă de nombreuses reprises est trop faible. Cela permet ainsi de ne pas surcharger la RAM de chaque instance.
La scalabilité ne se restreint pas que sur les couches logicielles. Au niveau réseau le principe reste transposable.
Les VLAN ont Ă©tĂ© crĂ©es afin de regrouper des machines au sein d’un rĂ©seau virtuel, indĂ©pendant de la localisation et du matĂ©riel rĂ©seau afin de gagner en sĂ©curitĂ© et en performance (le broadcast et multicast des messages se restreint Ă des VLAN plutĂ´t qu’Ă toutes les machines d’un rĂ©seau physique. Cependant, les VLAN imposent une limite Ă 4096 segments ce qui freine la scalabilitĂ© au niveau rĂ©seau. Pour garder les bĂ©nĂ©fices des VLAN il existe plusieurs solutions : VXLAN ou encore VNT, Virtual Network over TRILL, prĂ©sentĂ© Ă dotScale par Thomas Stocking, COO chez Gandi.
VNT est une extension de la frame Ethernet classique avec VNI (Virtual Network Identifier) et le protocole TRILL.
VNI permet d’utiliser un segment de 24 bits (supĂ©rieur Ă ce que peut gĂ©rer un VLAN) comme annuaire de machines au sein d’un rĂ©seau. Chaque machine est donc identifiĂ©e par un ID et son adresse MAC. Il est possible d’avoir plusieurs adresses MAC sur le rĂ©seau tant qu’elles sont sur diffĂ©rents VNT (VLAN).
TRILL (Transparent Interconnection of Lots of Links) est un protocole « zero configuration » en remplacement des Spanning Tree. Un spanning tree permet le routage de donnĂ©es sans cycle (contrairement Ă un graphe) afin d’Ă©viter d’envoyer des paquets plusieurs fois sur le mĂŞme noeud. Plusieurs inconvĂ©nients existent dans les spanning tree notamment des chemins peu optimisĂ©s d’un noeud Ă un autre ou encore l’impossibilitĂ© de faire du multipath, rendant la connectivitĂ© non scalable au travers d’un large rĂ©seau.
TRILL permet ainsi d’optimiser le routage via les R-Bridge, switchs compatibles TRILL, qui se rĂ©fĂ©rencent mutuellement et n’ont pas besoin d’avoir connaissance des adresses MAC des destinataires au sein du rĂ©seau. Ainsi il n’est pas nĂ©cessaire de concevoir un rĂ©seau acyclique et le multipath devient possible.
SĂ©curiser son architectureUne architecture performante n’a que peu d’intĂ©rĂŞt si celle-ci n’est pas rĂ©siliante.
Le principe commun pour gĂ©rer la rĂ©silience d’une architecture scalable est l’isolation. Sur du Cloud ou des machines physiques il est important d’isoler des applications (au niveau logiciel ou matĂ©riel) afin qu’elles n’aient aucun impact sur les autres en cas de panne. On appelle cela « design for failure« , ce que rappelle Jonathan Weiss d’AWS OpsWorks.
Chez Heroku, dĂ©crit par Noah Zoschke, cela se traduit par des user groups isolĂ©s destinĂ©s Ă chaque application dĂ©ployĂ©e, reprenant le principe de cgroups d’UNIX.
Les VM Ruby MRI sont montées dans des conteneurs LXC (Linux Container) agissant comme un méchanisme de virtualisation pour chaque application. LXC se base pour cela sur les cgroups UNIX pour gérer les différentes instances et la commande clone pour isoler les ressources.
Des pertes de performance sont évidemment induites dues aux nombreuses couches techniques mais Heroku gagne en contrepartie en sécurité et résilience.
Enfin, pour assurer la cohĂ©rence des donnĂ©es les gĂ©ants du web se basent sur Paxos pour la gestion des transactions multi-sites. Google Spanner utilise Paxos pour l’Ă©lection d’un maĂ®tre lors d’une transaction, partage l’espace des clĂ©s de sharding entre les sites et synchronise les diffĂ©rents datacenters au travers d’horloges atomiques et GPS.
Brad Fitzpatrick, crĂ©ateur de memcached, cite Ă©galement d’autres implĂ©mentations de Paxos : Google Chubby, utilisĂ© dans BigTable ainsi que RAFT, une implĂ©mentation plus simple du protocole Paxos.
Toujours dans une optique d’isolation, Jonathan Weiss prĂ©conise le « one box deployment« , dĂ©ploiement itĂ©ratif afin de ne pas perturber la production par une application ou instance dĂ©faillante :
On peut assimiler cette technique de déploiement au Canary Release.
Pour gĂ©rer une plateforme scalable, celle-ci doit ĂŞtre la plus « Ă©lastique » possible, c’est-Ă -dire de pouvoir installer et configurer ses composants de manière industrielle, d’oĂą la nĂ©cessitĂ© d’automatiser le provisionning des machines et l’installation des applicatifs (pratique DevOps)
Dans cet objectif Solomon Hykes, crĂ©ateur de dotCloud, a prĂ©sentĂ© une solution de dĂ©ploiement nommĂ©e Docker. Cette solution permet de gĂ©rer un PaaS au travers d’un moteur de dĂ©ploiement pour applications hĂ©tĂ©rogènes via conteneur normalisĂ©.
La promesse de Docker est de pouvoir dĂ©ployer une application, quelque soit sa plateforme, son format et le matĂ©riel sous-jacent, d’une manière simplifiĂ©e permettant ainsi d’Ă©viter du scripting lourd et difficilement maintenable dans le but de tendre vers une totale automatisation du dĂ©ploiement.
En conclusionCes principes sont poussĂ©s depuis quelques annĂ©es par les GĂ©ants du Web. Les intervenants de dotScale n’ont pas apportĂ© de nouveautĂ© particulière mais ont permis d’insister sur l’importance d’appliquer ces patterns.
Pour complĂ©ter sur d’autres patterns des GĂ©ants du Web : http://www.geantsduweb.com/
Suggestion d'articles :
Je suis consultant. On me consulte lorsque l’on a besoin d’un conseil. Je conseil alors la meilleur solution possible, car j’ai de l’expĂ©rience dans le domaine. Et lĂ , on ne suit pas du tout mon conseil ! On me dit plein de phrases qui commencent par « oui mais… » et on fait autre chose. On se plante, et je dĂ©sespère. Mes conseils ne sont pas Ă©coutĂ©s.
Enfin c’est un truc qui m’arrive souvent. Contre ça, Christophe Thibault m’a un jour prĂ©sentĂ© le protocole Investigate.
Qu’est ce que c’est ?Une autre approche du conseil. Au lieu de donner une rĂ©ponse, nous allons poser des questions qui vont amener l’interlocuteur Ă rĂ©flĂ©chir. Je serai alors Ă mĂŞme de donner un conseil beaucoup plus pertinent. Il trouvera bien souvent ses propres rĂ©ponses – j’avais dit que c’Ă©tait un truc de coach !
Il n’y a pas longtemps, j’ai dit Ă quelqu’un que mon mĂ©tier, c’Ă©tait de discuter. C’est vrai, je passe le plus clair de mon temps Ă le faire. Mais pas n’importe comment. Investigate est l’un des outils que j’emploie le plus frĂ©quemment dans mes conversations pro.
Lorsque quelqu’un demande une solution, le problème est rarement complet. Par exemple, quelqu’un est venu me demander comment animer trois jours de team building hors-sol. Il avait son budget.
Dans un premier temps, je me suis bien gardé de sortir tous les ateliers que je connais.
J’ai pris une posture complètement externe, curieux et intĂ©ressĂ© par le sujet. J’ai posĂ© des questions, les plus ouvertes possibles. « Quel but recherches-tu avec un atelier hors sol ? Qui y participera ? Qu’est ce qui te montrera que l’atelier a bien fonctionnĂ©? » Chaque rĂ©ponse m’apportait de nouvelles questions. « Comment se fait il que tu ne sois pas sĂ»r du nombre de personnes qui y participeront ? Dans quel objectif souhaites-tu que cela se fasse hors-sol ? »
Bref, en creusant, nous nous sommes aperçu que la personne ne savait pas trop quelle Ă©quipe elle voulait inclure, et quels buts poursuivrait cette Ă©quipe. Finalement, un travail Ă©tait indispensable avant de dĂ©finir l’atelier hors-sol. Si j’avais conseillĂ© un atelier comme demandĂ© initialement, j’aurais obligatoirement Ă©chouĂ©.
Lorsque l’on pratique ce protocole, il est autorisĂ© de poser des questions ouvertes uniquement. C’est une enquĂŞte sans intention autre que d’obtenir des informations/des rĂ©flexions : toute question qui pourrait orienter l’interlocuteur est prohibĂ©e.
Un poil de thĂ©orieL’investigateur doit:
Quelques bonnes questions:
Quelques mauvaises questions:
Un dernier conseil : n’ayez pas peur du silence. Vous venez de poser une question, et votre interlocuteur ne rĂ©pond pas ? Il n’est pas en train d’attendre une clarification de votre part : il est simplement en train de rĂ©flĂ©chir. Il est très important de ne rien faire, de ne rien dire Ă ce moment lĂ et d’attendre la rĂ©ponse.
En conclusionBien souvent, lorsque j’utilise ce protocole, les problèmes se rĂ©solvent d’eux mĂŞme. Comme je ne suis pas un bon coach, j’ai tout de mĂŞme envie de donner des conseils. Dans ce cas, je m’accorde le droit de donner un unique conseil, en fin d’investigation. Et je ne pose aucune question ensuite.
Enfin, il existe beaucoup de techniques de discussion dont je m’inspire. En voici quelques autres, en vrac…
Je n’ai malheureusement pas lu tous ces livres – j’ai vu quelques unes de ces techniques en formation.
Devoir Ă la maisonEssayez-le la prochaine fois que l’on vient vous demander un conseil, et faites-nous un retour en commentaire !
source : core protocols de Mc Carthy
Suggestion d'articles :
Il y a 6 mois, nous avions ouvert une de nos sessions de formation au format BBL sur GTD (Getting Things Done) à 5 participants externes.
Bilan : vous étiez 10 à venir nous rendre visite. Merci à vous !
Rebelote, nous la rejouons le jeudi 27 juin 2013 de 12h30 à 13h30. Même présentateur, même format, même ambiance de folie, le soleil en plus !
Toujours ouvert à 5 personnes externes, les premiers seront les premiers ! Envoyez votre mail de motivation sans langage SMS à  dalia@octo.com.
Tout le détail a déjà été décrit sur cet article de blog.
Pour les plus fainĂ©ants, les plus rĂ©calcitrants ou les plus numĂ©riques d’entre vous, vous pourrez suivre cette prĂ©sentation en direct live sur tv.octo.com.
A bientĂ´t !
Suggestion d'articles :
Nous fĂŞtons cette annĂ©e la sixième Ă©dition de l’USI, le rendez-vous des geeks et des boss de l’IT.  Chaque annĂ©e, nous prenons toujours autant de plaisir Ă organiser et Ă partager avec vous ces deux jours inspirants !
Il vous reste 20 jours et 30 places pour vous inscrire et profiter de ces deux jours de conférences à couper le souffle.
Venez Ă la rencontre des plus grandes DSI françaises : Air liquide, Alstom, La Banque Postale, BNP, Corsairfly, Danone, Sanofi Aventis, MMA, Natixis, SIGMA, Orange, Manpower, … Ils seront tous lĂ les 24 et 25 juin au Palais Brongniart pour dĂ©couvrir ce que l’Ă©dition 2013 de l’USI leur rĂ©serve ! Si vous n’ĂŞtes pas encore convaincu, voilĂ quelques informations supplĂ©mentaires pour vous y aider.
Des espaces d’Ă©changes, des dĂ©monstrations, des animations, de l’innovation en avant-première, des nouveautĂ©s technologiques, des Keynotes de rĂŞve et du Networking !
DĂ©couvrez les 8 Keynotes que l’Ă©quipe d’OCTO Technology a sĂ©lectionnĂ© pour vous :
Lundi 24 juin
Mardi 25 juin
Sans oublier les 38 sessions qui viendront s’ajouter entre chaque Keynote et que vous pouvez consulter depuis l’agenda de notre site internet.
Parmi ces sessions quelques Octos ont gagné leur place suite aux call for paper :
En plus de cette programmation dense et riche en sujet inspirants, vous pourrez dĂ©couvrir les nouvelles technologies qui feront le monde de demain.Â
Nous avons le plaisir le tout premier FabLab »mobile » qui se dĂ©placent pour l’occasion ! Issus du MIT et en plein essor dans le monde entier, ces lieux sont des lieux ouverts Ă tous oĂą l’on pratique le « learning by doing », les approches collaboratives, le partage des connaissances et l’innovation ouverte !
Plus concrètement, voici ce que vous découvrirez pendant deux jours :
Autre espace de dĂ©monstration innovant : l’espace NUI !
Nous avons la chance d’avoir au sein d’OCTO Vincent Guigui,  MVP Kinect, qui vous propose de venir Ă sa rencontre Ă l’USI ! Il vous fera dĂ©couvrir comment les Nouvelles Interfaces Naturelles peuvent ĂŞtre utilisĂ©es dans un contexte professionnel que ce soit dans la relation client en agence, en espace de Show-Room, en appui Ă la productivitĂ© ou dans les domaines de la Data-Visualization entre autres. Plusieurs dĂ©mos vous seront alors proposĂ©es pour vous faire dĂ©couvrir le potentiel de ces interfaces et, peut-ĂŞtre vous donner des idĂ©es pour les appliquer chez vous !
La femme mise en lumière Ă l’USI 2013
Vous pourrez Ă©galement admirer le travail d’Olivier Ezratty (consultant renommĂ© dans les mĂ©dias numĂ©riques) et Marie-Anne Magnac (fondatrice de l’agence de photographes  For Company et « creative angel ») qui ont rĂ©alisĂ© une sĂ©rie de portraits mettant en lumière les femmes qui ont marquĂ© le domaine de l’IT. Cette action a Ă©tĂ© menĂ©e afin de lutter contre les stĂ©rĂ©otypes et inciter les jeunes gĂ©nĂ©rations Ă se projeter dans des mĂ©tiers qui crĂ©ent de la croissance et de la passion. Nous avons le plaisir d’exposer cette collection lors de l’USI 2013 pour vous faire dĂ©couvrir ce travail remarquable.
Pour en savoir plus, visitez le site internet de l’expo
SoirĂ©e networking – lundi 24Albert Jacquard indiquait en 2009 « A l’USI on cultive l’art de la rencontre ». Nous souhaitons honorer ses propos cette annĂ©e !
Au delĂ de ces espaces d’Ă©changes, tous les participants USI sont conviĂ©s le lundi 24 au soir pour une soirĂ©e exceptionnelle dĂ©diĂ©e au Networking ! La soirĂ©e sera rythmĂ©e de dĂ©couvertes musicales et gustatives, dans une ambiance chaleureuse et dĂ©contractĂ©e. Une belle occasion pour partager, Ă©changer et dĂ©battre en direct avec vos pairs ainsi que les speakers !
Un programme bien chargé qui a déjà séduit plus de 600 Geeks & Boss !
Rejoignez-les en vous inscrivant sur le site de l’Ă©vènement.
Suggestion d'articles :
OCTO a accueilli mardi 21 mai la première session du PerfUG à laquelle 25 personnes ont participé. Ci-dessous, le compte-rendu de cette soirée.
Marc Bojoly a commencé par un rappel des objectifs du PerfUG, avant de définir les différents types de tests : performance, charge, rupture et vieillissement.
Puis l’accent a Ă©tĂ© mis sur les tests de charge et de performance : mĂ©thodologie, pistes d’optimisation et outils.
Henri Tremblay a ensuite pris le relai pour la partie travaux pratiques. Sur la base d’une application Java standard, nous avons dĂ©roulĂ© un tir de performance et un tir de charge avec Gatling, puis analysĂ© et commentĂ© leurs rĂ©sultats.
La session s’est terminĂ©e par de sympathiques et fructueux Ă©changes autour d’un buffet en terrasse !
Ci-dessous, un petit aperçu en image !
Retrouvez l’ensemble de la prĂ©sentation sur slideshare !
Suggestion d'articles :
L’Usine De DĂ©veloppement (UDD) est un outil aujourd’hui largement rĂ©pandu, utilisĂ© et Ă©prouvĂ© dans les Ă©quipes de dĂ©veloppement sensibilisĂ©es Ă la qualitĂ© de leur production. Toutefois, ce paradigme Ă©volue avec son temps, et on observe actuellement un renouveau dans les usines logicielles. Si il a dĂ©jĂ Ă©tĂ© prĂ©sentĂ© ici une Ă©volution technique de l’UDD (Vers une Usine de DĂ©veloppement 2.0), je vais pour ma part introduire une UDD appliquĂ©e Ă un contexte nouveau : l’Usine De Livraison (UDL). Celle-ci permet Ă une DSI dĂ©lĂ©gant ses dĂ©veloppements Ă des prestataires externes d’industrialiser les livraisons applicatives et de s’assurer de la qualitĂ© du code livrĂ©. Cet article dĂ©crit la dĂ©marche suivie rĂ©cemment par OCTO en mission et les rĂ©sultats obtenus.
Ne rĂ©aliser que peu ou aucun dĂ©veloppement en interne, mais les externaliser Ă des prestataires est un contexte d’entreprise frĂ©quent. Ces prestataires peuvent ĂŞtre de natures assez hĂ©tĂ©rogènes, allant de l’agence web au cabinet de conseil, en passant par la grosse SSII. Tous ces prestataires dĂ©veloppent des produits chez eux en utilisant leur propre UDD (ou non), et livrent l’application packagĂ©e, chacun Ă leur façon. Un souhait lĂ©gitime de reprendre la main sur le code et sur toute la phase de compilation et d’analyse qualitĂ© Ă©merge nettement chez plusieurs de ces entreprises. Les douleurs peuvent ĂŞtre multiples : une volontĂ© d’indĂ©pendance vis-Ă -vis des prestataires, des rĂ©gressions dans les livraisons, un release management hĂ©tĂ©roclite voire inexistant… En analysant le besoin – des sources Ă livrer, compiler, analyser et dĂ©ployer – l’outillage classique d’une UDD apparait comme une Ă©vidence. Toutefois, on observe aussi clairement qu’il s’agit lĂ d’une variante fonctionnelle de l’usine de dĂ©veloppement. En effet, les prestataires continuent d’utiliser leur propre outillage pendant la phase de dĂ©veloppement, mais une fois cette phase terminĂ©e, ils livrent le code sur cette nouvelle plateforme qui peut alors le compiler, l’analyser suivant les règles de l’entreprise, le packager, le dĂ©ployer, etc… C’est ainsi qu’émerge le concept d’Usine De Livraison.
Ce type de situation impose généralement certaines contraintes :
• Le prestataire doit avoir un accès simple aux outils mis à disposition
• Les technologies doivent ĂŞtre accessibles par des prestataires de multiples horizons (SSII, conseil, intĂ©grateurs, agences web…) avec diffĂ©rents niveaux de compĂ©tences techniques
• Chaque livraison doit pouvoir être qualifiée puis déployée sur les environnements adéquats
• Ces actions doivent solliciter aussi peu d’actions manuelles que possible
D’autre part, nous distinguons 2 types d’outils dans l’UDL :
• Les outils techniques, destinés à stocker le code, le compiler, l’analyser…
• Les outils de partage et de processus entre les différents acteurs des projets
On retrouve dans cette partie tous les outils que l’on trouve dans une UDD classique. Nous n’insisterons donc pas sur ceux dont l’utilisation ne varie pas dans notre cas de figure.
Certaines de ces briques doivent être accessibles aux prestataires, mais ce n’est pas indispensable pour la plupart d’entre elles.
Dépôt de code
Le gestionnaire de code est destinĂ© Ă recevoir la livraison des sources d’un projet. Le prestataire livre son code sur le dĂ©pĂ´t une fois ses dĂ©veloppements terminĂ©s. En revanche, ce dĂ©pĂ´t n’est pas destinĂ© Ă recevoir les commits de code incrĂ©mentaux de la phase de dĂ©veloppement. Cette usine ne fait pas office d’usine de dĂ©veloppement, qui est laissĂ©e Ă la discrĂ©tion du partenaire. Le partenaire livre donc le code d’une application complète et rĂ©putĂ©e stable en le poussant sur le serveur. Plus qu’un simple dĂ©pĂ´t, cette brique fait donc office de point d’entrĂ©e de toute livraison et doit ĂŞtre suffisamment ouverte pour que les prestataires puissent y accĂ©der de l’extĂ©rieur.
L’orchestrateur de tâches permet de planifier les diffĂ©rentes tâches nĂ©cessaires aux mĂ©canismes de l’UDL (compilation, analyse qualitĂ©, dĂ©ploiement,…). Une 1ère tâche du type continuous deployment permet de dĂ©tecter toute nouvelle livraison de code, puis de compiler et dĂ©ployer l’application sur l’environnement adĂ©quat. Une autre tâche, qu’on prĂ©fèrera laisser manuelle, peut permettre le dĂ©ploiement sur les autres environnements (recette, prĂ©production, production…). Enfin, comme pour toute UDD classique, une tâche du type nightly build peut gĂ©nĂ©rer les rapports de test et de qualitĂ©.
Analyse de codeCes outils permettent de parcourir le code livré et d’exécuter les tests unitaires associés pour générer des rapports qualité.
RĂ©fĂ©rentiel d’artefactsUne telle brique permet de partager des librairies communes entre les diffĂ©rents projets.
Les outils d’échanges WikiUn wiki est indispensable pour partager toute la documentation de l’UDL avec le prestataire. Il décrit les différents processus, les guidelines et les outils que le prestataire doit comprendre et utiliser.
Il permet aussi de centraliser les Ă©changes entre client et prestataires. Ainsi, lorsque l’un des prestataires a livrĂ© du code, il peut accĂ©der Ă l’espace wiki dĂ©diĂ© au projet pour y crĂ©er une fiche de livraison. Cette fiche peut renseigner toutes les informations techniques nĂ©cessaires au dĂ©ploiement de l’application (exĂ©cution de scripts SQL, batchs…). Cet outil doit donc proposer un accès extĂ©rieur pour les prestataires.
Un outil de ticketing permet de centraliser et uniformiser les demandes entre l’entreprise et ses prestataires. La gestion des anomalies et des Ă©volutions peut alors ĂŞtre entièrement gĂ©rĂ©e par l’outil. Ici aussi, l’accès ne doit pas ĂŞtre restreint au rĂ©seau de l’entreprise.
Mise en oeuvreDans ce type de chantier, la difficultĂ© rĂ©side dans l’harmonisation et l’Ă©vangĂ©lisation des pratiques Ă travers les diffĂ©rents prestataires. En effet, une UDD implique de configurer des outils pour rĂ©pondre aux besoins induits par la nature des dĂ©veloppements. Une UDL, au contraire, impose de modeler ses dĂ©veloppements pour qu’ils soient compatibles avec les outils mis en place.
Une première solution est de laisser aux prestataires le soin de configurer leurs tâches Jenkins pour plus de souplesse et de flexibilitĂ©. Cela permet de faire tendre l’organisation vers un fonctionnement orientĂ© DevOps. Si cette approche est sĂ©duisante en thĂ©orie, sa mise en pratique impose une volontĂ© d’ouverture de l’entreprise et une maturitĂ© avancĂ©e des prestataires. Une entreprise ayant affaire Ă plusieurs dizaines de prestataires, dont la nature et la qualitĂ© des dĂ©veloppements s’étalent sur un spectre très large aura du mal Ă appliquer une telle dĂ©marche.
Une seconde solution plus pragmatique dans cette situation consiste à mettre en place des pratiques qui constituent le dénominateur commun entre tous les projets pour les rendre compatibles à l’UDL. Ces pratiques sont de plusieurs natures :
• Adhérence à l’écosystème du client :
Selon la typologie du projet, des technologies sont présélectionnées (par exemple, une web applications Java pour du transactionnel et iOS natif pour du mobile)
• Uniformisation des outils :
Les outils d’aide à la compilation sont imposés selon la technologie (par exemple, Maven, Gradle, CocoaPods, etc.)
• Structure du projet :
Afin de d’assurer la lisibilité et la maintenabilité d’une application, l’entreprise peut définir des structures squelettes par typologie de projet (l’équivalent d’archétypes Maven) pour les technologies où cela est pertinent.
• Minimum Buildable Product :
Afin de s’assurer de la conformité de la configuration d’un projet, on peut demander aux prestataires de livrer au plus tôt une version minimale de leur application. Celle-ci ne doit pas forcément répondre au moindre besoin fonctionnel, mais valider que la stack technologique appliquée est bien adaptée aux exigences de l’UDL.
Ce fonctionnement impose d’être en veille permanente pour ne pas imposer une technologie obsolète, orpheline ou peu répandue. Pour Android par exemple, la technologie Ant peut être la plus indiquée car la plus répandue dans un premier temps. Il est toutefois possible que Maven devienne rapidement la technologie de prédilection. Il faudra alors adapter l’UDL en conséquence.
D’autre part, il faut prendre garde à ne pas s’enfermer dans les langages choisis au départ et se laisser la possibilité d’ajouter une technologie à l’UDL si nécessaire. Si l’on juge qu’une nouvelle technologie doit être ajoutée à l’écosystème de l’entreprise, il faut alors faire l’état de l’art des meilleures pratiques, en tirer des guidelines, créer des modèles de tâches correspondants et appliquer tous ces éléments sur un projet pilote, avant d’en généraliser l’usage.
BilanChez OCTO, nous avons dĂ©jĂ eu l’occasion d’implĂ©menter un tel pattern, cela a Ă©tĂ© très enrichissant et relativement fluide. Le principal risque identifiĂ© est une rĂ©action de rejet face Ă un changement d’usage aussi radical. Pour faciliter au maximum la transition vers ce mode de fonctionnement, il est important d’impliquer les prestataires dans la conception et le montage de l’UDL. Il faut Ă©galement le sensibiliser aux amĂ©liorations notables qu’elle constituera une fois le projet migrĂ© et procĂ©der Ă la migration par Ă©tapes successives. D’autre part, les chefs de projet cĂ´tĂ© entreprise doivent aussi ĂŞtre impliquĂ©s au plus tĂ´t dans le chantier pour qu’ils puissent en saisir les principes et y adhĂ©rer pleinement. En effet, ce sont eux qui seront par la suite les moteurs de l’implication des diffĂ©rents acteurs au sein des nouveaux outils proposĂ©s.
Par ailleurs, si l’UDL est un facilitateur certain dans les processus humains et techniques de livraison applicative, l’automatisation totale de certaines tâches reste aujourd’hui difficile (modification de configuration, exĂ©cution de scripts SQL, publication d’application mobile sur un MDM…). L’utilisation d’outils de gestion de configuration d’infrastructure tels que Chef ou Puppet permet alors de pousser encore plus loin le concept d’UDL.
Suggestion d'articles :
Big Data, MapReduce, calculs distribués, NoSQL, sont autant de buzz words et de concepts cantonnés jusqu’à maintenant à quelques acteurs spécifiques. Pourtant, il est un état de fait : nous sommes assis sur une quantité gigantesque de données dont il est difficile d’extraire l’information… D’autre part MapReduce est une solution éprouvée pour analyser d’énormes quantités de données (ou Big Data). Elle a, par exemple, été mise en œuvre par Google pour indexer le web, par LinkedIn pour calculer ses campagnes d’email…
Dans ces conditions, ces concepts ont-ils un intérêt dans nos SI ? Quel est le niveau de maturité de ces solutions ? Quels sont les opportunités métiers liées à Big Data ?
Une fois ces promesses identifiées et que l’on fait, par exemple, le choix d’Hadoop, encore faut-il savoir maîtriser cet écosystème, son architecture et la configuration d’un cluster adapté aux besoins métiers. Dans ce petit-déjeuner, pas de théorie uniquement mais des retours d’expérience de projets avec OCTO.
Les thèmes abordés seront :
Ce petit-déjeuner s’adresse autant aux décideurs IT, métiers, chefs de projet, architectes qu’aux architectes techniques, responsables de production, experts et développeurs.
Cliquez ici pour vous inscrire à ce petit-déjeuner
Suggestion d'articles :
Dans le cadre d’un projet, la rĂ©alisation de personas reste la meilleure mĂ©thode pour dĂ©finir de façon très prĂ©cise  le profil des utilisateurs.
Comment rĂ©aliser une application smartphone, une application mĂ©tier ou un site internet sans connaitre l’âge des utilisateurs, leurs catĂ©gories socio-professionnel, leurs attentes, leurs habitudes…?Â
Chez OCTO nous sommes convaincus de l’importance des personas, c’est pourquoi nos UX Designer qui sont impliquĂ©s dès le dĂ©but des projets, pratiquent très rĂ©gulièrement cette mĂ©thode pendant la phase du cadrage.
L’infographie suivante vous propose d’Ă©tudier et de bien comprendre ce que sont les personas, d’en connaitre les bĂ©nĂ©fices et les bonnes raisons pour pratiquer cette mĂ©thode de travail.

Made Personas with Love
Suggestion d'articles :
Cette année encore, OCTO Technology sera présent à la conférence Agile France, le rendez-vous incontournable des agilistes français. Venez découvrir les 8 sessions que les Octos présenteront les 23 et 24 mai prochains.
Jeudi 23 mai Un produit qui dĂ©chire, une Ă©quipe qui dĂ©chire… un leader qui dĂ©chireDavid Alia (@davidalia)
DĂ©couvrez les principes qui permettent Ă un leader de crĂ©er pour son Ă©quipe un environnement propice Ă l’innovation, une culture d’amĂ©lioration continue et de confiance mutuelle. Comment l’aider Ă se mettre dans une succession permanente d’Ă©quilibres instables entre challenge et stabilitĂ©, entre enjeux et plaisir, Ă conserver un sens aigu de l’initiative, une motivation Ă toujours faire mieux, individuellement et collectivement ?
Jonathan Scher (@jonathan_scher) et Cyrille Deruel (@CyrilleDeruel)
Vous connaissez ces équipes dans une spirale descendante : les seules phrases qui sortent viennent du désespoir. Encore un bug, ça ne marche toujours pas, je n’arrive pas…
Travaillant comme consultants, ce cas nous est arrivé plusieurs fois. Nous avons maintenant une mĂ©thode : nous remettons en place les bases du respect. En moins de 6 semaines, l’Ă©quipe est Ă nouveau pleine d’espoir, productive.
Nous vous prĂ©senterons notre vision du modèle des trois CO – communication, considĂ©ration, et coopĂ©ration, ainsi que notre dĂ©marche inspirĂ©e de celle de Kotter pour sa mise en application.
Mathieu Gandin (@octomga)
Selon The Economics Of Software Maintenance In The 21 Century, nous passons 80% de notre temps à maintenir du code existant et pénible à modifier. Dans cette situation nous devenons des archéologues du code, tandis que les contraintes de temps se font plus fortes. On parle alors de code Legacy.
A l’issue de cette session vous repartirez avec :
Une longue séance de livecoding pour présenter des techniques pour tester et remanier du code en profondeur
Une introduction à une démarche pour avoir une vue d’ensemble de votre gros code legacy
Une présentation de la matrice de gestion du temps de Covey pour vous organiser sur le long terme dans la reprise de votre code legacy
Michel Domenjoud et Mathieu Gandin (@octomga)
Maintenir une base de code propre et bien testé est un facteur clé de succès de la réalisation d’un produit. Mais avant d’en arriver là , il convient, en tant que développeur, d’adopter une certaine discipline en terme de refactoring de code.
Pendant cet atelier de 3h nous aurons l’occasion de vous faire coder et reprendre du code existant pour en faire du beau code en suivant des principes énoncés par Robert Martin dans le livre Clean Code. Et vous verrez que plus votre code sera propre, plus vous serez productif.
Vendredi 24 mai
Communautés de pratique en pratiqueCyrille Deruel (@CyrilleDeruel)
Vous rĂŞvez d’avoir des rĂ©unions oĂą les dĂ©veloppeurs Ă©changent leurs techniques, prĂ©sentent leurs dernières trouvailles, les derniers frameworks utilisĂ©s, oĂą les testeurs partagent leurs douleurs et leurs solutions, oĂą des personnes Ă©changent autour de diffĂ©rentes problĂ©matiques ?
Ne cherchez plus : Créez des communautés de pratique.
DĂ©couvrez Ă travers cette session comment crĂ©er des communautĂ©s de pratique auto-organisĂ©es, quels outils j’utilise pour garantir l’auto-organisation et surtout quelles règles de communication j’utilise.
Les paradoxes du leadershipMarc Cherfi (@reporter4change) et Thomas Lissajoux
Vous êtes un manager, un coach ou un leader. En tout cas vous êtes un agent de changement et vous faites de votre mieux. Pourtant, parfois, la résistance et les frictions semblent inévitables et les résultats sont au mieux passables, quand la situation ne dégénère pas ou se verrouille.
Nous analyserons les forces en jeu et présenterons les leçons que nous en avons tiré, en essayant de proposer des pistes pour débloquer ces situations.
A l’issue de cette session, vous aurez :
Christophe Thibaut (@ToF_)
Dans notre domaine il semble qu’il y ait un process pour tout, et mĂŞme l’agile, en dĂ©pit des proclamations, est l’occasion d’un retour sempiternel au process, aux outils, aux recettes.
Dans cette session j’aimerais vous inviter Ă quitter le règne conceptuel afin de dĂ©couvrir le surprenant pouvoir des mĂ©taphores. Plus qu’une simple figure de discours, la mĂ©taphore structure notre pensĂ©e et nos actions, elle dĂ©finit notre rĂ©alitĂ©. En (re-)dĂ©couvrant dans leur portĂ©e et leur profondeur les mĂ©taphores qui nous gouvernent, pouvons nous transformer nos projets ?
Tester autrement : Le Guide du Testeur IntergalactiqueRémy-Christophe Schermesser (@El_Picador)
Vous connaissez dĂ©jĂ TDD, votre couverture de code frise les 80 %, jUnit n’a plus de secret pour vous ? Mais vous sentez que vous pourriez faire plus de vos tests, que les outils que vous utilisez ont des limites. Ou alors vous en avez marre du train train assertEquals ?
Pas de panique ! Nous allons voir ensemble comment faire des tests unitaires autrement. Nous traiterons entre autres :
Suggestion d'articles :
De l’autre cĂ´tĂ© de l’Atlantique, les GĂ©ants du Web rĂ©inventent la façon de faire de l’informatique. Ils s’appellent Amazon, Facebook, Google, Netflix ou LinkedIn pour les plus connus.
Maintenant que ces pionniers nous ont montré la voie, nous ne pouvons plus continuer à travailler comme avant.
Rejoignez-nous pour cet Ă©vĂ©nement oĂą Damien Joguet, directeur associé d’OCTO Technology et Laurent Brisse prĂ©senteront ces pratiques innovantes qui font le succès des GĂ©ants du Web. Venez partager notre passion pour ce sujet !
Ce petit-déjeuner, qui fait suite à la sortie de cet ouvrage, dévoilera notamment comment ces géants :
Ce séminaire s’adresse à tous ceux qui ont envie de s’inspirer de la culture des Géants du Web : marketing, chefs de produits, architectes, geeks, managers ou responsables DSI.
Merci de noter que l’inscription est gratuite mais obligatoire !
08h45 :
Accueil
09h15 – 10h30 :
Présentation des 10 meilleures pratiques des Géants du Web
10h30 – 11h00 :
Conclusion - Questions / Réponses
Grace Ă l’amabilitĂ© du Groupe ADEO, ce petit-dĂ©jeuner se dĂ©roulera dans l’amphithéâtre situĂ© sur son site de Ronchin.
Rue Sadi Carnot
59790 Ronchin
Intervenants :Cliquez ici pour vous inscrire au petit-déjeuner : Les Géants du Web
Suggestion d'articles :
Cette formation aura lieu chez OCTO, au 50, avenue des Champs ElysĂ©es, 75008 Paris. Les places sont limitĂ©es et idĂ©alement rĂ©servĂ©es aux Ă©quipes d’architecture technique qui s’apprĂŞtent Ă concevoir ou exploitent des clusters de stockage et de traitements Hadoop. Cette formation, dispensĂ©e en anglais, est au prix de €1,650.00.
Inscriptions ici ! http://www.eventbrite.com/event/5466460330
Learning ObjectivesThis course targets IT administrators and operators with at least basic Linux system administration experience. Prior Hadoop experience is not required.
Course OutlineEach student should bring their own laptop.
Course Length3 day (8 hours each) of lecture, instructor demo, and hands-on lab exercises.
Suggestion d'articles :
Le mois dernier, OCTO Ă©tait prĂ©sent lors de la dernière Ă©dition de Devoxx pour prĂ©senter 5 confĂ©rences traitant, entre autres, des GĂ©ants du web, de Database, d’Android, de JavaScript propre…Vous retrouverez dans ce billet les confĂ©rences, leurs supports de prĂ©sentation, le contact des confĂ©renciers ainsi qu’une rapide analyse des rĂ©sultats du questionnaire « GĂ©ants du web » que nous avons administrĂ© aux participants Devoxx !
LA MORT PROCHAINE DU GC – Philippe Prados
Quelques signaux faibles pour polémiquer lors de cette présentation plutôt technique :
 Accéder aux slides de présentation
Contacter le speaker
MUSCLEZ VOS APPLIS ANDROID AVEC LES OUTILS DU MONDE JAVA – JĂ©rĂ´me Van Der Linden et StĂ©phane Nicolas
Dans cette session Tools in Action, JĂ©rĂ´me et StĂ©phane proposent un tour d’horizon des technologies qui peuvent nous aider Ă amener Android aux standards industriels Java.
Ils proposent Ă la communautĂ© Android de profiter des 17 ans d’expĂ©rience de la communautĂ© Java (Android vient de fĂŞter ses 4 ans…) et d’utiliser des outils reconnus de qualitĂ© industrielle tels que Jenkins, Maven, Sonar, findbugs, pmd, checkstyle et de les combiner Ă Lint, Robolectric, UIAutomator.
DU JAVASCRIPT PROPRE ? CHALLENGE ACCEPTED – Julien Jakubowski (avec Romain Linsolas)
Il y a quelques années, je bidouillais en JavaScript. Un effet “bling bling” par-ci, un contrôle de saisie par-là . L’essentiel de mon application était écrite en Java et tournait côté serveur. Mais voilà , Gmail et Google Spreadsheets sont sortis depuis longtemps. On s’attend maintenant à des applications web qui répondent instantanément et qui fonctionnent offline. Et pour cela, il faut bien plus de code JavaScript qu’avant.
Mais 20 000 lignes de JavaScript pour un site web ? Sérieux ? Dans ce language sale, qui n’a pas la moitié des outils de Java ?
J’ai appris. Et l’écosystème JavaScript a évolué.
Lors de cette session, je vous dévoilerai comment maintenant j’écris, sans stress, des applications JavaScript complexes.
LES LAMBDA ARRIVENT ! EN ATTENDANT, ĂŠTES-VOUS SURS D’AVOIR COMPRIS LES GENERIQUES ? – Henri Tremblay
Les lambda expressions en Java arrivent Ă grands pas (septembre 2013 lors de DevoxxFR… 2014 depuis la semaine dernière). Les gĂ©nĂ©riques sont, eux, apparus en 2004. Eh oui, 9 ans dĂ©jĂ . Et comme dit Joshua Bloch: « Chaque langage a un quota de complexitĂ©. Les gĂ©nĂ©riques ont fait exploser celui de Java. » ĂŠtes-vous bien sĂ»rs d’avoir tout compris ? De bien savoir comment vous dĂ©barrasser de tous ces warnings qui sournoisement apparaissent dans votre code au moment oĂą vous vous y attendez le moins ? Et plus subtilement, savez-vous justifier l’implĂ©mentation ?
Cette session remet les compteurs Ă zĂ©ro, vous donne les clĂ©s qu’il vous manquaient pour maĂ®triser les gĂ©nĂ©riques. Et vous permettra donc d’attendre l’arrivĂ©e des lambdas sereinement.
LES SECRETS DES GÉANTS DU WEB – 10 PRATIQUES POUR MIEUX TRAVAILLER – Ludovic Cinquin
De l’autre côté de l’Atlantique, les Géants du Web réinventent la façon de faire de l’informatique. Ils s’appellent Amazon, Facebook, Google, Netflix ou LinkedIn pour les plus connus.
Les pratiques et les technologies qu’ils mettent en oeuvre sont l’un des fondements du succès remarquable qu’on leur connaĂ®t.
Grace à ces nouvelles façons de travailler, ils sont capables de faire plus gros, plus vite, et plus efficace que ce que nous connaissons habituellement.
Comment ces secrets des GĂ©ants du Web peuvent-ils ĂŞtre une source d’inspiration pour faire de l’informatique diffĂ©remment ?
Cette session, qui s’appuie sur l’ouvrage que nous avons publiĂ© « les GĂ©ant du Web » propose une visite guidĂ©e de quelques pratiques clĂ©s : culture de la mesure, pizza-team, feature team, commodity hardware, lean startup, MVP, continuous deployment, …
Aller plus loin avec les Géants !
En plus des confĂ©rences nos Ă©quipes se sont rendus Ă Devoxx sur le stand OCTO avec pour objectif bien prĂ©cis de demander aux participants Devoxx de se mesurer aux GĂ©ants ! Avec un questionnaire rapide, nous avons sondĂ© la population sur ces pratiques qu’Amazon, Facebook, Google, Netflix ou LinkedIn pour les plus connus, utilisent avec brio de l’autre cĂ´tĂ© de l’Atlantique.
Toutes ces pratiques sont d’ailleurs détaillées ici.
Alors, les participants Devoxx sont-ils des Géants du Web ?
Après une rapide analyse, il semblerait que l’ensemble des mĂ©thodes appliquĂ©es par les GĂ©ants du Web soient mĂ©connues en France, malgrĂ© quelques buzz intĂ©ressants (Lean Startup : connue par près de 70% des participants dont 30% d’entre eux jugent cette mĂ©thode inutile, Continuous Deployment : frĂ©quemment utilisĂ©e par près de 30% des participants , DevOps : connue par près de 80% des participants et FluiditĂ© de l’expĂ©rience utilisateur connue par 70% des participants). Ce qui reste incroyable c’est que seuls 10% des participants au test affirment faire appel Ă ces techniques frĂ©quemment !
Il reste encore du chemin Ă parcourir en France !
Suggestion d'articles :