Architecture Microservices 1 : Configuration

Lors du dernier événement interne de Zenika, plusieurs consultants nous ont présenté l’architecture qu’ils avaient mis en place chez leur client. Le client avait des contraintes très particulières : une haute disponibilité et une volumétrie importante réparties sur des applications très variées. Afin de répondre à ces problématiques, les consultants Zenika ont choisi de mettre en place une architecture microservices. Convaincu par leur présentation, je vais mettre en place ce type d’architecture sur un petit projet de démonstration en expliquant les différentes étapes.

Architecture Microservices avec Spring Boot et Spring Cloud

 

spacer

Mockito et les classes primitives

Aujourd’hui, dans le cadre de mon développement, j’ai dû mettre en place des tests unitaires avec Mockito. Ces tests sont assez simples et ne posent pas trop de problèmes. Mais, j’ai découvert un comportement étrange de la part de Mockito concernant les attributs de type Boolean. Dans un objet mocké, un getter dont le retour n’est pas déterminé, retourne false au lieu de null qui serait la valeur par défaut de l’attribut. Je vais tenter de décrire la situation plus précisément par la suite.

Mockito et les classes primaires

spacer

PySpark et Docker : premiers pas

Au cours de mon stage chez Zenika, j’ai pu découvrir de nombreuses nouvelles technologies. L’une d’entre elles fait beaucoup de bruit dans le domaine du Big Data et du Machine Learning. Je veux bien sur parler ici de Spark. Je vais vous présenter rapidement l’outil et vous proposer de lancer un traitement simple en Python à l’aide de PySpark.

Premiers pas avec PySpark sur Docker

spacer

Solution Docker d’Intégration Continue

Dans le cadre de la fin de mes études à l’Exia.CESI, j’ai mené un projet de Recherche et d’Innovation sur l’Intégration Continue avec Docker. Ce projet est composé d’un état de l’art rédigé lors de la quatrième année à l’Exia, et d’une étude menée pendant la cinquième année. Le choix du sujet a été une véritable difficulté pour ce projet. J’ai d’abord souhaité étudier les langages en réalisant des tests de performances afin de rédiger un livre blanc permettant aux entreprises de choisir le langage correspondant à leurs besoins. Avec mes expériences de stages, j’ai vite compris que ceci n’était pas possible dans les petites entreprises. En effet, celles-ci possèdent déjà des processus et des équipes formées sur un langage et elles ne vont pas faire un changement qui engendrerai ce type de coût et irait contre une majorité des développeurs déjà spécialisés. Pour améliorer le fonctionnement de l’entreprise, il peut être préférable d’améliorer son existant. C’est à ce moment que l’intégration continue intervient… La problématique est donc : Pourquoi l’intégration continue n’est elle pas répandue dans l’ensemble des entreprises?

Solution d'Intégration continue avec Docker

spacer

Maven Archetype : There is no POM in this directory

Some times ago, I encountered a question on StackOverflow that caught my attention. This was about an error when Maven was called with the archetype goal. The message was saying that to use this goal the user had to execute the command from a directory where there was a POM file. I wondered how this could be as, the archetype goal is used to generate this file and all the project structure. Let’s see what was the error.

mavenapache

spacer

Logiciel graphique avec Docker : Haroopad

Lors de la formation Docker que j’ai pû suivre lors de mon stage chez Zenika, j’ai souhaité prendre des notes en Markdown. Pas encore très à l’aise avec la syntaxe, je souhaitais utiliser un éditeur qui proposait une visualisation directe du document. Mon choix s’est porté sur Haroopad, un éditeur en cours de développement mais suffisamment abouti pour mon utilisation. Après un essai d’installation infructueux sur ma Debian 7.8, je découvre que ce logiciel est disponible en package Deb mais pour Ubuntu car il nécessite une librairie non disponible pour le moment dans la version stable de Debian. Heureusement, la formation Docker va m’apporter la solution. Je vais donc vous présenter le moyen que j’ai trouvé pour utiliser une application graphique comme Haroopad dans un conteneur Docker.

Haroopad dans Docker

spacer

Linux Debian : Unprivileged user can not mount NTFS block devices

J’ai récemment réinstallé mon poste avec la dernière version de Debian 7.8. L’installation s’est très bien déroulée mais lorsque j’ai voulu connecter mon disque dur formaté en NTFS et accéder à celui-ci par l’interface graphique, j’ai reçu un message d’erreur : « Unprivileged user can not mount NTFS block devices ». Après quelques recherches, j’ai pu trouver la réponse à mon problème.

Logo Debian

spacer

Changer le port de test avec Arquillian et JBoss Remote

Nous avons déjà vu comment réaliser des tests avec des EJBs de manière très simplifié grâce à Arquillian. Cependant, cela peut devenir vite compliqué lorsque les environnements des tests sont très variables. J’ai rencontré ce problème lors d’un projet sur lequel nous utilisions Jenkins et le conteneur JBoss pour réaliser nos tests. Arquillian va déployer son archive sur le port par défault de JBoss or celui-ci avait été changé sur notre serveur. Voyons comment faire pour rediriger Arquillian et lui faire tester les archives sur d’autres ports.

JbossArquillian

spacer

Tester ses EJBs avec Arquillian

La rédaction de tests est très importante lors des phases de développement d’une application. Cependant lors de développement d’application Java EE comme tester les classes métier utilisant des EJBs? Pour être testés, ils doivent être déployés au sein d’un conteneur d’EJBs qui va gérer leur instanciation et leur injection. Arquillian est un outil qui va permettre de gérer le déploiement des archives à tester avant d’exécuter les tests. Voyons comment.

arquillian_logo_450px

spacer

Approfondissement Technique : Intégration continue

Au cours de ma cinquième année à l’Exia.CESI, j’ai réalisé un projet d’approfondissement technique au sein d’un groupe de 4 personnes. Chaque membre du projet devait choisir un sujet qu’il connaissait et souhaitait approfondir. Chacun a donc choisi un sujet différent en fonction de ses affinités et de son choix d’orientation professionnelle. Nous nous sommes alors réunis pour définir un projet qui nous permettrait de mettre en pratique nos sujets. Le projet Skilldr est ainsi né. Je souhaite maintenant vous présenter le contenu de mon approfondissement sur l’intégration continue en Java.

ProcessIntegrationContinue

spacer