Partager via


Tutoriel : Déployer une application Java sur un cluster Service Fabric dans Azure

Ce troisième didacticiel de la série vous montre comment déployer une application Service Fabric sur un cluster dans Azure.

Dans ce troisième volet, vous apprenez à :

  • Créer un cluster Linux sécurisé dans Azure
  • Déployer une application sur le cluster

Cette série de tutoriels vous montre comment effectuer les opérations suivantes :

Prérequis

Avant de commencer ce tutoriel :

Créer un cluster Service Fabric dans Azure

Les étapes suivantes créent les ressources nécessaires pour déployer votre application sur un cluster Service Fabric. En outre, les ressources nécessaires pour surveiller l’intégrité de votre solution à l’aide de la pile ELK (Elasticsearch, Logstash, Kibana) sont configurées. Plus précisément, Event Hubs est utilisé en tant que récepteur pour les journaux d’activité de Service Fabric. Il est configuré pour envoyer des journaux d’activité du cluster Service Fabric à votre instance Logstash.

  1. Ouvrez un terminal et téléchargez le package suivant qui contient les scripts d’assistance et les modèles nécessaires pour créer les ressources dans Azure

    git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git
    
  2. Connexion à votre compte Azure

    az login
    
  3. Configurer l’abonnement Azure que vous souhaitez utiliser pour créer les ressources

    az account set --subscription [SUBSCRIPTION-ID]
    
  4. À partir du dossier service-fabric-java-quickstart/AzureCluster, exécutez la commande suivante pour créer un certificat de cluster dans Key Vault. Ce certificat est utilisé pour sécuriser votre cluster Service Fabric. Indiquez la région (doit être identique à votre cluster Service Fabric), le nom du groupe de ressource de coffre de clés, le nom du coffre de clés, le mot de passe du certificat et le nom DNS du cluster.

    ./new-service-fabric-cluster-certificate.sh [REGION] [KEY-VAULT-RESOURCE-GROUP] [KEY-VAULT-NAME] [CERTIFICATE-PASSWORD] [CLUSTER-DNS-NAME-FOR-CERTIFICATE]
    
    Example: ./new-service-fabric-cluster-certificate.sh 'westus' 'testkeyvaultrg' 'testkeyvault' '<password>' 'testservicefabric.westus.cloudapp.azure.com'
    

    La commande précédente renvoie les informations suivantes qui doivent être notées pour une utilisation ultérieure.

    Source Vault Resource Id: /subscriptions/<subscription_id>/resourceGroups/testkeyvaultrg/providers/Microsoft.KeyVault/vaults/<name>
    Certificate URL: https://<name>.vault.azure.net/secrets/<cluster-dns-name-for-certificate>/<guid>
    Certificate Thumbprint: <THUMBPRINT>
    
  5. Créez un groupe de ressources pour le compte de stockage qui stocke vos journaux d’activité

    az group create --location [REGION] --name [RESOURCE-GROUP-NAME]
    
    Example: az group create --location westus --name teststorageaccountrg
    
  6. Créez un compte de stockage qui sera utilisé pour stocker les journaux d’activité produits

    az storage account create -g [RESOURCE-GROUP-NAME] -l [REGION] --name [STORAGE-ACCOUNT-NAME] --kind Storage
    
    Example: az storage account create -g teststorageaccountrg -l westus --name teststorageaccount --kind Storage
    
  7. Accédez au portail Azure, puis à l’onglet Signature d’accès partagé pour votre compte de stockage. Générez le jeton SAP comme suit.

    Generate SAS for Storage

  8. Copiez l’URL de SAP de compte et mettez-la de côté pour l’utiliser lors de la création de votre cluster Service Fabric. L’URL se présente comme suit :

    ?sv=2017-04-17&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-01-31T03:24:04Z&st=2018-01-30T19:24:04Z&spr=https,http&sig=IrkO1bVQCHcaKaTiJ5gilLSC5Wxtghu%2FJAeeY5HR%2BPU%3D
    
  9. Créez un groupe de ressources qui contient les ressources Event Hub. Event Hubs est utilisé pour envoyer des messages de Service Fabric au serveur exécutant les ressources ELK.

    az group create --location [REGION] --name [RESOURCE-GROUP-NAME]
    
    Example: az group create --location westus --name testeventhubsrg
    
  10. Créez une ressource Event Hubs à l’aide de la commande suivante. Suivez les invites pour entrer les informations de namespaceName, eventHubName, consumerGroupName, sendAuthorizationRule et receiveAuthorizationRule.

    az deployment group create -g [RESOURCE-GROUP-NAME] --template-file eventhubsdeploy.json
    
    Example:
    az deployment group create -g testeventhubsrg --template-file eventhubsdeploy.json
    Please provide string value for 'namespaceName' (? for help): testeventhubnamespace
    Please provide string value for 'eventHubName' (? for help): testeventhub
    Please provide string value for 'consumerGroupName' (? for help): testeventhubconsumergroup
    Please provide string value for 'sendAuthorizationRuleName' (? for help): sender
    Please provide string value for 'receiveAuthorizationRuleName' (? for help): receiver
    

    Copiez le contenu du champ de sortie dans la sortie JSON de la commande précédente. Les informations d’expéditeur sont utilisées lors de la création du cluster Service Fabric. La clé et le nom du récepteur doivent être enregistrés pour une utilisation dans le didacticiel suivant lorsque le service Logstash est configuré pour recevoir des messages à partir d’Event Hub. L’objet blob suivant est un exemple de sortie JSON :

    "outputs": {
        "receiver Key": {
            "type": "String",
            "value": "[KEY]"
        },
        "receiver Name": {
            "type": "String",
            "value": "receiver"
        },
        "sender Key": {
            "type": "String",
            "value": "[KEY]"
        },
        "sender Name": {
            "type": "String",
            "value": "sender"
        }
    }
    
  11. Exécutez le script eventhubssastoken.py pour générer l’URL de la SAP pour la ressource EventHubs que vous avez créée. Cette URL de SAP est utilisée par le cluster Service Fabric pour envoyer des journaux d’activité à Event Hubs. Par conséquent, la stratégie expéditeur est utilisée pour générer l’URL. Le script renvoie l’URL de SAP pour la ressource Event Hubs qui est utilisée dans l’étape suivante :

    python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'
    

    Copiez la valeur du champ sr dans le JSON renvoyé. La valeur du champ sr est le jeton SAP pour EventHubs. L’URL suivante texte un exemple de champ sr :

    https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender
    

    Votre URL SAP pour Event Hubs suit la structure : https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>. Par exemple : https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender

  12. Ouvrez le fichier sfdeploy.parameters.json et remplacez le contenu suivant des étapes précédentes. [SAS-URL-STORAGE-ACCOUNT] a été indiqué à l’étape 8. [SAS-URL-EVENT-HUBS] a été indiqué à l’étape 11.

    "applicationDiagnosticsStorageAccountName": {
        "value": "teststorageaccount"
    },
    "applicationDiagnosticsStorageAccountSasToken": {
        "value": "[SAS-URL-STORAGE-ACCOUNT]"
    },
    "loggingEventHubSAS": {
        "value": "[SAS-URL-EVENT-HUBS]"
    }
    
  13. Ouvrez sfdeploy.parameters.json. Modifiez les paramètres suivants puis enregistrez le fichier.

    • clusterName. Utilisez uniquement des lettres minuscules et des chiffres.
    • adminUserName (pour une valeur autre que vide)
    • adminPassword (pour une valeur autre que vide)
  14. Exécutez la commande ci-dessous pour créer votre cluster Service Fabric

    az sf cluster create --location 'westus' --resource-group 'testlinux' --template-file sfdeploy.json --parameter-file sfdeploy.parameters.json --secret-identifier <certificate_url_from_step4>
    

Déployer votre application sur le cluster

  1. Avant de déployer votre application, vous devez ajouter l’extrait de code suivant au fichier Voting/VotingApplication/ApplicationManifest.xml. Le champ X509FindValue est l’empreinte renvoyée de l’étape 4 de la section Créer un cluster Service Fabric dans Azure. Cet extrait de code est imbriqué sous le champ ApplicationManifest (le champ racine).

    <Certificates>
          <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" />
    </Certificates>
    
  2. Pour déployer votre application sur ce cluster, vous devez utiliser SFCTL pour établir une connexion au cluster. SFCTL nécessite un fichier PEM avec la clé publique et la clé privée pour se connecter au cluster. Exécutez la commande suivante pour générer un fichier PEM contenant à la fois la clé publique et la clé privée.

    openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>
    
  3. Exécutez la commande suivante pour vous connecter au cluster.

    sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verify
    
  4. Pour déployer votre application, accédez au dossier Voting/Scripts et exécutez le script install.sh.

    ./install.sh
    
  5. Pour accéder à Service Fabric Explorer, ouvrez votre navigateur favori et tapez https://testlinuxcluster.westus.cloudapp.azure.com:19080. Choisissez le certificat dans le magasin de certificats que vous souhaitez utiliser pour vous connecter à ce point de terminaison. Si vous utilisez un ordinateur Linux, les certificats qui ont été générés par le script new-service-fabric-cluster-certificate.sh doivent être importés dans Chrome pour afficher Service Fabric Explorer. Si vous utilisez un Mac, vous devez installer le fichier PFX dans votre chaîne de clé. Vous remarquerez que votre application a été installée sur le cluster.

    SFX Java Azure

  6. Pour accéder à votre application, tapez https://testlinuxcluster.westus.cloudapp.azure.com:8080

    Voting App Java Azure

  7. Pour désinstaller votre application du cluster, exécutez le script uninstall.sh dans le dossier Scripts

    ./uninstall.sh
    

Étapes suivantes

Dans ce didacticiel, vous avez appris à :

  • Créer un cluster Linux sécurisé dans Azure
  • Créer les ressources nécessaires pour la surveillance avec ELK

Passez au tutoriel suivant :

Monitor your Service Fabric applications using ELK (Surveiller vos applications Service Fabric à l’aide d’ELK)