Tutorial: Implantar um aplicativo de contêiner com CI/CD em um cluster do Service FabricTutorial: Deploy a container application with CI/CD to a Service Fabric cluster

Este tutorial é a segunda parte de uma série e descreve como configurar a integração e a implantação contínua de um aplicativo de contêiner do Azure Service Fabric usando o Visual Studio e o Azure DevOps.This tutorial is part two of a series and describes how to set up continuous integration and deployment for an Azure Service Fabric container application using Visual Studio and Azure DevOps. É necessário ter um aplicativo do Service Fabric e o aplicativo criado em Implantar um aplicativo .NET em um contêiner do Windows no Azure Service Fabric é usado como exemplo.An existing Service Fabric application is needed, the application created in Deploy a .NET application in a Windows container to Azure Service Fabric is used as an example.

Na segunda parte da série, você aprenderá como:In part two of the series, you learn how to:

  • Adicionar controle do código-fonte ao seu projetoAdd source control to your project
  • Criar uma definição de build no Team Explorer do Visual StudioCreate a build definition in Visual Studio Team Explorer
  • Criar uma definição da versão no Team Explorer do Visual StudioCreate a release definition in Visual Studio Team Explorer
  • Implantar e atualizar automaticamente um aplicativoAutomatically deploy and upgrade an application

Pré-requisitosPrerequisites

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

Preparar um perfil de publicaçãoPrepare a publish profile

Agora que você já implantou um aplicativo de contêiner, está pronto para configurar a integração contínua.Now that you've deployed a container application, 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 DevOps.First, prepare a publish profile within your application for use by the deployment process that executes within Azure DevOps. 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 de equipe no Azure DevOps para que você possa gerar builds.Share your application source files to a team 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 Conta.Verify your email and select your organization in the Account drop-down. Talvez seja preciso configurar uma organização, caso ainda não tenha uma.You may have to set up an organization if you don't already have one. 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 de equipe em sua conta com o mesmo nome do repositório local.Publishing the repository creates a new team project in your account with the same name as the local repo. Para criar o repositório em um projeto de equipe existente, clique em Avançado ao lado do nome do Repositório e escolha um projeto de equipe.To create the repository in an existing team project, click Advanced next to Repository name and select a team 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

Uma definição de build do Azure DevOps descreve um fluxo de trabalho composto por um conjunto de etapas de compilação que são executadas sequencialmente.An Azure DevOps build definition describes a workflow that is composed of a set of build steps that are executed sequentially. Crie uma definição de build que produza um pacote de aplicativos do Service Fabric e outros artefatos, para implantar em um cluster do Service Fabric.Create a build definition that produces a Service Fabric application package, and other artifacts, to deploy to a Service Fabric cluster. Saiba mais sobre definição de build do Azure DevOps.Learn more about Azure DevOps build definitions.

Uma definição de versão do Azure DevOps descreve um fluxo de trabalho que implanta um pacote de aplicativos em um cluster.An Azure DevOps release definition describes a workflow that deploys an application package to a cluster. Quando usadas juntas, a definição de build e a definição de versão 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 definition and release definition execute the entire workflow starting with source files to ending with a running application in your cluster. Saiba mais sobre a definição da versão do Azure DevOps.Learn more about Azure DevOps release definitions.

Criar a definição de buildCreate a build definition

Abra seu novo projeto de equipe navegando até https://dev.azure.com em um navegador da Web e selecionando sua organização, seguida pelo novo projeto.Open your new team project by navigating to https://dev.azure.com in a web browser and selecting your organization, followed by the new project.

Selecione a opção Pipelines no painel à esquerda, depois clique em Novo pipeline.Select the Pipelines option on the left panel, then click New Pipeline.

Observação

Se você não vir o modelo de definição de compilação, verifique se o recurso Nova experiência de criação de pipeline do YAML está desativado.If you do not see the build definition template, make sure the New YAML pipeline creation experience feature is turned off. Este recurso é configurado dentro da seção Versão prévia dos recursos da sua conta do DevOps.This feature is configured within the Preview Features section of your DevOps account.

Novo Pipeline

Selecione Git do Azure Repos como fonte, o nome do projeto da sua equipe, seu repositório de projeto e o branch Padrão master ou builds manuais e agendados.Select Azure Repos Git as source, your Team project name, your project Repository, and master Default branch or manual and scheduled builds. Clique em Continuar.Then click Continue.

Em Selecionar um modelo, selecione o modelo Aplicativo do Azure Service Fabric com suporte para Docker e clique em Aplicar.In Select a template, select the Azure Service Fabric application with Docker support template and click Apply.

Escolher o modelo de build

Em Tarefas, selecione VS2017 Hospedado como o Pool do agente.In Tasks, select Hosted VS2017 as the Agent pool.

Selecionar tarefas

Clique em Marcar imagens.Click Tag images.

No Tipo de Registro de Contêiner, selecione Registro de Contêiner do Azure.In Container Registry Type, select Azure Container Registry. Selecione uma Assinatura do Azure, em seguida, clique em Autorizar.Select an Azure Subscription, then click Authorize. Selecione um Registro de Contêiner do Azure.Select an Azure Container Registry.

Selecione as imagens do Docker Tag

Clique em Enviar imagens por push.Click Push images.

No Tipo de Registro de Contêiner, selecione Registro de Contêiner do Azure.In Container Registry Type, select Azure Container Registry. Selecione uma Assinatura do Azure, em seguida, clique em Autorizar.Select an Azure Subscription, then click Authorize. Selecione um Registro de Contêiner do Azure.Select an Azure Container Registry.

Selecione Enviar imagens por push do Docker

Na guia Gatilhos, habilite a integração contínua marcando Habilitar a integração contínua.Under the Triggers tab, enable continuous integration by checking Enable continuous integration. Dentro de Filtros de ramificação, clique em + Adicionar e Especificação de branch assumirá como padrão mestre.Within Branch filters, click + Add, and the Branch specification will default to master.

Na caixa de diálogo Salvar pipeline de build e enfileirar, clique em Salvar e enfileirar para iniciar manualmente um build.In the Save build pipeline and queue dialog, click Save & 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. Assim que verificar que o build é executado com êxito, configure uma definição de versão que implante 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 definition that deploys your application to a cluster.

Criar uma definição de versãoCreate a release definition

Selecione a opção Pipelines no painel à esquerda, depois Versões e +Novo pipeline.Select the Pipelines option on the left panel, 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, depois Ambiente 1 e + Novo para adicionar uma nova conexão do cluster.Select Tasks, then 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 autenticação baseada em certificado, adicione a Impressão digital do certificado de 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 Fase de Agente, clique em Implantar o Aplicativo do Service Fabric.Under Agent Phase, click Deploy Service Fabric Application. Clique em Configurações do Docker e, em seguida, clique em Definir configurações do Docker.Click Docker Settings and then click Configure Docker settings. Em Fonte de Credenciais de Registro, selecione Conexão de Serviço do Azure Resource Manager.In Registry Credentials Source, select Azure Resource Manager Service Connection. Selecione sua assinatura do Azure.Then select your Azure subscription.

Agente do pipeline de lançamento

Em seguida, adicione um artefato de compilação ao pipeline para que a definição da versão possa encontrar a saída da compilação.Next, add a build artifact to the pipeline so the release definition 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 a definição de compilação criada anteriormente.In Source (Build definition), select the build definition 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 a definição de versão.Click the lightning icon in the artifact, enable the trigger, and click Save to save the release definition.

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 DevOps.Select Push to update your code in Azure DevOps.

Enviar alterações por push

O push das alterações para o Azure DevOps dispara um build automaticamente.Pushing the changes to Azure DevOps automatically triggers a build. Quando a definição de build é concluída com êxito, uma versão é criada automaticamente e inicia a atualização do aplicativo no cluster.When the build definition 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. Assim que verificar que o build é executado com êxito, configure uma definição de versão que implante seu aplicativo em um cluster.Once you verify that the build executes successfully, define a release definition 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 a definição de buildCreate a build definition
  • Criar uma definição de versãoCreate a release definition
  • Implantar e atualizar automaticamente um aplicativoAutomatically deploy and upgrade an application

Na próxima parte do tutorial, saiba como configurar o monitoramento do seu contêiner.In the next part of the tutorial, learn how to set up monitoring for your container.