Bagikan melalui


Tutorial: Menyebarkan aplikasi Java ke kluster Service Fabric di Azure

Tutorial ini adalah bagian ketiga dari seri dan menunjukkan kepada Anda cara menyebarkan aplikasi Service Fabric ke kluster di Azure.

Di bagian ketiga seri ini, Anda mempelajari cara:

  • Membuat kluster Linux yang aman di Azure
  • Menyebarkan aplikasi ke kluster

Dalam tutorial ini, Anda akan belajar cara:

Prasyarat

Sebelum Anda memulai tutorial ini:

Membuat kluster Service Fabric di Azure

Langkah-langkah berikut membuat sumber daya yang diperlukan untuk menyebarkan aplikasi Anda ke kluster Service Fabric. Selain itu, sumber daya yang diperlukan untuk memantau kesehatan solusi Anda menggunakan ELK stack (Elasticsearch, Logstash, Kibana) telah disiapkan. Secara khusus, Event Hubs digunakan sebagai tujuan penyimpanan untuk log dari Service Fabric. Ini dikonfigurasi untuk mengirim log dari kluster Service Fabric ke instans Logstash Anda.

  1. Buka terminal dan unduh paket berikut yang berisi skrip pembantu yang diperlukan dan templat untuk membuat sumber daya di Azure

    git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git
    
  2. Masuk ke akun Azure Anda

    az login
    
  3. Atur langganan Azure yang ingin Anda gunakan untuk membuat sumber daya

    az account set --subscription [SUBSCRIPTION-ID]
    
  4. Dari folder service-fabric-java-quickstart/AzureCluster , jalankan perintah berikut untuk membuat sertifikat kluster di Key Vault. Sertifikat ini digunakan untuk mengamankan kluster Service Fabric Anda. Berikan wilayah (harus sama dengan kluster Service Fabric Anda), nama grup sumber daya brankas kunci, nama brankas kunci, kata sandi sertifikat, dan nama DNS kluster.

    ./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'
    

    Perintah sebelumnya mengembalikan informasi berikut yang harus dicatat untuk digunakan nanti.

    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. Membuat grup sumber daya untuk akun penyimpanan yang menyimpan log Anda

    az group create --location [REGION] --name [RESOURCE-GROUP-NAME]
    
    Example: az group create --location westus --name teststorageaccountrg
    
  6. Membuat akun penyimpanan yang akan digunakan untuk menyimpan log yang akan diproduksi

    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. Akses portal Microsoft Azure dan navigasikan ke tab Tanda Tangan Akses Bersama untuk akun Penyimpanan Anda. Hasilkan token SAS sebagai berikut.

    Hasilkan SAS untuk Penyimpanan

  8. Salin URL SAS akun dan sisihkan untuk digunakan saat membuat kluster Service Fabric Anda. Ini menyerupai URL berikut ini.

    ?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. Buat grup sumber daya yang berisi sumber daya Pusat Aktivitas. Azure Event Hubs digunakan untuk mengirim pesan dari Service Fabric ke server yang menjalankan sumber daya ELK.

    az group create --location [REGION] --name [RESOURCE-GROUP-NAME]
    
    Example: az group create --location westus --name testeventhubsrg
    
  10. Buat sumber daya Azure Event Hubs menggunakan perintah berikut. Ikuti perintah untuk memasukkan detail untuk namespaceName, eventHubName, consumerGroupName, sendAuthorizationRule, dan 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
    

    Salin konten bidang output di output JSON dari perintah sebelumnya. Informasi pengirim digunakan saat kluster Service Fabric dibuat. Nama penerima dan kunci harus disimpan untuk digunakan dalam tutorial berikutnya ketika layanan Logstash dikonfigurasi untuk menerima pesan dari Event Hub. Blob berikut adalah contoh output 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. Jalankan skrip eventhubssastoken.py untuk menghasilkan url SAS untuk sumber daya EventHubs yang Anda buat. URL SAS ini digunakan oleh kluster Service Fabric untuk mengirim log ke Azure Event Hubs. Akibatnya, kebijakan pengirim digunakan untuk menghasilkan URL. Skrip mengembalikan URL SAS untuk sumber daya Azure Event Hubs yang digunakan dalam langkah berikut:

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

    Salin nilai bidang sr di JSON yang dikembalikan. Nilai bidang sr adalah token SAS untuk EventHubs. URL berikut adalah contoh bidang sr :

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

    URL SAS Anda untuk EventHubs mengikuti struktur: https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>. Misalnya: https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender

  12. Buka file sfdeploy.parameters.json dan ganti konten berikut dari langkah-langkah sebelumnya. [SAS-URL-STORAGE-ACCOUNT] dicatat di langkah 8. [SAS-URL-EVENT-HUBS] dicatat di langkah 11.

    "applicationDiagnosticsStorageAccountName": {
        "value": "teststorageaccount"
    },
    "applicationDiagnosticsStorageAccountSasToken": {
        "value": "[SAS-URL-STORAGE-ACCOUNT]"
    },
    "loggingEventHubSAS": {
        "value": "[SAS-URL-EVENT-HUBS]"
    }
    
  13. Membuka sfdeploy.parameters.json. Ubah parameter berikut lalu simpan file.

    • clusterName. Gunakan hanya huruf kecil dan angka.
    • adminUserName (ke nilai selain kosong)
    • adminPassword (ke nilai yang bukan kosong)
  14. Jalankan perintah berikut untuk membuat kluster Service Fabric Anda

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

Menyebarkan aplikasi Anda ke kluster

  1. Sebelum menyebarkan aplikasi, Anda perlu menambahkan cuplikan berikut ke file Voting/VotingApplication/ApplicationManifest.xml . Field X509FindValue adalah thumbprint yang dikembalikan pada Langkah 4 bagian Buat cluster Service Fabric di Azure. Cuplikan ini disarangkan di bawah bidang ApplicationManifest (bidang akar).

    <Certificates>
          <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" />
    </Certificates>
    
  2. Untuk menyebarkan aplikasi Anda ke kluster ini, Anda harus menggunakan SFCTL untuk membuat koneksi ke kluster. SFCTL memerlukan file PEM dengan kunci publik dan privat untuk terhubung ke kluster. Jalankan perintah berikut untuk menghasilkan file PEM dengan kunci publik dan privat.

    openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>
    
  3. Jalankan perintah berikut untuk menyambungkan ke kluster.

    sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verify
    
  4. Untuk menyebarkan aplikasi Anda, navigasikan ke folder Voting/Scripts dan jalankan skrip install.sh .

    ./install.sh
    
  5. Untuk mengakses Service Fabric Explorer, buka browser favorit Anda dan ketik .https://testlinuxcluster.westus.cloudapp.azure.com:19080 Pilih sertifikat dari penyimpanan sertifikat yang ingin Anda gunakan untuk menyambungkan ke titik akhir ini. Jika Anda menggunakan komputer Linux, sertifikat yang dihasilkan oleh skrip new-service-fabric-cluster-certificate.sh harus diimpor ke Chrome untuk melihat Service Fabric Explorer. Jika Anda menggunakan Mac, Anda harus menginstal file PFX ke Rantai Kunci Anda. Anda melihat aplikasi Anda telah diinstal pada kluster.

    SFX Java Azure

  6. Untuk mengakses aplikasi Anda, ketik https://testlinuxcluster.westus.cloudapp.azure.com:8080

    Aplikasi Pemungutan Suara Java Azure

  7. Untuk menghapus instalan aplikasi Anda dari kluster, jalankan skrip uninstall.sh di folder Skrip

    ./uninstall.sh
    

Langkah berikutnya

Dalam tutorial ini, Anda belajar cara:

  • Membuat kluster Linux yang aman di Azure
  • Membuat sumber daya yang diperlukan untuk pemantauan dengan ELK

Melanjutkan ke tutorial berikutnya: