Tutorial: Implantar um aplicativo com CI/CD em um cluster do Service FabricTutorial: Deploy an application with CI/CD to a Service Fabric cluster

Este tutorial é a quarta parte de uma série e descreve como configurar a integração e a implantação contínua de um aplicativo do Azure Service Fabric usando o 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ário um aplicativo existente do Service Fabric e o aplicativo criado em Criar um aplicativo .NET é usado 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, você aprenderá a:In part three of the series, you learn how to:

  • Adicionar controle do código-fonte ao seu projetoAdd source control to your project
  • Criar um pipeline de build no Azure PipelinesCreate a build pipeline in Azure Pipelines
  • Criar um pipeline de lançamento no Azure PipelinesCreate a release pipeline in Azure Pipelines
  • Implantar e atualizar automaticamente um aplicativoAutomatically deploy and upgrade an application

Nesta série de tutoriais, você aprenderá a:In this tutorial series you learn how to:

Pré-requisitosPrerequisites

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

Baixar o aplicativo de exemplo VotaçãoDownload the Voting sample application

Se você não tiver criado o aplicativo de exemplo Votação na parte um esta série de tutoriais, poderá baixá-lo.If you did not build the Voting sample application in part one of this tutorial series, you can download it. Em uma janela de comando, execute o comando a seguir para clonar o repositório de aplicativos de exemplo no 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 você criou um aplicativo e implantou o aplicativo no Azure, você 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 em seu aplicativo para ser usado pelo processo de implantação que é 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 direcionar-se ao cluster que você 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 aplicativo do Service Fabric existente.Start Visual Studio and open an existing Service Fabric application project. No Gerenciador de Soluções, clique com o botão direito do mouse no aplicativo e selecione Publicar... .In Solution Explorer, right-click the application and select Publish....

Escolha um perfil de destino em seu projeto de aplicativo a fim de usar para o fluxo de trabalho de integração contínua, por exemplo, Nuvem.Choose a target profile within your application project to use for your continuous integration workflow, for example Cloud. Especifique o ponto de extremidade de conexão do cluster.Specify the cluster connection endpoint. Marque a caixa de seleção Atualizar o Aplicativo para que seu aplicativo seja atualizado a cada implantação no Azure DevOps.Check the Upgrade the Application checkbox so that your application upgrades for each deployment in Azure DevOps. Clique no hiperlink Salvar para salvar as configurações em seu 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 de envio por push

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

Compartilhe os arquivos de origem do aplicativo em um projeto no Azure DevOps para que você possa gerar builds.Share your application source files to a project in Azure DevOps so you can generate builds.

Crie um novo repositório Git local para seu projeto selecionando Adicionar ao controle do código-fonte -> Git na barra de status 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 exibição Push no Team Explorer, selecione o botão Publicar Repositório Git em Efetuar Push para o Azure DevOps.In the Push view in Team Explorer, select the Publish Git Repo button under Push to Azure DevOps.

Enviar por push o repositório Git

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

Enviar por push o repositório Git

A publicação do repositório cria um novo projeto na conta com o mesmo nome do 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 em um projeto existente, clique em Avançado ao lado do nome do Repositório e escolha um projeto.To create the repo in an existing project, click Advanced next to Repository name and select a project. Você pode exibir seu código na Web selecionando Vê-lo 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 do Azure Pipelines descreve um fluxo de trabalho composto por um conjunto de etapas de build 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 build que produz um pacote de aplicativos do Service Fabric e outros artefatos para implantar em um 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 os pipelines de build do Azure Pipelines.Learn more about Azure Pipelines build pipelines.

Um pipeline de lançamento do Azure Pipelines descreve um fluxo de trabalho que implanta um pacote de aplicativos em um cluster.An Azure Pipelines release pipeline describes a workflow that deploys an application package to a cluster. Quando usados juntos, o pipeline de lançamento e o pipeline de build executam todo o fluxo de trabalho, começando com os arquivos de origem e terminando com um aplicativo em execução em seu 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 lançamento do Azure Pipelines.Learn more about Azure Pipelines release pipelines.

Criar um pipeline de buildCreate a build pipeline

Abra um navegador da Web e navegue até seu 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, Builds e clique em Novo Pipeline.Select the Pipelines tab, then Builds, then click New Pipeline.

Novo Pipeline

Selecione Git do Azure Repos como fonte, projeto Voting Team, Repositório Voting e o branch Padrão mestre para builds manuais e agendados.Select Azure Repos Git as source, Voting Team project, Voting Repository, and master Default branch for manual and scheduled builds. Clique em Continuar.Then click Continue.

Selecionar repositório

Em Selecionar um modelo, selecione o modelo Aplicativo 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 build

Em Tarefas, insira "VS2017 Hospedado" como oPool de agentes.In Tasks, enter "Hosted VS2017" as the Agent pool.

Selecionar tarefas

Em Gatilhos, habilite a integração contínua marcando Habilitar a integração contínua.Under Triggers, enable continuous integration by checking Enable continuous integration. Dentro de Filtros de branch, a Especificação de branch assume mestre como padrão.Within Branch filters, the Branch specification defaults to master. Selecione Salvar e enfileirar para iniciar uma compilação manualmente.Select Save and queue to manually start a build.

Selecionar gatilhos

A compilação também é disparada durante o push ou o check-in.Builds also trigger upon push or check-in. Para verificar o progresso da compilação, alterne para a guia Compilações. Depois de verificar que o build foi executado com êxito, configure um pipeline de lançamento para implantar 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 lançamentoCreate a release pipeline

Selecione a guia Pipelines, Versões e + Novo pipeline.Select the Pipelines tab, then Releases, then + New pipeline. Em Selecionar um modelo, selecione o modelo Implantação do Azure Service Fabric na lista e Aplicar.In Select a template, select the Azure Service Fabric Deployment template from the list and then Apply.

Escolher modelo de versão

Selecione Tarefas->Ambiente 1 e + Novo para adicionar uma nova conexão do cluster.Select Tasks->Environment 1 and then +New to add a new cluster connection.

Adicionar conexão do cluster

No modo de exibição Adicionar nova Conexã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 o nome de conexão de "mysftestcluster" e um ponto de extremidade do cluster "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (ou o ponto de extremidade do cluster em que você está implantando).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 a 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 do cliente, adicione a codificação de base 64 do arquivo de certificado do cliente.In Client certificate, add the base-64 encoding of the client certificate file. Veja no pop-up de ajuda do campo informações sobre como obter essa representação de codificação de 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. Essa também é a Senha para o arquivo do certificado.Also add the Password for the certificate. Se você não tiver um certificado do cliente ou do servidor separado, poderá usar o certificado de cluster ou do servidor.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 a Impressão digital do certificado de servidor do certificado do servidor usado para criar o cluster e as credenciais que deseja usar para se conectar ao cluster nos campos Nome de Usuário e Senha.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 salvar a conexão do cluster.Click Add to save the cluster connection.

Em seguida, adicione um artefato de compilação ao pipeline para que o pipeline de lançamento possa encontrar a saída 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 Artefatos-> +Adicionar.Select Pipeline and Artifacts->+Add. Em Fonte (Definição de compilação) , selecione o pipeline de build criado anteriormente.In Source (Build definition), select the build pipeline you created previously. Clique em Adicionar para salvar o artefato de compilação.Click Add to save the build artifact.

Adicionar artefato

Habilite um gatilho de implantaçã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 raio no artefato, habilite o gatilho e clique em Salvar para salvar o pipeline de lançamento.Click the lightning icon in the artifact, enable the trigger, and click Save to save the release pipeline.

Habilitar gatilho

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. Você pode monitorar o andamento da versão na guia Versões.You can monitor the release progress in the Releases tab.

Verifique se a implantação foi bem-sucedida e o aplicativo 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/. Observe a versão do aplicativo, neste exemplo é "1.0.0.20170616.3".Note the application version, in this example it is "1.0.0.20170616.3".

Confirmar e enviar alterações por push, disparar uma versãoCommit and push changes, trigger a release

Para verificar se o pipeline de integração contínua está funcionando conferindo 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.

Ao escrever seu código, suas alterações são rastreadas automaticamente pelo Visual Studio.As you write your code, your changes are automatically tracked by Visual Studio. Confirme as alterações em seu repositório Git local, selecionando o ícone de alterações pendentes (Commit changes to your local Git repository by selecting the pending changes icon (Pendente) na barra de status na parte inferior direita.) from the status bar in the bottom right.

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

Confirmar tudo

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

Enviar alterações por push

O push das alterações para o Azure Pipelines dispara um build automaticamente.Pushing the changes to Azure Pipelines automatically triggers a build. Quando o pipeline de build é concluído com êxito, uma versão é criada automaticamente e inicia a atualização do aplicativo no cluster.When the build pipeline successfully completes, a release is automatically created and starts upgrading the application on the cluster.

Para verificar o progresso do build, alterne para a guia Builds 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 que o build foi executado com êxito, configure um pipeline de lançamento para implantar aplicativo em um cluster.Once you verify that the build executes successfully, define a release pipeline that deploys your application to a cluster.

Verifique se a implantação foi bem-sucedida e o aplicativo 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/. Observe a versão do aplicativo, 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 o aplicativoUpdate the application

Fazer alterações de código no aplicativo.Make code changes in the application. Salve e confirme as alterações, seguindo as etapas anteriores.Save and commit the changes, following the previous steps.

Depois que a atualização do aplicativo se inicia, você pode observar o progresso da atualizaçã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 do aplicativo pode levar vários minutos.The application upgrade may take several minutes. Quando a atualização estiver concluída, o aplicativo estará executado a próxima versão.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

Próximas etapasNext steps

Neste tutorial, você aprendeu como:In this tutorial, you learned how to:

  • Adicionar controle do código-fonte ao seu projetoAdd source control to your project
  • Criar um pipeline de buildCreate a build pipeline
  • Criar um pipeline de lançamentoCreate a release pipeline
  • Implantar e atualizar automaticamente um aplicativoAutomatically deploy and upgrade an application

Prosseguir para o próximo tutorial:Advance to the next tutorial: