IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Architecture Discussion :

Tutoriel sur le développement d'une application basée sur une architecture microservices avec Docker


Sujet :

Architecture

  1. #1
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 72 948
    Points
    72 948
    Par défaut Tutoriel sur le développement d'une application basée sur une architecture microservices avec Docker
    Bonjour,

    Je vous propose un tutoriel sous la forme d'exercices afin d'apprendre à construire une application en respectant une architecture à base de microservices. Nous utiliserons pour cela plusieurs technologies : la bibliothèque KumuluzEE pour packager et exécuter une application Java EE en ligne de commande, l'outil Docker pour l'isolation des microservices, la bibliothèque et le serveur RabbitMQ pour la gestion d'un bus d'événements afin que les microservices communiquent de manière asynchrone et finalement, l'outil Docker Compose pour la composition des microservices.

    La grande majorité du code contenu dans les microservices vous sera donnée comme support. En effet, ces exercices se focaliseront principalement sur les problématiques de déploiement.

    L'adresse du tutoriel est la suivante : http://mbaron.developpez.com/tutorie...cation-docker/

    Profitez de cet espace pour donner vos impressions ou poser vos questions.

    Mickael

  2. #2
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Avril 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Avril 2016
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Tutoriel très bien fait
    Merci pour ce petit tutoriel fort sympathique et très bien fait qui permet de découvrir les architectures microservices mais également de nombreuses autres techno.

    Je me permets de relever une petite coquille dans le chapitre "V-C. Étapes à suivre", la variable d'environnement à définir est REDISALIAS_PORT et non REDISALIAS_HOST.

  3. #3
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 72 948
    Points
    72 948
    Par défaut
    Salut,

    Merci pour le retour positif.

    Je viens de corriger. Un résidu d'une ancienne version.

    Mickael

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juin 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juin 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Port ?
    Bonjour,

    dans les sources du projet, la classe JedisFactory n'est pas en phase avec votre tutoriel. La classe semble manipuler une variable d'environnement "REDIS_HOST" dans les sources et votre tutoriel parle de la variable d'environnement "REDISALIAS_PORT", ce qui permet juste de choisir l'adresse IP du Redis et non son numéro de port.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	...
            private static final String REDIS_HOST_ENV_KEY = "REDIS_HOST";
            ...
    	private String getRedisHost() {
    		String redisHost = System.getenv(REDIS_HOST_ENV_KEY);
    		if (redisHost == null || redisHost.isEmpty()) {
    			return "localhost";
     		} else {
     			return redisHost;
     		}
    	}
            ...

    De ce fait, on ne peut renseigner le numéro du port Redis et l’exécution du tutoriel génère une erreur de connexion.

    aillet

  5. #5
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 72 948
    Points
    72 948
    Par défaut
    Salut,

    Merci

    Je n'avais impacté la solution.

    Les sources à jour sont sur mon github (voir lien en bas du tutoriel)

    Mickael

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut port 6379 redis
    Bonjour,

    D'abord merci pour votre cours.

    A l'étape 3, la création du conteneur redis se fait comme suit en utilisant le port 6379 et ce pour assurer la communication entre ce projet (pas encore isolé dans un conteneur Docker) et le microservice Redis la solution est de rediriger le port 6379 de l'hôte vers le port 6379 du conteneur (le port par défaut de Redis).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docker run --name redis -v $(pwd)/data:/data -p 6379:6379 -d redis redis-server --appendonly yes

    À l'étape 6, la création du conteneur redis se fait sans mentionner de port :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docker run --name redis -d --network helloworldnetwork -v $(pwd)/data:/data redis redis-server --appendonly yes

    Pourriez-vous m'expliquer pourquoi?

    D'avance merci.

    JF

  7. #7
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 72 948
    Points
    72 948
    Par défaut
    Bonjour,

    Dans le premier cas, vision "Développement", le port du conteneur Redis a été exposé afin de pouvoir tester son code Java avec le serveur Redis. Cela se passe comme si Redis avait été installé sans Docker.

    Dans le second cas, c'est plus une vision Production. Dans une architecture microservice, il faut pouvoir isoler les services. C'est la raison d'avoir créé un sous-réseau helloworldnetwork. Tous les conteneurs appartenant à ce sous réseau peuvent communiquer entre eux. Par conséquent, plus besoin d'exposer le port 6379 puisque le conteneur Java et le conteneur Redis font partie du même sous réseau. Par ailleurs, est-ce qu'il y a une utilité d'exposer le port 6379 en production, la réponse est non.

    Mickael

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2021
    Messages : 2
    Points : 3
    Points
    3
    Par défaut problème
    salut, s'il vous plait j'ai un problème au niveau de l'exercice 3 ou il faut ajouter une variable d'environnement. je ne sais pas comment le faire.
    je serais ravis si vous pouvez m'aider.

  9. #9
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 72 948
    Points
    72 948
    Par défaut
    Bonjour,

    Sous Eclipse, depuis la configuration d'exécution il y a un onglet Environment. Voir capture d'écran
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/03/2012, 16h11
  2. Réponses: 2
    Dernier message: 04/07/2007, 18h06
  3. Réponses: 5
    Dernier message: 10/05/2007, 20h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo