jeudi, février 25, 2016

Support de cours : Introduction aux architectures microservices disponible via Developpez.com

Mon support de cours sur une introduction aux architectures microservices (annoncé dernièrement) est désormais disponibles sur le site de Developpez.com.


Merci à Developpez.com pour la diffusion massive de mon support. Je suis passé de 100 visites à la journée à plus de 2300 visites pour le seul jour de l'annonce.

Developpez.com est une très bonne communauté pour se faire rapidement connaître.  Si vous êtes intéressés par soumettre des tutoriels ou autre, contacter la rubrique qui vous intéresse. Dans le cas de Java c'est via cette adresse : java@redaction-developpez.com.

mercredi, février 17, 2016

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java et autres qui m'ont particulièrement intéressées ces dernières semaines. J'en profite pour vous souhaiter de très bonnes fêtes de fin d'année.

Java
  • La version GWT 2.8.0 (Beta 1) est disponible en téléchargement. Au menu, le support de Java 8 et JsInterop pour facilement mapper avec des bibliothèques JS existantes.
Eclipse
  • La fondation Eclipse recrute (ou l'a peut-être déjà fait) une personne en charge d'améliorer l'environnement de développement. C'est plutôt une bonne nouvelle.
  • Eclipse CHE, c'est l'environnement de développement intégré dans le navigateur. Il y a quelques années quand on parlait d'Eclipse 4, il se murmurait l'envie d'avoir ce type d'évolution. Je pense que c'est bien parti pour être réalisé. Il faut juste que l'éditeur dans le navigateur soit de même qualité voir meilleur que ce qui est proposé par son homologue bureau ou voir IntelliJ.
Divers
  • Markdown preview est un plugin pour Sublimetext afin de visualiser un document Markdown
  • Asciinema est un outil pour enregistrer le contenu de votre console (Linux et MacOS X). Vous pouvez enregistrer sur la plateforme en ligne ou vers un fichier JSON. 
  • Asciinema2GIF est util, pour transformer un contenu Asciinema en GIF.
  • ttystudio est un autre outil pour sauvegarder son terminal.
  • GitUp un outil pour vous aider à gérer le contenu d'un GIT. 
  • Très bonne explication de la différence entre CMD et ENTRYPOINT au niveau de Docker.
  • Wekan c'est le Trello open source.
  • Electron permet de transformer une application HTML/JS/Node.js en une application bureau.
  • Quelques outils pour manipuler du PDF et se passer de cette usine à gaz payante d'Acrobat Writer. Briss pour rogner (crop) une page PDF. PDFShuffler pour ajouter des pages, rogner, faire des rotations, supprimer des pages... PDFTk fait aussi beaucoup de choses. Merci à Henri pour les tuyaux.
  • Une plateforme qui permet de faire fonctionner du Node.js sur pratiquement toutes les cartes micro-controlleurs. Le site web est très bien fait.   

mardi, février 16, 2016

Nouveau support de cours disponible : Introduction aux architectures microservices - mise en oeuvre

Il y a quelques jours, je mettais en ligne la première partie de mon support de cours dédiée sur les architectures microservices. Cette première partie se focalisée sur une introduction générale. Je vous propose maintenant la seconde partie dédiée aux technologies pour la mise en oeuvre de microservices. 

Nous commencerons par une présentation de la bibliothèque KumuluzEE pour faire des microservices avec la plateforme Java. Une grande partie sera consacré à Docker, puis nous présenterons Docker Compose. Deux parties (RabbitMQ et NGINX) sont actuellement en cours de rédaction. Elles adresserons les problématiques de bus d'événements et d'équilibrage de chager/reverse Proxy.

Je m'appuierai sur une application « fil rouge » qui sera déroulée au fur et à mesure du support de cours.

Voici un plan détaillé. 
  • Architecture microservices « fil rouge ».
  • Coder avec KumuluzEE.
  • Isoler avec Docker.
  • Communiquer avec RabbitMQ.
  • Composer avec Docker Compose.
  • Répartir la charge avec Nginx.
Si vous avez des commentaires concernant ce support de cours, exprimez-vous à partir de ce billet.

lundi, février 15, 2016

Eclipse Che, la nouvelle génération de l'EDI Eclipse accessible depuis un navigateur web. Tester avec Vagrant

Eclipse CHE est disponible en version beta depuis le mois de janvier. Pour faire simple, il s'agit d'un Eclipse dans le navigateur et où le workspace est déporté sur le serveur. Le workspace est géré par des conteneurs Docker.

Le site web d'Eclipse CHE est tout beau et la documentation est très complète. J'ai donc voulu l'installer pour tester. 

Les pré-requis logiciels sont :
  • Java 8
  • Docker 
Pour information je suis sous Mac OS X et pour Docker je n'ai jamais installé la suite logicielle boot2docker ou DockerMachine. Je passe par une box Linux Ubuntu Vagrant avec les bonnes redirections de ports.

J'ai donc préparé sur mon github un projet Vagrant pour tester Eclipse CHE. Je vous invite à télécharger :
Il n'y qu'à faire vagrant up et ouvrir son navigateur web à l'adresse http://localhost:8080.

Le principe de workspace déporté c'est vraiment pas mal. Le navigateur est très simpliste mais quel bonheur de pouvoir partager son espace de travail.

Voici par contre quelques points à souligner.
  • chaque workspace utilise un conteneur Docker suivant une image différente selon la plateforme utilisée (une image pour Java, pour PHP, ...). Chaque conteneur expose au moins cinq ports différents suivant une plage déterminée. 
  • l'éditeur de code est très simpliste pour l'instant. Il n'est même pas au niveau d'un Eclipse version bureau. Quand on voit ce que prend Eclipse comme critiques face à IntelliJ... 
  • cette version n'est que le début, j'espère qu'on pourra croiser un jour la partie EMF voir un SIRIUS sur Eclipse CHE pour faire de la modélisation.  
En tout cas bravo à l'équipe Eclipse CHE.

dimanche, février 14, 2016

Nouveau support de cours disponible : Introduction aux architectures microservices - introduction générale

Ce support de cours présente les architectures microservices. Nous commençons par un parallèle avec les applications monolithiques puis nous motivons du pourquoi les architectures microservices sont nécessaires. Nous terminons le support de cours avec les technologies utilisées pour mettre en oeuvre ce type d'architecture.

Voici un plan détaillé.
  • Contexte des applications monolithiques.
  • Microservice : quels sont les besoins ?
  • †Architecture microservices c’est quoi ?
  • †Comparaison avec les architectures existantes.
  • †Technologies mises en oeuvre.
À noter que ce cours fait suite aux cours sur les architectures orientées services.

Si vous avez des commentaires concernant ce support de cours, exprimez-vous à partir de ce billet.

lundi, février 01, 2016

Atelier SOA - Leçon 3 : Développement de services web Rest avec JAX-RS, Maven et Eclipse

Je viens de publier un tutoriel sur le développement de services web Rest avec JAX-RS en utilisant principalement Maven. Le tutoriel est disponible ici :
Ce tutoriel est une version modifiée du tutoriel qui utilisait massivement l'environnement de développement Netbeans pour la construction des classes. 
Tout comme le tutoriel sur les services web étendus avec JAX-WS (http://keulkeul.blogspot.fr/2016/01/atelier-soa-lecon-2-developpement-de.html), ce tutoriel sur JAX-RS fait abstraction d'un environnement de développement. 

L'objectif de ce tutoriel est de proposer une série d'exercices afin d'apprendre à manipuler l'API JAX-RS pour le développement de services web Rest à partir de la plateforme de développement Java.

Chaque exercice est fourni avec un projet Java Maven contenant des classes et des fichiers de configuration qu'il faudra compléter au fur et à mesure des questions. À la fin de chaque exercice, une solution du projet Java sera donnée.

N'hésitez pas à profiter des commentaires du blog pour laisser vos remarques sur le contenu.