Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial é a terceira parte de uma série e mostra como implantar um aplicativo do Service Fabric em um cluster no Azure.
Na terceira parte da série, ficará a saber como:
- Criar um cluster Linux seguro no Azure
- Implantar um aplicativo no cluster
Nesta série de tutoriais, ficará a saber como:
- Crie um aplicativo Java Service Fabric Reliable Services
- Implementar e depurar a aplicação num cluster local
- Implantar aplicativo em um cluster do Azure
- Configurar a monitorização e os diagnósticos da aplicação
- Configurar CI/CD
Pré-requisitos
Antes de começar este tutorial:
- Se não tiver uma subscrição do Azure, crie uma conta gratuita
- Instalar a CLI do Azure
- Instalar o SDK do Service Fabric para Mac ou Linux
- Instalar o Python 3
Criar um cluster do Service Fabric no Azure
As etapas a seguir criam os recursos necessários para implantar seu aplicativo em um cluster do Service Fabric. Além disso, os recursos necessários para monitorizar a saúde da sua solução usando a pilha ELK (Elasticsearch, Logstash, Kibana) são configurados. Especificamente, os Hubs de Eventos são usados como destino para logs do Service Fabric. Ele está configurado para enviar logs do cluster do Service Fabric para sua instância do Logstash.
Abra um terminal e baixe o seguinte pacote que contém os scripts auxiliares necessários e os modelos para criar os recursos no Azure
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.gitInicie sessão na sua conta do Azure
az loginDefina sua assinatura do Azure que você deseja usar para criar os recursos
az account set --subscription [SUBSCRIPTION-ID]Na pasta service-fabric-java-quickstart/AzureCluster , execute o seguinte comando para criar um certificado de cluster no Cofre da Chave. Esse certificado é usado para proteger seu cluster do Service Fabric. Forneça a região (deve ser a mesma do cluster do Service Fabric), o nome do grupo de recursos do cofre de chaves, o nome do cofre de chaves, a senha do certificado e o nome DNS do 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'O comando anterior retorna as seguintes informações que devem ser anotadas para uso posterior.
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>Criar um grupo de recursos para a conta de armazenamento que armazena seus logs
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrgCrie uma conta de armazenamento que será usada para armazenar os logs que serão produzidos
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 StorageAcesse o portal do Azure e navegue até a guia Assinatura de Acesso Compartilhado da sua conta de Armazenamento. Gere o token SAS da seguinte maneira.
Copie a URL SAS da conta e reserve-a para uso ao criar seu cluster do Service Fabric. É semelhante ao seguinte 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%3DCrie um grupo de recursos que contenha os recursos do Hub de Eventos. Os Hubs de Eventos são usados para enviar mensagens do Service Fabric para o servidor que executa os recursos ELK.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrgCrie um recurso de Hubs de Eventos usando o comando a seguir. Siga as instruções para inserir detalhes para namespaceName, eventHubName, consumerGroupName, sendAuthorizationRule e 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): receiverCopie o conteúdo do campo de saída na saída JSON do comando anterior. As informações do remetente são usadas quando o cluster do Service Fabric é criado. O nome e a chave do recetor devem ser salvos para uso no próximo tutorial quando o serviço Logstash estiver configurado para receber mensagens do Hub de Eventos. O blob a seguir é um exemplo de saída 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" } }Execute o script eventhubssastoken.py para gerar a URL SAS para o recurso EventHubs que você criou. Essa URL SAS é usada pelo cluster do Service Fabric para enviar logs para Hubs de Eventos. Como resultado, a política de remetente é usada para gerar a URL. O script retorna a URL SAS para o recurso Hubs de Eventos usado na seguinte etapa:
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'Copie o valor do campo sr do JSON retornado. O valor do campo sr é o token SAS para EventHubs. O seguinte URL é um exemplo do campo sr :
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderSua URL SAS para os EventHubs segue a estrutura:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>. Por exemplo,https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderAbra o arquivo sfdeploy.parameters.json e substitua o seguinte conteúdo das etapas anteriores. [SAS-URL-STORAGE-ACCOUNT] foi anotado na etapa 8. [SAS-URL-EVENT-HUBS] foi registrado na etapa 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }Abre sfdeploy.parameters.json. Altere os seguintes parâmetros e, em seguida, salve o arquivo.
- clusterName. Use apenas letras minúsculas e algarismos.
- adminUserName (para um valor diferente de branco)
- adminPassword (para um valor diferente de branco)
Execute o seguinte comando para criar seu cluster do 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>
Implantar seu aplicativo no cluster
Antes de implantar seu aplicativo, você precisa adicionar o seguinte trecho ao arquivo Voting/VotingApplication/ApplicationManifest.xml . O campo X509FindValue é o hash retornado da Etapa 4 da seção Criar um cluster do Service Fabric no Azure. Esse trecho é aninhado no campo ApplicationManifest (o campo raiz).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>Para implantar seu aplicativo nesse cluster, você deve usar SFCTL para estabelecer uma conexão com o cluster. O SFCTL requer um arquivo PEM com a chave pública e privada para se conectar ao cluster. Execute o seguinte comando para produzir um arquivo PEM com a chave pública e privada.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>Execute o seguinte comando para se conectar ao cluster.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verifyPara implantar seu aplicativo, navegue até a pasta Voting/Scripts e execute o script install.sh .
./install.shPara acessar o Service Fabric Explorer, abra seu navegador favorito e digite
https://testlinuxcluster.westus.cloudapp.azure.com:19080. Escolha o certificado do armazenamento de certificados que o/a utilizador(a) deseja usar para se conectar a este ponto de ligação. Se estiver a utilizar uma máquina Linux, os certificados que foram gerados pelo script new-service-fabric-cluster-certificate.sh têm de ser importados para o Chrome para visualizar o Service Fabric Explorer. Se estiver a utilizar um Mac, tem de instalar o ficheiro PFX no seu porta-chaves. Você percebe que seu aplicativo foi instalado no cluster.
Para acessar seu aplicativo, digite
https://testlinuxcluster.westus.cloudapp.azure.com:8080
Para desinstalar o aplicativo do cluster, execute o script uninstall.sh na pasta Scripts
./uninstall.sh
Próximos passos
Neste tutorial, você aprendeu como:
- Criar um cluster Linux seguro no Azure
- Crie os recursos necessários para o monitoramento com ELK
Avance para o tutorial seguinte: