Kurz: Nasazení aplikace v Javě do clusteru Service Fabric v Azure
V tomto kurzu, který je třetí částí série, se dozvíte, jak nasadit aplikaci Service Fabric do clusteru v Azure.
Ve třetí části této série se naučíte:
- Vytvoření zabezpečeného clusteru s Linuxem v Azure
- Nasazení aplikace do clusteru
V této sérii kurzů se naučíte:
Požadavky
Než začnete s tímto kurzem:
- Pokud ještě předplatné Azure nemáte, vytvořte si bezplatný účet.
- Instalace rozhraní příkazového řádku Azure CLI
- Nainstalujte sadu Service Fabric SDK pro Mac nebo Linux.
- Nainstalujte Python 3.
Vytvoření clusteru Service Fabric v Azure
Následujícím postupem se vytvoří nezbytné prostředky potřebné k nasazení aplikace do clusteru Service Fabric. Kromě toho se nastaví prostředky potřebné k monitorování stavu vašeho řešení pomocí stacku ELK (Elasticsearch, Logstash, Kibana). Konkrétně se použije služba Event Hubs jako jímka pro protokoly ze Service Fabric. Nakonfiguruje se tak, aby odesílala protokoly z clusteru Service Fabric do vaší instance Logstash.
Otevřete terminál a stáhněte následující balíček, který obsahuje potřebné pomocné skripty a šablony pro vytváření prostředků v Azure.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git
Přihlášení k účtu Azure
az login
Nastavte své předplatné Azure, které chcete použít k vytvoření prostředků.
az account set --subscription [SUBSCRIPTION-ID]
Spuštěním následujícího příkazu ve složce service-fabric-java-quickstart/AzureCluster vytvořte certifikát clusteru ve službě Key Vault. Tento certifikát slouží k zabezpečení vašeho clusteru Service Fabric. Zadejte oblast (musí být stejná jako u vašeho clusteru Service Fabric), název skupiny prostředků trezoru klíčů, název trezoru klíčů, heslo certifikátu a název DNS clusteru.
./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'
Předchozí příkaz vrátí následující informace, které byste si měli poznamenat pro pozdější použití.
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>
Vytvořte skupinu prostředků pro účet úložiště, ve kterém se ukládají vaše protokoly.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrg
Vytvořte účet úložiště, který se použije k ukládání vygenerovaných protokolů.
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
Přejděte na web Azure Portal a na kartu Sdílený přístupový podpis pro váš účet služby Storage. Následujícím způsobem vygenerujte token SAS.
Zkopírujte adresu URL SAS účtu a někam si ji uložte pro použití při vytváření clusteru Service Fabric. Vypadá podobně jako následující adresa URL:
?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
Vytvořte skupinu prostředků, která obsahuje prostředky centra událostí. Služba Event Hubs slouží k odesílání zpráv ze Service Fabric na server, na kterém jsou spuštěné prostředky ELK.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrg
Pomocí následujícího příkazu vytvořte prostředek služby Event Hubs. Postupujte podle zobrazených výzev a zadejte podrobnosti pro hodnoty namespaceName (název oboru názvů), eventHubName (název centra událostí), consumerGroupName (název skupiny příjemců), sendAuthorizationRuleName (název autorizačního pravidla pro odesílání) a receiveAuthorizationRuleName (název autorizačního pravidla pro příjem).
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
Zkopírujte obsah pole output ve výstupu JSON předchozího příkazu. Informace o odesilateli se použijí při vytváření clusteru Service Fabric. Název a klíč příjemce byste si měli uložit pro použití v dalším kurzu, kdy nakonfigurujete službu Logstash pro příjem zpráv z centra událostí. Následující objekt blob představuje příklad výstupu 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" } }
Spuštěním skriptu eventhubssastoken.py vygenerujte adresu URL SAS pro prostředek služby Event Hubs, který jste vytvořili. Pomocí této adresy URL SAS bude cluster Service Fabric odesílat protokoly do služby Event Hubs. To znamená, že se k vygenerování této adresy URL použije zásada sender (odesilatel). Skript vrátí adresu URL SAS prostředku služby Event Hubs, která se použije v následujícím kroku:
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'
Zkopírujte hodnotu pole sr ve vráceném kódu JSON. Hodnota pole sr je token SAS pro službu Event Hubs. Následující adresa URL je příkladem pole sr:
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender
Vaše adresa URL SAS pro EventHubs se řídí strukturou:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>
. Napříkladhttps://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender
Otevřete soubor sfdeploy.parameters.json a nahraďte následující obsah hodnotami z předchozích kroků. Hodnotu [SAS-URL-STORAGE-ACCOUNT] jste si poznamenali v kroku 8. Hodnotu [SAS-URL-EVENT-HUBS] jste si poznamenali v kroku 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }
Otevřete soubor sfdeploy.parameters.json. Změňte následující parametry a pak soubor uložte.
- clusterName. Použijte pouze malá písmena a číslice.
- adminUserName (na jinou než prázdnou hodnotu)
- adminPassword (na jinou než prázdnou hodnotu)
Spuštěním následujícího příkazu vytvořte 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>
Nasazení aplikace do clusteru
Před nasazením aplikace je potřeba do souboru Voting/VotingApplication/ApplicationManifest.xml přidat následující fragment kódu. Pole X509FindValue obsahuje kryptografický otisk vrácený z kroku 4 v části Vytvoření clusteru Service Fabric v Azure. Tento fragment kódu je vnořený do pole ApplicationManifest (kořenové pole).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>
Pokud chcete nasadit aplikaci do tohoto clusteru, musíte pomocí SFCTL navázat připojení ke clusteru. SFCTL vyžaduje pro připojení ke clusteru soubor PEM s veřejným i privátním klíčem. Spusťte následující příkaz, který soubor PEM s veřejným a privátním klíčem vytvoří.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>
Spuštěním následujícího příkazu se připojte ke clusteru.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verify
Pokud chcete nasadit svou aplikaci, přejděte do složky Voting/Scripts a spusťte skript install.sh.
./install.sh
Pokud chcete přejít do nástroje Service Fabric Explorer, otevřete oblíbený prohlížeč a zadejte do něj
https://testlinuxcluster.westus.cloudapp.azure.com:19080
. Z úložiště certifikátů zvolte certifikát, který chcete použít pro připojení k tomuto koncovému bodu. Pokud používáte počítač s Linuxem, k zobrazení nástroje Service Fabric Explorer je potřeba do Chrome importovat certifikáty vygenerované skriptem new-service-fabric-cluster-certificate.sh. Pokud používáte počítač Mac, musíte soubor PFX nainstalovat do své klíčenky. Všimněte si, že se vaše aplikace nainstalovala do clusteru.Pokud chcete přejít do své aplikace, zadejte
https://testlinuxcluster.westus.cloudapp.azure.com:8080
.Pokud chcete aplikaci z clusteru odinstalovat, spusťte skript uninstall.sh ve složce Scripts.
./uninstall.sh
Další kroky
V tomto kurzu jste se naučili, jak:
- Vytvoření zabezpečeného clusteru s Linuxem v Azure
- Vytvoření prostředků potřebných pro monitorování pomocí ELK
Přejděte k dalšímu kurzu: