Your SlideShare is downloading. ×
Gérer son environnement de développement avec Docker
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gérer son environnement de développement avec Docker

3,386
views

Published on

Utilisation de Docker pour gérer une stack de développement "moderne", avec Maven / Grunt / Bower / Yeoman, et pouvoir facilement se partager ses containers entre membres d'une même équipe

Utilisation de Docker pour gérer une stack de développement "moderne", avec Maven / Grunt / Bower / Yeoman, et pouvoir facilement se partager ses containers entre membres d'une même équipe

Published in: Technology

0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,386
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Gérer son environnement de développement avec Docker Julien Dubois - @juliendubois
  • 2. Agenda Le problème Présentation de JHipster Les problèmes liés à notre environnement de dév La solution Utilisation de Docker Démonstration Questions/Réponses
  • 3. Le problème
  • 4. Qu’est-ce que JHipster ?
  • 5. JHipster Un générateur Yeoman Permet de créer une application complète Maven + Spring 4 + JPA côté serveur Grunt + Bower + AngularJS + Twitter Bootstrap + Compass côté client 2 focus principaux : Un environnement de travail unifié, avec tous les outils fonctionnant correctement ensemble La production : minification des ressources, cache distribué, monitoring, JAR exécutable unique…
  • 6. JHipster vous intéresse ? Rejoignez-nous ! Disponible sur Github 
 https://github.com/jhipster/generator-jhipster Documentation complète sur 
 http://jhipster.github.io/ Twitter: @java_hipster
  • 7. Notre environnement de développement Java : JDK, Maven… JavaScript : Node.js, NPM, Yo, Grunt, Bower… CSS : Ruby, Compass, Sass…
  • 8. 3 problèmes principaux Tout installer est long et compliqué Nous voulons les bonnes versions de chaque outil Nous ne voulons pas installer n’importe quoi en étant « root »
  • 9. Exemples Pour utiliser Yeoman, il vous faut la dernière version de Node Pas celle fournie par défaut sur Ubuntu, qui date de Mathusalem Pour utiliser Compass, il vous faut une vieille version de Ruby Il vous faut Ruby 1.9.1, en passant par RVM Pour installer NPM il vous faut être « root ». Pour télécharger vos dépendances avec Bower, il ne faut pas être « root » Sans compter l’installation de Git, de Java, de Maven, etc… Bon courage pour avoir quelque chose qui marche, et qui soit identique au poste de votre collègue ! Et qui s’occupe du serveur d’intégration continue ?
  • 10. Et la production ? Notre stack de développement « moderne » est devenue particulièrement complexe… Mais ce n’est pas le cas de notre environnement de production JHipster génère un « WAR » standard, utilisable sur n’importe quel PAAS JHipster génère également un « JAR exécutable », qu’il suffit donc d’exécuter java -jar myapplication.jar -Dspring.profiles.active=prod Nous n’avons donc pas ce type de problème en production pour JHipster
  • 11. La solution
  • 12. Docker Fourni un « container » dans lequel tous ces outils sont déjà installés Simple à démarrer, à tuer, à recréer en fonction des besoins Environnement identique pour tous les développeurs du projet, et pour le serveur d’intégration continue
  • 13. Recommandations sur l’utilisation de Docker Ne fonctionne en réalité que sous Linux Si vous n’êtes pas sous Linux, Docker utilise une machine Vagrant En développement, travaillez de préférence sous Linux Avoir une machine Vagrant rajoute un niveau supplémentaire de virtualisation, qui complexifie la configuration Les répertoires partagés sous VirtualBox sont horriblement lents et buggés En production, la solution future sera certainement boot2docker https://github.com/steeve/boot2docker Proche d’un « hyperviseur bare metal » (ils sont forts en marketing chez VMWare)
  • 14. Installation et utilisation du container Docker Téléchargez l’image Docker officielle de JHipster sudo docker pull jdubois/jhipster-docker Lancez un container sudo docker run -v ~/jhipster:/jhipster -p 8080:8080 -p 9000:9000 -p 4022:22 -t jdubois/jhipster-docker Importez votre clef SSH cat .ssh/id_rsa.pub | ssh -p 4022 jhipster@localhost 'mkdir .ssh && cat >> .ssh/authorized_keys' Connectez-vous ssh -p 4022 jhipster@localhost
  • 15. Utilisation de JHipster Allez dans votre répertoire partagé cd /jhipster Générez votre application yo jhipster Lancez votre serveur Tomcat mvn tomcat7:run Lancez votre serveur Grunt grunt server
  • 16. Fonctionnement de JHipster avec Docker IDE / Text editor Shared filesystem on /jhipster 9000 Web browser 8080 Grunt server
 Compass/Sass JVM
 Maven/Tomcat/ Spring/Hibernate/ HSQLDB Docker container Ubuntu host (on Virtualbox)
  • 17. Démonstration
  • 18. Résultats Notre environnement de travail est Simple à installer Facile à partager avec nos collègues Reproductible Sécurisé Performant (surtout si vous êtes en « natif » sur Linux)
  • 19. Questions/réponses Dockerfile utilisé pour cette présentation :
 https://github.com/jhipster/jhipster-docker JHipster est disponible sur http://jhipster.github.io/ Questions tardives sur Twitter: @juliendubois