Tutorial: Implementar uma aplicação com CI/CD num cluster do Service FabricTutorial: Deploy an application with CI/CD to a Service Fabric cluster

Este tutorial é a parte quatro de uma série e descreve como configurar a integração e a implantação contínua para um aplicativo de Service Fabric do Azure usando Azure Pipelines.This tutorial is part four of a series and describes how to set up continuous integration and deployment for an Azure Service Fabric application using Azure Pipelines. É necessária uma aplicação do Service Fabric existente. A aplicação criada em Compilar uma aplicação .NET é utilizada como exemplo.An existing Service Fabric application is needed, the application created in Build a .NET application is used as an example.

Na terceira parte da série, ficará a saber como:In part three of the series, you learn how to:

  • Adicionar controlo de origem ao seu projetoAdd source control to your project
  • Criar um pipeline de compilação no Azure PipelinesCreate a build pipeline in Azure Pipelines
  • Criar um pipeline de versão no Azure PipelinesCreate a release pipeline in Azure Pipelines
  • Implementar e atualizar uma aplicação automaticamenteAutomatically deploy and upgrade an application

Nesta série de tutoriais, ficará a saber como:In this tutorial series you learn how to:

Pré-requisitosPrerequisites

Antes de começar este tutorial:Before you begin this tutorial:

Transferir a aplicação de votação de exemploDownload the Voting sample application

Se não conseguiu criar a aplicação de votação de exemplo na primeira parte desta série de tutoriais, pode transferi-la.If you did not build the Voting sample application in part one of this tutorial series, you can download it. Numa janela do comando, execute o seguinte comando para clonar o repositório da aplicação de exemplo para o seu computador local.In a command window, run the following command to clone the sample app repository to your local machine.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Preparar um perfil de publicaçãoPrepare a publish profile

Agora que já criou uma aplicação e implementou a aplicação no Azure, está pronto para configurar a integração contínua.Now that you've created an application and have deployed the application to Azure, you're ready to set up continuous integration. Primeiro, prepare um perfil de publicação dentro de seu aplicativo para uso pelo processo de implantação executado no Azure Pipelines.First, prepare a publish profile within your application for use by the deployment process that executes within Azure Pipelines. O perfil de publicação deve ser configurado para visar o cluster que criou anteriormente.The publish profile should be configured to target the cluster that you've previously created. Inicie o Visual Studio e abra um projeto de aplicação do Service Fabric existente.Start Visual Studio and open an existing Service Fabric application project. No Explorador de Soluções, clique com o botão direito do rato na aplicação e selecione Publicar... .In Solution Explorer, right-click the application and select Publish....

Escolha um perfil de destino no seu projeto de aplicação para utilizar para o fluxo de trabalho de integração contínua, por exemplo, a Cloud.Choose a target profile within your application project to use for your continuous integration workflow, for example Cloud. Especifique o ponto final de ligação do cluster.Specify the cluster connection endpoint. Marque a caixa de verificação Atualizar a Aplicação para que a aplicação seja atualizada para cada implementação no Azure DevOps.Check the Upgrade the Application checkbox so that your application upgrades for each deployment in Azure DevOps. Clique na hiperligação Guardar para guardar as definições do perfil de publicação e, em seguida, clique em Cancelar para fechar a caixa de diálogo.Click the Save hyperlink to save the settings to the publish profile and then click Cancel to close the dialog box.

Perfil push

Partilhar a sua solução Visual Studio num novo repositório Git do Azure DevOpsShare your Visual Studio solution to a new Azure DevOps Git repo

Partilhe os ficheiros de origem da aplicação para um projeto no Azure DevOps, para que possa gerar compilações.Share your application source files to a project in Azure DevOps so you can generate builds.

Crie um novo repositório Git local para o seu projeto, selecionando Adicionar ao Controlo de Origem -> Git na barra de estado no canto inferior direito do Visual Studio.Create a new local Git repo for your project by selecting Add to Source Control -> Git on the status bar in the lower right-hand corner of Visual Studio.

Na vista Push no Team Explorer, selecione o botão Publicar Repositório Git em Push para o Azure DevOps.In the Push view in Team Explorer, select the Publish Git Repo button under Push to Azure DevOps.

Repositório Git de push

Verifique o seu e-mail e selecione a sua conta na lista pendente Domínio do Azure DevOps.Verify your email and select your account in the Azure DevOps Domain drop-down. Introduza o nome do seu repositório e selecione Publicar repositório.Enter your repository name and select Publish repository.

Repositório Git de push

A publicação do repositório cria um novo projeto na sua conta com o mesmo nome que o repositório local.Publishing the repo creates a new project in your account with the same name as the local repo. Para criar o repositório num projeto existente, clique em Avançadas junto ao nome do Repositório e selecione um projeto.To create the repo in an existing project, click Advanced next to Repository name and select a project. Pode ver o código na Web, selecionando Ver na Web.You can view your code on the web by selecting See it on the web.

Configurar a entrega contínua com o Azure PipelinesConfigure Continuous Delivery with Azure Pipelines

Um pipeline de Build Azure Pipelines descreve um fluxo de trabalho que é composto por um conjunto de etapas de compilação que são executadas sequencialmente.An Azure Pipelines build pipeline describes a workflow that is composed of a set of build steps that are executed sequentially. Crie um pipeline de compilação que produz um pacote de aplicação do Service Fabric, e outros artefactos, para implementar num cluster do Service Fabric.Create a build pipeline that produces a Service Fabric application package, and other artifacts, to deploy to a Service Fabric cluster. Saiba mais sobre Pipelines de compilação do Azure Pipelines.Learn more about Azure Pipelines build pipelines.

Um pipeline de versão do Azure Pipelines descreve um fluxo de trabalho que implementa um pacote de aplicação num cluster.An Azure Pipelines release pipeline describes a workflow that deploys an application package to a cluster. Quando utilizados em conjunto, o pipeline de compilação e o pipeline de versão executam o fluxo de trabalho completo, começando com os ficheiros de origem e terminando com uma aplicação em execução no cluster.When used together, the build pipeline and release pipeline execute the entire workflow starting with source files to ending with a running application in your cluster. Saiba mais sobre os pipelines de versão Azure pipelines.Learn more about Azure Pipelines release pipelines.

Criar um pipeline de compilaçãoCreate a build pipeline

Abra um browser e navegue até ao novo projeto em: https://<myaccount>.visualstudio.com/Voting/Voting%20Team/_git/Voting.Open a web browser and navigate to your new project at: https://<myaccount>.visualstudio.com/Voting/Voting%20Team/_git/Voting.

Selecione a guia pipelines , Buildse, em seguida, clique em novo pipeline.Select the Pipelines tab, then Builds, then click New Pipeline.

Novo Pipeline

Selecione Azure Repos git como fonte, projeto de equipe de votação , repositório de votação e Branch padrão mestre para compilações manuais e agendadas.Select Azure Repos Git as source, Voting Team project, Voting Repository, and master Default branch for manual and scheduled builds. Em seguida, clique em Continuar.Then click Continue.

Selecionar repositório

Em Selecionar um modelo, selecione o modelo Aplicação do Azure Service Fabric e clique em Aplicar.In Select a template, select the Azure Service Fabric application template and click Apply.

Escolher o modelo de compilação

Em tarefas, digite "Hosted VS2017" como o pool de agentes.In Tasks, enter "Hosted VS2017" as the Agent pool.

Selecionar tarefas

Em Acionadores, ative a integração contínua ao selecionar Ativar a integração contínua.Under Triggers, enable continuous integration by checking Enable continuous integration. Em filtros de ramificação, a especificação de ramificação usa como padrão o mestre.Within Branch filters, the Branch specification defaults to master. Selecione Guardar e colocar em fila de espera para iniciar manualmente uma compilação.Select Save and queue to manually start a build.

Selecionar acionadores

As compilações também são acionadas após push ou dar entrada.Builds also trigger upon push or check-in. Para verificar o progresso da compilação, alterne para a guia compilações . Depois de verificar se a compilação é executada com êxito, defina um pipeline de liberação que implanta seu aplicativo em um cluster.To check your build progress, switch to the Builds tab. Once you verify that the build executes successfully, define a release pipeline that deploys your application to a cluster.

Criar um pipeline de versãoCreate a release pipeline

Selecione a guia pipelines , em seguida, versõese + novo pipeline.Select the Pipelines tab, then Releases, then + New pipeline. Em Selecionar um modelo, selecione o modelo Implementação do Azure Service Fabric na lista e, em seguida, Aplicar.In Select a template, select the Azure Service Fabric Deployment template from the list and then Apply.

Escolher o modelo de versão

Selecione Tarefas->Ambiente 1 e, em seguida, +Novo para adicionar uma nova ligação de cluster.Select Tasks->Environment 1 and then +New to add a new cluster connection.

Adicionar ligação de cluster

Na vista Adicionar nova Ligação do Service Fabric, selecione a autenticação Baseada em certificado ou Azure Active Directory.In the Add new Service Fabric Connection view select Certificate Based or Azure Active Directory authentication. Especifique um nome de ligação "mysftestcluster" e um ponto final de cluster "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (ou o ponto final do cluster no qual está a implementar).Specify a connection name of "mysftestcluster" and a cluster endpoint of "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (or the endpoint of the cluster you are deploying to).

Para autenticação baseada em certificado, adicione a impressão digital do certificado do servidor do certificado do servidor usado para criar o cluster.For certificate-based authentication, add the Server certificate thumbprint of the server certificate used to create the cluster. Em Certificado de cliente, adicione a codificação base 64 do ficheiro de certificado de cliente.In Client certificate, add the base-64 encoding of the client certificate file. Consulte o pop-up de ajuda sobre esse campo para obter informações sobre como obter essa representação com codificação base 64 do certificado.See the help pop-up on that field for info on how to get that base-64 encoded representation of the certificate. Além disso, adicione a Palavra-passe para o certificado.Also add the Password for the certificate. Pode utilizar o certificado de servidor ou cluster se não tiver um certificado de cliente separado.You can use the cluster or server certificate if you don't have a separate client certificate.

Para as credenciais do Azure Active Directory, adicione o Thumbprint do certificado de servidor do certificado de servidor utilizado para criar o cluster e as credenciais que pretende utilizar para ligar ao cluster nos campos Nome de utilizador e Palavra-passe.For Azure Active Directory credentials, add the Server certificate thumbprint of the server certificate used to create the cluster and the credentials you want to use to connect to the cluster in the Username and Password fields.

Clique em Adicionar para guardar a ligação de cluster.Click Add to save the cluster connection.

Em seguida, adicione um artefacto de compilação ao pipeline, para que o pipeline de versão possa encontrar o resultado da compilação.Next, add a build artifact to the pipeline so the release pipeline can find the output from the build. Selecione Pipeline e Artefactos-> +Adicionar.Select Pipeline and Artifacts->+Add. Em Origem (Definição de compilação) , selecione o pipeline de compilação que criou anteriormente.In Source (Build definition), select the build pipeline you created previously. Clique em Adicionar para criar o artefacto.Click Add to save the build artifact.

Adicionar artefacto

Ative um acionador de implementação contínua para que uma versão seja criada automaticamente quando a compilação for concluída.Enable a continuous deployment trigger so that a release is automatically created when the build completes. Clique no ícone de relâmpago no artefacto, ative o acionador e clique em Guardar para guardar o pipeline de versão.Click the lightning icon in the artifact, enable the trigger, and click Save to save the release pipeline.

Ativar o acionador

Selecione + Versão -> Criar uma Versão -> Criar para criar manualmente uma versão.Select + Release -> Create a Release -> Create to manually create a release. Pode monitorizar o progresso da versão no separador Versões.You can monitor the release progress in the Releases tab.

Verifique se a implementação foi concluída com êxito e se a aplicação está em execução no cluster.Verify that the deployment succeeded and the application is running in the cluster. Abra um navegador da Web e navegue até http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/.Open a web browser and navigate to http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Tome nota da versão da aplicação, que neste exemplo é "1.0.0.20170616.3".Note the application version, in this example it is "1.0.0.20170616.3".

Consolidar e emitir alterações, acionar uma versãoCommit and push changes, trigger a release

Para verificar se o pipeline de integração contínua está a funcionar, dê entrada de algumas alterações de código no Azure DevOps.To verify that the continuous integration pipeline is functioning by checking in some code changes to Azure DevOps.

À medida que escreve o código, as alterações são automaticamente controladas pelo Visual Studio.As you write your code, your changes are automatically tracked by Visual Studio. Para consolidar as alterações ao repositório Git local, selecione o ícone de alterações pendentes (Commit changes to your local Git repository by selecting the pending changes icon (Pendente) na barra de estado na parte inferior direita.) from the status bar in the bottom right.

Na vista Alterações, no Team Explorer, adicione uma mensagem que descreva a atualização e consolide as alterações.On the Changes view in Team Explorer, add a message describing your update and commit your changes.

Consolidar tudo

Selecione o ícone da barra de estado de alterações não publicadas (Alterações não publicadas) ou a vista de Sincronização no Team Explorer.Select the unpublished changes status bar icon (Unpublished changes) or the Sync view in Team Explorer. Selecione enviar por push para atualizar seu código no Azure pipelines.Select Push to update your code in Azure Pipelines.

Emitir alterações

Enviar as alterações para Azure Pipelines dispara automaticamente uma compilação.Pushing the changes to Azure Pipelines automatically triggers a build. Quando o pipeline de compilação for concluído com êxito, é criada automaticamente uma versão e a aplicação no cluster começa a ser atualizada.When the build pipeline successfully completes, a release is automatically created and starts upgrading the application on the cluster.

Para verificar o progresso da compilação, mude para o separador Compilações no Team Explorer no Visual Studio.To check your build progress, switch to the Builds tab in Team Explorer in Visual Studio. Depois de verificar se a compilação é executada com êxito, defina um pipeline de versão que implementa a aplicação num cluster.Once you verify that the build executes successfully, define a release pipeline that deploys your application to a cluster.

Verifique se a implementação foi concluída com êxito e se a aplicação está em execução no cluster.Verify that the deployment succeeded and the application is running in the cluster. Abra um navegador da Web e navegue até http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/.Open a web browser and navigate to http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Tome nota da versão da aplicação, que neste exemplo é "1.0.0.20170815.3".Note the application version, in this example it is "1.0.0.20170815.3".

Service Fabric Explorer

Atualizar a aplicaçãoUpdate the application

Efetue alterações de código na aplicação.Make code changes in the application. Guarde e consolide as alterações, seguindo os passos anteriores.Save and commit the changes, following the previous steps.

Depois de iniciada a atualização de versão da aplicação, pode ver o progresso da atualização de versão no Service Fabric Explorer:Once the upgrade of the application begins, you can watch the upgrade progress in Service Fabric Explorer:

Service Fabric Explorer

A atualização de versão da aplicação pode demorar vários minutos.The application upgrade may take several minutes. Quando a atualização de versão estiver concluída, a aplicação irá executar a versão seguinte.When the upgrade is complete, the application will be running the next version. Neste exemplo, "1.0.0.20170815.4".In this example "1.0.0.20170815.4".

Service Fabric Explorer

Passos SeguintesNext steps

Neste tutorial, ficou a saber como:In this tutorial, you learned how to:

  • Adicionar controlo de origem ao seu projetoAdd source control to your project
  • Criar um pipeline de compilaçãoCreate a build pipeline
  • Criar um pipeline de versãoCreate a release pipeline
  • Implementar e atualizar uma aplicação automaticamenteAutomatically deploy and upgrade an application

Avance para o tutorial seguinte:Advance to the next tutorial: