Archives

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

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

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

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

Provider pour Exception : ExceptionMapper

Dans le cadre d’un projet scolaire, nous avons mis en place une application Java EE contenant des EJBs et des WebServices REST. Dans nos EJBs, nous avons créé une gestion d’erreurs par exceptions pour avoir des retours notamment en ce qui concerne la base de données. Afin d’obtenir un message claire et orienté utilisateur, nous avons paramétré une classe Provider héritant de ExceptionMapper gérant les Exceptions de manière personnalisée avant de les envoyer aux clients légers. Ainsi, l’utilisateur ne sera pas bloqué sans information, et celles qui lui sont envoyées sont formatées pour avoir un affichage propre.javaProviderException

spacer

Conférence: Apache TomEE

En Java EE, il est commun d’utiliser des serveurs d’applications qui vont réaliser le déploiement de nos applications War et servir de conteneurs à tous les traitements réalisés. Le problèmes posé par ces serveurs est qu’ils sont généralement assez volumineux et qu’ils consomment beaucoup de ressources serveurs. Au Java User Group de Lyon, Jean-Louis Monteiro est venu nous présenter le serveur d’applications Apache TomEE qui allie les capacités du Java EE et la légéreté de Tomcat, le conteneur de servlets de la fondation Apache.apachetomee

spacer

Services RestFul avec RestEasy

Avec le développement des Single Page Application, les développeurs Java EE ont de plus en plus besoin faire des Web services respectant les normes Rest. La spécification JAX-RS définit une norme d’implémentation de ces services en Java. RestEasy est une de ces implémentations tout comme CXF et Jersey. Je vais présenter ici une implémentation simple de ce type de service.

javaresteasy

spacer

Gestion de la Session avec un Filter

Les applications présentes sur le Web peuvent nécessiter une connexion afin de proposer des services spécifiques. Afin de bloquer les accès sur certaines pages de nos applications, il est nécessaire de filtrer les accès aux différentes URLs de l’application. La session doit ensuite contenir les informations de l’utilisateur et être testée à chaque action. Pour cela, il est possible d’utiliser un Filter dont la méthode principale va être appelée à chaque accès à une Servlet.

javasession

spacer

Les espaces mémoire de la JVM

La machine virtuelle Java dans laquelle s’exécutent tous les programmes écris en Java est un outil très performant. Les développeurs Java n’ont plus besoin de gérer la mémoire comme ils le faisaient en langage C. Cette gestion de la mémoire est effectuée par le Garbage Collector (GC). Cependant, le GC étant un programme lui-même, il consomme CPU et mémoire. Afin de diminuer son impact, les développeurs de chez SunMicrosystems ont créé différents espaces mémoire qui seront traités de manières différentes par le GC.

javaEspaceMémoire

spacer

Atelier Création : Servlet et JSP agrémentée de JSTL

L’API Servlet fait partie du monde du Java Enterprise Edition. Cette API mature a vu le jour afin de répondre aux problématique Internet qui sont omniprésentes aujourd’hui. Elle est la base de nombreux frameworks qui permettent la création de pages HTML dynamiques notamment Struts. Cette API n’est plus souvent très utilisé en l’état, les développeurs vont préférer les frameworks plus complets se basant dessus. Mais je pense qu’il est important de connaître la base de ce que l’on utilise.

Java Servlet et Jsp

spacer