Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten samouczek jest trzecią częścią serii i pokazuje, jak wdrożyć aplikację usługi Service Fabric w klastrze na platformie Azure.
W trzeciej części serii dowiesz się, jak wykonywać następujące działania:
- Tworzenie bezpiecznego klastra systemu Linux na platformie Azure
- Wdrażanie aplikacji w klastrze
Z tej serii samouczków dowiesz się, jak wykonywać następujące działania:
- Tworzenie aplikacji Java Service Fabric Reliable Services
- Wdrażanie i debugowanie aplikacji w klastrze lokalnym
- Wdrażanie aplikacji w klastrze platformy Azure
- Konfigurowanie monitorowania i diagnostyki aplikacji
- Ustawianie CI/CD
Wymagania wstępne
Przed rozpoczęciem tego samouczka:
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto
- Zainstalowanie interfejsu wiersza polecenia platformy Azure
- Instalowanie zestawu SDK usługi Service Fabric dla komputerów Mac lub Linux
- Instalowanie języka Python 3
Tworzenie klastra usługi Service Fabric na platformie Azure
Poniższe kroki umożliwiają utworzenie niezbędnych zasobów wymaganych do wdrożenia aplikacji w klastrze usługi Service Fabric. Ponadto konfigurowane są zasoby niezbędne do monitorowania kondycji rozwiązania przy użyciu stosu ELK (Elasticsearch, Logstash, Kibana). W szczególności usługa Event Hubs jest używana jako ujście dzienników z usługi Service Fabric. Skonfigurowano go do wysyłania dzienników z klastra usługi Service Fabric do wystąpienia usługi Logstash.
Otwórz terminal i pobierz następujący pakiet zawierający niezbędne skrypty pomocnika i szablony, aby utworzyć zasoby na platformie Azure
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.gitZaloguj się do swojego konta platformy Azure
az loginUstaw subskrypcję platformy Azure, której chcesz użyć do utworzenia zasobów
az account set --subscription [SUBSCRIPTION-ID]W folderze service-fabric-java-quickstart/AzureCluster uruchom następujące polecenie, aby utworzyć certyfikat klastra w usłudze Key Vault. Ten certyfikat służy do zabezpieczania klastra usługi Service Fabric. Podaj region (musi być taki sam jak klaster usługi Service Fabric), nazwa grupy zasobów magazynu kluczy, nazwa magazynu kluczy, hasło certyfikatu i nazwa DNS klastra.
./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'Poprzednie polecenie zwraca następujące informacje, które należy zauważyć do późniejszego użycia.
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>Utwórz grupę zasobów dla konta magazynowego przechowującego twoje dzienniki
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrgUtwórz konto magazynowe, które posłuży do przechowywania dzienników, które zostaną utworzone.
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 StorageUzyskaj dostęp do portalu Azure i przejdź do karty Współdzielona sygnatura dostępu dla Twojego konta magazynu. Wygeneruj token SAS w następujący sposób.
Skopiuj adres URL SAS konta i zachowaj go do wykorzystania podczas tworzenia klastru Service Fabric. Przypomina on następujący adres 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%3DUtwórz grupę zasobów zawierającą zasoby centrum zdarzeń. Usługa Event Hubs służy do wysyłania komunikatów z usługi Service Fabric do serwera z uruchomionymi zasobami ELK.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrgUtwórz zasób usługi Event Hubs przy użyciu następującego polecenia. Postępuj zgodnie z monitami, aby wprowadzić szczegóły dla przestrzeni nazw, eventHubName, consumerGroupName, sendAuthorizationRule i 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): receiverSkopiuj zawartość pola output w danych wyjściowych JSON wcześniejszego polecenia. Informacje o nadawcy są używane podczas tworzenia klastra usługi Service Fabric. Nazwa i klucz odbiorcy powinny być zapisywane do użycia w następnym samouczku, gdy usługa Logstash jest skonfigurowana do odbierania komunikatów z centrum zdarzeń. Poniższy obiekt blob to przykładowe dane wyjściowe 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" } }Uruchom skrypt eventhubssastoken.py, aby wygenerować URL sygnatury dostępu współdzielonego dla utworzonego zasobu EventHubs. Ten adres URL sygnatury dostępu współdzielonego jest używany przez klaster usługi Service Fabric do wysyłania dzienników do usługi Event Hubs. W związku z tym zasady nadawcy są używane do generowania adresu URL. Skrypt zwraca URL SAS dla zasobu Event Hubs, który jest używany w kolejnym kroku.
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'Skopiuj wartość pola sr w zwróconym formacie JSON. Wartość pola sr jest tokenem SAS dla usługi EventHubs. Następujący adres URL to przykład pola sr :
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderAdres URL sygnatury dostępu współdzielonego dla usługi EventHubs jest zgodny ze strukturą:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>. Na przykładhttps://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderOtwórz plik sfdeploy.parameters.json i zastąp następującą zawartość z poprzednich kroków. [SAS-URL-STORAGE-ACCOUNT] zostało zanotowane w kroku 8. [SAS-URL-EVENT-HUBS] został zanotowany w kroku 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }Otwiera sfdeploy.parameters.json. Zmień następujące parametry, a następnie zapisz plik.
- clusterName. Używaj tylko małych liter i cyfr.
- adminUserName (do wartości innej niż pusta)
- adminPassword (do wartości innej niż pusta)
Uruchom następujące polecenie, aby utworzyć klaster usługi 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>
Wdrażanie aplikacji w klastrze
Przed wdrożeniem aplikacji należy dodać następujący fragment kodu do pliku Voting/VotingApplication/ApplicationManifest.xml . Pole X509FindValue to odcisk palca zwrócony w kroku 4 sekcji Tworzenie klastra usługi Service Fabric na platformie Azure . Ten fragment kodu jest zagnieżdżony w polu ApplicationManifest (pole główne).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>Aby wdrożyć aplikację w tym klastrze, należy użyć biblioteki SFCTL do nawiązania połączenia z klastrem. Protokół SFCTL wymaga pliku PEM z kluczem publicznym i prywatnym w celu nawiązania połączenia z klastrem. Uruchom następujące polecenie, aby utworzyć plik PEM z kluczem publicznym i prywatnym.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>Uruchom następujące polecenie, aby nawiązać połączenie z klastrem.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verifyAby wdrożyć aplikację, przejdź do folderu Voting/Scripts i uruchom skrypt install.sh .
./install.shAby uzyskać dostęp do narzędzia Service Fabric Explorer, otwórz swoją przeglądarkę i wpisz
https://testlinuxcluster.westus.cloudapp.azure.com:19080. Wybierz certyfikat z magazynu certyfikatów, którego chcesz użyć do nawiązania połączenia z tym punktem końcowym. Jeśli używasz maszyny z systemem Linux, certyfikaty wygenerowane przez skrypt new-service-fabric-cluster-certificate.sh muszą zostać zaimportowane do przeglądarki Chrome, aby wyświetlić program Service Fabric Explorer. Jeśli używasz komputera Mac, musisz zainstalować plik PFX w pęku kluczy. Zauważysz, że aplikacja została zainstalowana w klastrze.
Aby uzyskać dostęp do aplikacji, wpisz
https://testlinuxcluster.westus.cloudapp.azure.com:8080
Aby odinstalować aplikację z klastra, uruchom skrypt uninstall.sh w folderze Scripts
./uninstall.sh
Dalsze kroki
W tym samouczku nauczyłeś się następujących rzeczy:
- Tworzenie bezpiecznego klastra systemu Linux na platformie Azure
- Tworzenie zasobów niezbędnych do monitorowania za pomocą rozwiązania ELK
Przejdź do następnego samouczka: