Slides de la présentation "iOS & Android" de la session des CocoaHeads Rennais du 10 novembre 2011. Présentation assurée par David Bonnet et Nicolas Klein.
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
Présentation donnée par Julien Dubois lors de Devoxx France 2012, présentant comment réaliser une application moderne avec les technologies HTML5, Spring, NoSQL (Cassandra) et mobiles.
Slides de la présentation "iOS & Android" de la session des CocoaHeads Rennais du 10 novembre 2011. Présentation assurée par David Bonnet et Nicolas Klein.
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
Présentation donnée par Julien Dubois lors de Devoxx France 2012, présentant comment réaliser une application moderne avec les technologies HTML5, Spring, NoSQL (Cassandra) et mobiles.
Dans cette session vous découvrirez comment le couple Visual Studio 2013 et le Framework 4.5.1 augmentent votre productivité ainsi que les performances de vos applications .NET. Dans la lignée du Framework 4.5, cette dernière version offre son lot d’améliorations, parfaitement stabilisées au rythme des versions de Visual Studio. Cependant, Microsoft a décidé de livrer des packages officiels à un rythme plus rapide et plus fréquent que les versions majeures de Visual Studio. La dernière version de NuGet intégrée à Visual Studio 2013 permet de trouver plus facilement le type de package recherché. Ne manquez pas cette session et venez découvrir l’essentielle des nouveautés apportées par Visual Studio 2013 et le Framework 4.5.1.
Speakers : Michel Perfetti (Cellenza), Bruno Boucard (Cellenza)
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
S’il est très simple de réaliser des applications Windows 8 de qualité, il est moins évident de créer des applications ultra performantes. Windows tourne désormais sur tout type d’appareils, des PC de gamers aux tablettes peu puissantes. Pour ces dernières, il est nécessaire de tirer parti au maximum des API fournies par WinRT. Cette session vous propose de découvrir 10 astuces afin d’améliorer visiblement les performances de vos applications.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Pourquoi JavaScript?
Considéré comme « l’un des langages les plus universels », a déclaré Todd Anglin, vice-président de la gestion des produits et du marketing chez Telerik.
Quels sont les enjeux?
Exposer les APIs de la plateforme native à JavaScript
Produire une interface utilisateur native
Faire abstraction des interfaces utilisateurs natives
Booster votre application Windows Phone 8Microsoft
A l'heure des interfaces naturelles, vos utilisateurs attendent de votre application qu'elle soit particulièrement réactive. Sur la base de retours d'expériences, nous verrons comment votre application peut consommer moins de mémoire et solliciter moins le processeur, et répondre aux moindres sollicitations. De l'utilisation de l'analyseur de performances à l'implémentation de trucs et astuces, vous repartirez de cette session avec le plein d'idées pour améliorer les performances de votre application
L’usage de Symfony2, l’organisation du code et l’usage du projet Sonata chez Canal+ pour répondre aux enjeux de la refonte d’une partie de la plateforme web. La plateforme présente de nombreux challenges techniques : SDK, API privée, API publique restful+hal, création de contenus riches, huit applications différentes avec une base de code commune, etc. Comment il a été possible d’améliorer certaines parties de Sonata ainsi que l’approche choisie pour la création de certains composants transverses.
Support de notre séminaire du 08/10/2009.
- Présentation technique de la notion de portail, portlet JSR168, JSR286
- Présentation du marché
- Zoom sur les principaux acteurs Open Source du monde du portail JEE
L’environnement du développement mobile iOS & AndroidChris Saez
Presentation breve sur l'univers du développement logiciel sur iOS et Android avec état des lieux de la plateform, des editeurs de texte associés et des contraintes liées a ces plateformes.
La prochaine version du framework .NET (.NET 4.5) apporte plusieurs innovations. Les performances ont été améliorées, les appels asynchrones ont été introduits dans de nombreuses API et le support au niveau de C# 5 des instructions async/await facilite leur usage. Le traitement parallèle a aussi été étendu avec le support des cœurs multiples et l'introduction des dataflow. Parmi les nouveautés on notera également le support étendu de MEF, des améliorations au niveau de WCF, de Workflow Foundation et de ASP.NET pour ne citer que ceux-ci.
...par Dimitri Durieux (CETIC) le 23 septembre 2015.
Jenkins est un outil open source d'automatisation de tâches et d'intégration continue, relativement facile à mettre en oeuvre, et qui permet de gagner du temps sur toutes les étapes automatiques de la production de logiciel : build, lancement de tests unitaire, qualité de code...
Un bon outil à connaître et à installer tôt, pour gagner du temps ensuite !
La prochaine version de la gamme de produit Visual Studio ALM est en préparation. Nous en savons déjà beaucoup sur les futures fonctionnalités ! Venez découvrir ce que ce nouvel opus vous permettra de faire en termes d'agilité, de tests et de développement ! La session privilégiera les démonstrations d’un maximum de nouvelles fonctionnalités, telles que la notion de feedback, le code review, les tests exploratoires, les nouvelles expériences utilisateurs, les nouveautés du contrôle de code source, et bien d’autres !
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
Xcode, c’est très puissant, mais devoir recompiler, charger et relancer son application à chaque fois qu’on fait une modification dans le code, ça devient vite fastidieux. Si les changements dans le code pouvaient s’appliquer en temps réel dans l’application, on gagnerait pas mal de temps qu’on pourrait consacrer à expérimenter des idées nouvelles et à améliorer nos apps. Un rêve ? Plus vraiment.
Celedev, une startup rennaise, a développé un environnement de développement pour iOS entièrement conçu autour de cette idée de Programmation Responsive. Jean-Luc Jumpertz (créateur de Celedev) est venu nous présenter cet outil et nous faire une petite démo.
Dans cette session vous découvrirez comment le couple Visual Studio 2013 et le Framework 4.5.1 augmentent votre productivité ainsi que les performances de vos applications .NET. Dans la lignée du Framework 4.5, cette dernière version offre son lot d’améliorations, parfaitement stabilisées au rythme des versions de Visual Studio. Cependant, Microsoft a décidé de livrer des packages officiels à un rythme plus rapide et plus fréquent que les versions majeures de Visual Studio. La dernière version de NuGet intégrée à Visual Studio 2013 permet de trouver plus facilement le type de package recherché. Ne manquez pas cette session et venez découvrir l’essentielle des nouveautés apportées par Visual Studio 2013 et le Framework 4.5.1.
Speakers : Michel Perfetti (Cellenza), Bruno Boucard (Cellenza)
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
S’il est très simple de réaliser des applications Windows 8 de qualité, il est moins évident de créer des applications ultra performantes. Windows tourne désormais sur tout type d’appareils, des PC de gamers aux tablettes peu puissantes. Pour ces dernières, il est nécessaire de tirer parti au maximum des API fournies par WinRT. Cette session vous propose de découvrir 10 astuces afin d’améliorer visiblement les performances de vos applications.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Pourquoi JavaScript?
Considéré comme « l’un des langages les plus universels », a déclaré Todd Anglin, vice-président de la gestion des produits et du marketing chez Telerik.
Quels sont les enjeux?
Exposer les APIs de la plateforme native à JavaScript
Produire une interface utilisateur native
Faire abstraction des interfaces utilisateurs natives
Booster votre application Windows Phone 8Microsoft
A l'heure des interfaces naturelles, vos utilisateurs attendent de votre application qu'elle soit particulièrement réactive. Sur la base de retours d'expériences, nous verrons comment votre application peut consommer moins de mémoire et solliciter moins le processeur, et répondre aux moindres sollicitations. De l'utilisation de l'analyseur de performances à l'implémentation de trucs et astuces, vous repartirez de cette session avec le plein d'idées pour améliorer les performances de votre application
L’usage de Symfony2, l’organisation du code et l’usage du projet Sonata chez Canal+ pour répondre aux enjeux de la refonte d’une partie de la plateforme web. La plateforme présente de nombreux challenges techniques : SDK, API privée, API publique restful+hal, création de contenus riches, huit applications différentes avec une base de code commune, etc. Comment il a été possible d’améliorer certaines parties de Sonata ainsi que l’approche choisie pour la création de certains composants transverses.
Support de notre séminaire du 08/10/2009.
- Présentation technique de la notion de portail, portlet JSR168, JSR286
- Présentation du marché
- Zoom sur les principaux acteurs Open Source du monde du portail JEE
L’environnement du développement mobile iOS & AndroidChris Saez
Presentation breve sur l'univers du développement logiciel sur iOS et Android avec état des lieux de la plateform, des editeurs de texte associés et des contraintes liées a ces plateformes.
La prochaine version du framework .NET (.NET 4.5) apporte plusieurs innovations. Les performances ont été améliorées, les appels asynchrones ont été introduits dans de nombreuses API et le support au niveau de C# 5 des instructions async/await facilite leur usage. Le traitement parallèle a aussi été étendu avec le support des cœurs multiples et l'introduction des dataflow. Parmi les nouveautés on notera également le support étendu de MEF, des améliorations au niveau de WCF, de Workflow Foundation et de ASP.NET pour ne citer que ceux-ci.
...par Dimitri Durieux (CETIC) le 23 septembre 2015.
Jenkins est un outil open source d'automatisation de tâches et d'intégration continue, relativement facile à mettre en oeuvre, et qui permet de gagner du temps sur toutes les étapes automatiques de la production de logiciel : build, lancement de tests unitaire, qualité de code...
Un bon outil à connaître et à installer tôt, pour gagner du temps ensuite !
La prochaine version de la gamme de produit Visual Studio ALM est en préparation. Nous en savons déjà beaucoup sur les futures fonctionnalités ! Venez découvrir ce que ce nouvel opus vous permettra de faire en termes d'agilité, de tests et de développement ! La session privilégiera les démonstrations d’un maximum de nouvelles fonctionnalités, telles que la notion de feedback, le code review, les tests exploratoires, les nouvelles expériences utilisateurs, les nouveautés du contrôle de code source, et bien d’autres !
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
Xcode, c’est très puissant, mais devoir recompiler, charger et relancer son application à chaque fois qu’on fait une modification dans le code, ça devient vite fastidieux. Si les changements dans le code pouvaient s’appliquer en temps réel dans l’application, on gagnerait pas mal de temps qu’on pourrait consacrer à expérimenter des idées nouvelles et à améliorer nos apps. Un rêve ? Plus vraiment.
Celedev, une startup rennaise, a développé un environnement de développement pour iOS entièrement conçu autour de cette idée de Programmation Responsive. Jean-Luc Jumpertz (créateur de Celedev) est venu nous présenter cet outil et nous faire une petite démo.
El presente trabajo expone algunas ideas de Begoña Gros, con relación al aprendizaje colaborativo mediado por la tecnología, su proceso y el diseño de actividades.
Le monde de l'informatique est divisé depuis toujours en deux univers : les personnes qui créent (Dev) et celles qui exploitent en production (Ops). Cette séparation peut générer stress et frustration. Les équipes n'ont pas l'impression d'aller dans le même sens et cela nuit à la productivité. Pour les réconcilier, un ensemble de pratiques et d'outils ont été imaginées: elles se cachent derrière le terme DevOps. Qu'est-ce que c'est exactement ? Quels problèmes est-ce que cela résout ? Quelle est la bonne approche pour le mettre en place? Nous vous proposons de découvrir notre vision sur ce sujet lors de cette session d'introduction.
Migrer de Jenkins vers Azure DevOps les Builds JavaCédric Leblond
Je migre de nombreuses builds Java, jgitflow d'une plateforme Jenkins et Nexus hébergée sur AWS vers Azure DevOps.
Après une description du contexte, je vous détaillerai :
- comment la migration de package Nexus est réalisée.
- comment les Builds Jenkins sont recrées sur Azure DevOps.
- comment utiliser jgitflow et git efficacement dans les builds
Nous verrons beaucoup d'astuces et options pour orchestrer les nouvelles builds et releases. Et surtout, nous discuterons de comment accompagner les équipes dans cette transition.
Les microservices sont les dernières architectures à la mode, certains disent que c’est la suite logique des architectures SOA dans un environnement agile. Microsoft au travers de sa plateforme Cloud Azure, propose toute une série d’outils, de services managés pour construire et déployer vos architectures microservices. Découvrons ensemble les différentes solutions d’Azure : Azure Container Service, Docker, Service Fabric, App Service, ainsi que leurs avantages et leurs inconvénients.
La Data science au service de l'IoT : l'IoT est encore un domaine émergent et de nos jours, les systèmes compris dans les solutions constructeurs (exemple : Hue, nest...) envoient des directives aux objets en se basant essentiellement sur des moteurs de règles (définies par les utilisateurs ou pas).
Nous allons voir quelles sont les limites de tels systèmes, et quels peuvent être les apports d'une approche basée sur des solutions issues du monde du machine learning.
Matinale Agile Wake Up #4 : les tests et l'agilitéZenika
La 4ème édition de l'Agile Wake Up avait pour thématique les Tests. L'équipe Kai vous a proposé de faire un tour d'horizon des différents tests réalisables dans le cadre de l'agilité.
Se concentrer sur l’expérience et non sur le livrable, tel est le pari du Lean UX. Comment cette démarche permet-elle de s’assurer, au plus vite, que ce qui est imaginé répond bien aux attentes des utilisateurs. En se basant sur les 3 principes : Lean start-up, L’esprit design et le développement Agile, il est possible de mettre en place le cycle vertueux : Observer, Apprendre et Concevoir.
Agile Wake Up #3 : La transformation Agile de Kisio DigitalZenika
Kisio Digital (ex-Canal TP) est engagé dans une transformation agile depuis de nombreux mois. Dans cette démarche, pas toujours facile, Kisio est accompagné par des consultants de Zenika (coach agile, Product Owner, Scrum Master). C'est ce quotidien dont nous allons vous parler.
Agile Wake Up #3 : la contractualisation AgileZenika
Porteuses de grandes promesses, les méthodes agiles impliquent néanmoins des droits et devoirs pour les prestataires et les directions Achats. La contractualisation agile est donc un sujet brûlant pour lequel il est nécessaire de consigner dans un cadre légal adéquat ces droits et devoirs respectifs de toutes les parties prenantes.
Après un panorama du Big Data / Data Science, nos experts font le focus sur Spark, l’un des composants de la stack SMACK.
Spark est un framework de cluster computing qui permet de faire du traitement de larges volumes de données de manière distribuée. Le modèle de programmation proposé par Spark est plus simple que celui d'Hadoop et jusqu'à 100 fois plus rapide en temps d'exécution.
Nous découvrons ensuite Zeppelin, un outil graphique simple et rapide à mettre en oeuvre se plaçant au-dessus de Spark.
Pour terminer, nous nous intéressons au Machine Learning, aujourd’hui en plein essor. Pourquoi cela ? Quels sont ses principaux domaines d'applications et ses apports ? Quelles sont les principales stratégies utilisées dans le domaine de l'analyse prédictive ? Il est temps d'y voir plus clair et de comprendre les enjeux de cette discipline !
Motivation 3.0 : sens, autonomie et maîtrise.Zenika
Les méthodes traditionnelles de management qui reposent sur la politique de « la carotte et du bâton » sont un échec. Un nouveau paradigme est né au milieu du XXe siècle grâce à Douglas McGregor, professeur de Management au MIT, qui repose sur 3 facteurs : sens, autonomie et maîtrise. Découvrez les clés de la « Motivation 3.0 », prérequis indispensable dans un contexte agile.
React est la librairie orientée composant, produite par Facebook, qui est venue bousculer le paysage JavaScript ces dernier mois. Peut-être en avez-vous entendu parler mais vous avez du mal à positionner cette librairie dans une architecture orientée Web ? Découvrez les raisons pour lesquelles React fait le buzz.
NigthClazz Spark - Machine Learning / Introduction à Spark et ZeppelinZenika
Pour ce mois de mars, nous vous proposons une thématique Big Data autour de Spark et du Machine Learning !
Nous attaquerons par une présentation d'Apache Spark 1.5 : son architecture distribuée et ses possibilités n'auront plus de secret pour vous.
Nous enchaînerons ensuite avec les fondamentaux du Machine Learning : vocabulaire (pour enfin comprendre ce que raconte les data scientists / dataminer ! ), usages et explication des algorithmes les plus populaires ... Promis la présentation ne comporte pas de formules de maths barbares ;)
Puis nous mettrons en pratique ces deux présentations en développant ensemble votre première application prédictive avec Apache Spark et Apache Zeppelin !
Pour ce mois de mars, nous vous proposons une thématique Big Data autour de Spark et du Machine Learning !
Nous attaquerons par une présentation d'Apache Spark 1.5 : son architecture distribuée et ses possibilités n'auront plus de secret pour vous.
Nous enchaînerons ensuite avec les fondamentaux du Machine Learning : vocabulaire (pour enfin comprendre ce que raconte les data scientists / dataminer ! ), usages et explication des algorithmes les plus populaires ... Promis la présentation ne comporte pas de formules de maths barbares ;)
Puis nous mettrons en pratique ces deux présentations en développant ensemble votre première application prédictive avec Apache Spark et Apache Zeppelin !
HTTP2 : ce qui va changer par Julien LanduréZenika
HTTP1 est omniprésent en 2016 et HTTP2 est pourtant "sorti" le 15 mai 2015. Qu'est-ce qu'on y gagne, nous développeurs ? Les principes d'optimisation Web seront-ils toujours d'actualités ? Venez découvrir HTTP2, le futur protocole du Web !
Entreprise libérée : Du mythe à la réalité ?Zenika
Présentation faite à Agile Grenoble 2015 :
Le buzz actuel autour des entreprises libérées fascine tout autant qu'il fait peur. Certains voient en ce concept le Graal du bonheur et du plaisir au travail, alors que d'autres redoutent une utopie extrémiste inventée par des gourous soixante-huitards, qui mènerait droit à l'anarchie puis à la faillite !
Je vous invite à vous éloigner de ces débats d'experts passionnés le temps d'un talk et à réfléchir ensemble, de manière pragmatique et dépassionnée, au moyen de rendre ce rêve à la fois réel et efficace.
Je vous propose pour cela de voyager dans l'histoire vraie de Zenika, la société que je participe à développer, et qui, dès sa création il y a 10 ans, bien avant la mode de l'entreprise libérée, s'est construite sur les bases de ses piliers fondateurs que sont le plaisir au travail, l'excellence et l'innovation, la croissance et la rentabilité.
Ce retour d'expérience réel, basé sur l'histoire d'une "banale SSII", illustre de manière concrète la démarche progressive mise en place, les grands succès et les petites victoires, mais aussi les problèmes rencontrés, les doutes survenus et quelques écueils à éviter.
Le terme ‘Microservices’ fait le buzz depuis plusieurs mois déjà dans l’ingénierie logicielle. Durant cette soirée, Zenika vous propose de décrire en détail cette technique de décomposition de son système d’information.
La première partie de la soirée présente les enjeux des MicroServices et les différents cas d’utilisation.
La seconde partie aborde différents frameworks Java qui peuvent être utilisés pour la mise en place d’une architecture MicroServices.
Après avoir abordé les différentes problématiques autour d'AngularJS, du Continuous Delivery et de Java 8 :
les NightClazz sont de retours en 2015.
Zenika a hébergé le Docker Tour de France, en décembre dernier, souhaitant poursuivre notre investissement sur cette technologie nous vous proposons d'assister à la NightClazz Docker - Découverte.
Dans la continuité de la conférence Java Concurrency and Non-blocking IO Lecture animée par Heinz Kabutz, Zenika vous propose d'assister à la NightClazz Java 8 - Découverte.
1. Allez plus loin dans l'intégration
continue avec Jenkins
Guillaume Darmont (Zenika)
What’s Next Replay Lyon le 10/11/2011
-
D’après Kohsuke Kawaguchi
(Jenkins / CloudBees)
2. Zenika en quelques mots
Un cabinet de conseil et de réalisation
Un organisme de formation agréé
Expert en Open Source et méthodes Agiles
Spécialisé dans les technologies Java EE
Créé en 2006 par 4 associés
Expertise technique
Partage des connaissances
Notre site web : www.zenika.com
Notre blog technique : http://blog.zenika.com
Nos formations : http://www.zenika.com/catalogue-formation
Nous suivre sur Twitter : @ZenikaIT 2
3. Nos implantations
Paris
Lyon
Rennes
Nantes
Et aussi ...
Londres
Athènes
3
4. Zenika Paris
Nous suivre sur Twitter : @ZenikaIT
4
5. Zenika Lyon
Nous suivre sur Twitter : @ZenikaLyon
5
6. Zenika Rennes & Nantes
Nous suivre sur Twitter : @ZenikaOuest
6
7. Auteur de la présentation
• Kohsuke Kawaguchi
• Créateur / Project lead Jenkins
• Architecte @ CloudBees
• Mais aussi :
– RELAX
– JAXB, JAX-WS, JAXP, etc.@ Sun
– Une partie de GlassFish V3
8. Jenkins-ci.org
• Serveur d’Intégration Continue Open Source
• Ecrit en Java
• Existe depuis 7 ans
• Facile à installer et utiliser
• Extensible via 350+ plugins
• Largement utilisé
• 11K+ installations
• 26K+ si on tient compte de l’ancien nom (Hud…)
9. L’intégration continue ?
• « Intégration » ?
Différents processus : compilation, exécution des tests,
opérations sur base de données, packaging, déploiements, etc.
• « Continue » ?
L’effort d’intégration augmente avec le temps écoulé depuis la
dernière intégration. La régularité diminue les risques.
• But : Mettre en œuvre un ensemble de moyens pour que les
processus d’intégration d’un projet deviennent un « non
événement »
Avoir un processus rapide et répétable
• Lancement des tâches en mode « Pousse bouton »
10. Composantes de l’IC
• Eléments composants l'intégration continue :
• Mécanismes de surveillance du changement (on surveille un
environnement)
• Gestionnaire de versions
– Indispensable même sans intégration continue
• Ensemble de scripts pour implémenter les processus
d'intégration
• Mécanismes de notifications
• L’IC n’est pas un concept récent
• Que peut apporter l’utilisation conjointe de l’IC et des
dernières technologies ?
15. Le plein de puissance !
• De plus en plus de puissance de calcul
• De moins en moins cher
• Ratio Performance/Prix de la puissance de calcul meilleur
que jamais
• Ratio Performance/Prix des personnes évolue peu
• Utiliser les ordinateurs efficacement est primordial !
16. Le plein de puissance !
• Puissance de calcul offerte par un parallélisme accru, à
tous les niveaux :
• Davantage de thread
• Davantage de machines virtuelles
• Davantage de machines physiques
• Problème : Comment gérer cette multitude de machines ?
• Outils de gestion de parcs : Puppet, Chef, CFEngine
• Utilisation de Clouds privés (PaaS) : RightScale, etc…
17. Apport du Cloud et des VMs
• Mise à disposition automatique et en temps réel de
machines virtuelles
• Permet de changer la donne :
• Cloner une machine virtuelle « fraîche » à chaque exécution
des tests
• Transformer une machine de tests « Quality Assurance » en
production sans redéployer
• Instantanés (Snapshots) des VMs
• Lors de tests en échecs
18. Cloud & SaaS
• SaaS = Software as a Service, hébergé dans le Cloud
• Sauce OnDemand : Selenium
• DeviceAnywhere : Tests d’applications mobiles
• Un autre moyen de simplifier et automatiser la mise à
disposition des éléments nécessaires
• Flexibilité grâce au Just-In-Time
• Tarifs au temps consommé (pour Cloudbees)
Nb Machines Nb Machines
Temps Temps
20. Du coté des outils de dév…
• Progrès constants au niveau des outils de développement
• Invocation non-interactive sous Windows
• Visual Studio MSBuild
• Outils offrent une sortie pouvant être utilisée par une
machine
• CVS Subversion
• Tests frameworks
• Demande de plus en plus forte des utilisateurs pour un
accès batch / CLI à leurs outils
21. Du coté des navigateurs…
• … la prochaine « grande bataille »
22. Du coté des navigateurs…
• Quid de Selenium ?
• Preuve que le besoin est là, mais la solution n’est pas
optimale
• Idéalement, il faudrait:
• Pas d’affichage nécessaire
• Possibilité d’embarquer le navigateur dans le processus, afin
d’offrir une meilleure délimitation des comportements
• Plus de proxy
• Accès direct aux logs consoles du navigateur
• Injection de comportements / d’erreurs
23. Automatiser, encore et encore !
• Automatiser à tous les niveaux :
• Machines, OS, middlewares, outils
• Automatiser grâce :
• Au Cloud, aux VMs, aux SaaS
• D’innombrables perspectives d’automatisation vous sont
ouvertes !
• Utilisation des serveurs d’Intégration Continue pour fédérer
toutes ces briques : Jenkins
24. Jenkins
• Exécution de builds distribués depuis 5 ans
• Permet de contrôler et gérer plus de 100 machines depuis
un seul endroit
• Offre un mécanisme de plugin permettant d’étendre
facilement ses possibilités
• Cette profusion de plugins nous permet d’envisager
l’Intégration Continue sous un autre angle…
26. Une Fonction ?
• Penser un build/test comme une fonction
• Par exemple : F(objet source) = métriques qualité
• Pas d’effets de bord
• L’évaluation de la fonction peut être coûteuse
• Faire de l’asynchrone
• L’« objet source » est créé en premier
• Calcul des métriques qualité viennent par la suite
• Calcul des métriques qualité découpé en plusieurs étapes
27. Une Fonction ?
• F(objet source) = métriques qualité
• En pratique, on a F(commit) = métriques qualité
• Pourquoi les commits :
• Déterminent sans ambiguïté une arborescence source
• Nombreux outils déjà disponibles
• Copie simple et rapide d’une machine vers une autre
28. Dilemme des commits SVN
• Imaginez un projet avec de nombreux tests
• Le développeur se concentre sur ce qu’il doit faire
• Le reste, comme par exemple l’exécution des tests, est
effectué par le serveur d’Intégration Continue
• Un commit est nécessaire pour l’Intégration Continue
• Mais vous ne voulez pas commiter sans valider via l’IC
• Donc, vous ne pouvez pas créer de commits
• Solution : Utilisation d’un gestionnaire de version
distribué (Distributed VCS comme Git, Mercurial, etc.)
29. Distributed VCS
• Permet de séparer la notion de commit de la notion de
partage
• Comme pour SVN, commit = arborescence source
• Mais possibilité de partager seulement une partie des
commits (avec SVN, pas de commit non partagé)
• Partage sélectif
30. Partage sélectif
• Aussi appelé Revue de Code
• Vous partagez votre modification avec quelques personnes
• La modification est évaluée
31. Partage sélectif
• Aussi appelé Revue de Code
• Vous partagez votre modification avec quelques personnes
• La modification est évaluée
• Puis vous partagez de manière globale cette même
modification
32. IC en tant que Revue de Code
Développement Jenkins / Gerrit Central Repo
33. IC en tant que Revue de Code
Développement Jenkins / Gerrit Central Repo
34. IC en tant que Revue de Code
Développement Jenkins / Gerrit Central Repo
35. IC en tant que Revue de Code
Développement Jenkins / Gerrit Central Repo
36. IC en tant que Revue de Code
Développement Jenkins / Gerrit Central Repo
37. IC en tant que Revue de Code
• Plusieurs façons d’implémenter ce fonctionnement
• Surveiller les commits locaux
• Envoyer (push) certains commits pour demander à l’IC de
le tester
• Lors du push sur le repository central, le repo peut
consulter les résultats du serveur d’IC via le commit ID
• Rejet des changements non validés
• Réduction du temps entre le push et l’apparition dans le repo
38. IC en tant que Revue de Code
• « Liberal branching »
• Chaque développeur pousse ses commits sur sa branche
• Jenkins les récupère et les intègre dans le repo central
Branche Dev1
Branche Dev2
Central Repo
39. Fini les tests en local !
• Laisser travailler les serveurs d’IC
• Ne pas bloquer les développeurs est primordial
• Mieux vaut attendre pour avoir les résultats via l’IC, plutôt
que les lancer en local
• Plusieurs réponses possibles
• Dépend des équipes, des workflows mis en œuvre
• Mais quelque soit l’implémentation choisie, l’Intégration
Continue en tant que Fonction est toujours là
40. Conclusion
• De plus en plus de puissance de calcul à disposition
• De plus en plus de parallélisme à exploiter
• Impacte l’ingénierie logicielle : comment bénéficier du
parallélisme ?
• De nombreuses tendances poussent à l’automatisation :
• Cloud, VM, DVCS, outils développeurs avec batch mode, …
• Laisser les ordinateurs faire le travail répétitif
• Laisser les décisions aux personnes
• « Auparavant, l’intégration continue était la noisette dans le
chocolat, maintenant c’est le chocolat »