Recriar um aplicativo local no AzureRebuild an on-premises application in Azure

Este artigo demonstra como a empresa fictícia Contoso recompila um aplicativo do Windows .NET de duas camadas em execução em VMs VMware como parte de uma migração para o Azure.This article demonstrates how the fictional company Contoso rebuilds a two-tier Windows .NET application running on VMware VMs as part of a migration to Azure. A contoso migra a VM de front-end para um aplicativo Web de serviço Azure App.Contoso migrates the front-end VM to an Azure App Service web app. O back-end do aplicativo é criado usando microsserviços implantados em contêineres gerenciados pelo AKS (Serviço de Kubernetes do Azure).The application back end is built using microservices deployed to containers managed by Azure Kubernetes Service (AKS). O site interage com o Azure Functions para fornecer a funcionalidade de fotos de animais de estimação.The site interacts with Azure Functions to provide pet photo functionality.

O aplicativo SmartHotel360 usado neste exemplo é fornecido como código-fonte aberto.The SmartHotel360 application used in this example is provided as open source. Se quiser usá-lo em seus próprios testes, você poderá baixá-lo do GitHub.If you'd like to use it for your own testing purposes, you can download it from GitHub.

Geradores de negóciosBusiness drivers

A equipe de liderança de TI trabalhou em conjunto com parceiros comerciais para entender o que eles desejam obter com essa migração:The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Resolva o crescimento dos negócios.Address business growth. A Contoso está crescendo e deseja fornecer experiências diferenciadas para clientes em sites da contoso.Contoso is growing and wants to provide differentiated experiences for customers on Contoso websites.
  • Ser ágil.Be agile. A Contoso deve ser capaz de reagir mais rápido do que as alterações no Marketplace para habilitar o sucesso em uma economia global.Contoso must be able to react faster than the changes in the marketplace to enable the success in a global economy.
  • Escalonáve.Scale. À medida que os negócios crescem com êxito, a equipe de ti da Contoso deve fornecer sistemas que podem crescer no mesmo ritmo.As the business grows successfully, the Contoso IT team must provide systems that can grow at the same pace.
  • Reduza os custos.Reduce costs. a Contoso quer minimizar os custos de licenciamento.Contoso wants to minimize licensing costs.

Metas de migraçãoMigration goals

A equipe de nuvem da Contoso detectou os requisitos de aplicativo para essa migração.The Contoso cloud team has pinned down application requirements for this migration. Esses requisitos foram usados para determinar o melhor método de migração:These requirements were used to determine the best migration method:

  • O aplicativo no Azure ainda é tão crítico quanto é hoje.The application in Azure is still as critical as it is today. Ele deve ter um bom desempenho e ser dimensionado facilmente.It should perform well and scale easily.
  • O aplicativo não deve usar componentes IaaS.The application shouldn't use IaaS components. Tudo o que deve ser criado para usar PaaS ou serviços sem servidor.Everything should be built to use PaaS or serverless services.
  • As compilações de aplicativo devem ser executadas em serviços de nuvem e os contêineres devem residir em um registro privado de toda a empresa na nuvem.Application builds should run in cloud services, and containers should reside in a private enterprise-wide registry in the cloud.
  • O serviço de API usado para fotos de animais de estimação deve ser preciso e confiável no mundo real, já que as decisões tomadas pelo aplicativo devem ser respeitadas em seus hotéis.The API service used for pet photos should be accurate and reliable in the real world, since decisions made by the application must be honored in their hotels. Qualquer animal de estimação com acesso concedido pode permanecer nos hotéis.Any pet granted access is allowed to stay at the hotels.
  • Para atender aos requisitos de um pipeline DevOps, a Contoso usará um repositório git em Azure Repos para o gerenciamento de código-fonte.To meet requirements for a DevOps pipeline, Contoso will use a Git repository in Azure Repos for source code management. Builds e versões automatizadas serão usadas para criar código e implantar no Serviço de Aplicativo do Azure, no Azure Functions e no AKS.Automated builds and releases will be used to build code and deploy to Azure App Service, Azure Functions, and AKS.
  • Pipelines de CI/CD (integração contínua/desenvolvimento contínuo) diferentes são necessários para os microserviços no back-end e para o site no front-end.Different continuous integration/continuous development (CI/CD) pipelines are needed for microservices on the back end and for the web site on the front end.
  • Os serviços de back-end têm uma versão diferente do ciclo do aplicativo Web de front-end.The back-end services have a different release cycle from the front-end web app. Para atender a esse requisito, eles implantarão dois pipelines diferentes.To meet this requirement, they will deploy two different pipelines.
  • A Contoso precisa de aprovação da gerência para todas as implantações do site de front-end e o pipeline de CI/CD precisa fornecer isso.Contoso needs management approval for all front-end website deployment, and the CI/CD pipeline must provide this.

Design da soluçãoSolution design

Depois de fixar as metas e os requisitos, a Contoso projeta e analisa uma solução de implantação e identifica o processo de migração, incluindo os serviços do Azure que serão usados para migração.After pinning down goals and requirements, Contoso designs and review a deployment solution, and identifies the migration process, including the Azure services that will be used for the migration.

Aplicativo atualCurrent application

  • O aplicativo local SmartHotel360 é colocado em camadas em duas VMs ( WEBVM e SQLVM ).The SmartHotel360 on-premises application is tiered across two VMs (WEBVM and SQLVM).
  • As VMs estão localizadas no host VMware ESXi contosohost1.contoso.com (versão 6.5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • O ambiente VMware é gerenciado pelo vCenter Server 6.5 (vcenter.contoso.com), em execução em uma VM.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • A Contoso tem um datacenter local (contoso-datacenter), com um controlador de domínio local (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • As VMs locais no datacenter da Contoso serão descomissionadas após a migração.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Arquitetura propostaProposed architecture

  • O front-end do aplicativo é implantado como um aplicativo Web do serviço Azure App na região primária do Azure.The front end of the application is deployed as an Azure App Service web app in the primary Azure region.

  • Uma função do Azure fornece os uploads de fotos de animais de estimação e o site interage com essa funcionalidade.An Azure function provides uploads of pet photos, and the site interacts with this functionality.

  • A função de foto do animal de estimação usa a API da Pesquisa Visual Computacional de serviços cognitivas do Azure junto com Azure Cosmos DB.The pet photo function uses the Computer Vision API of Azure Cognitive Services along with Azure Cosmos DB.

  • O back-end do site é criado usando microsserviços.The back end of the site is built using microservices. Eles serão implantados em contêineres gerenciados no AKS.These will be deployed to containers managed in AKS.

  • Os contêineres serão criados usando o Azure DevOps e enviados por push para o registro de contêiner do Azure.Containers will be built using Azure DevOps, and pushed to Azure Container Registry.

  • Por enquanto, a Contoso implantará manualmente o aplicativo Web e o código da função usando o Visual Studio.For now, Contoso will manually deploy the web app and function code using Visual Studio.

  • Os microsserviços serão implantados usando um script do PowerShell que chama as ferramentas de linha de comando do Kubernetes.Microservices will be deployed using a PowerShell script that calls Kubernetes command-line tools.

    Arquitetura do cenário Figura 1: arquitetura do cenário.Scenario architecture Figure 1: Scenario architecture.

Análise de soluçãoSolution review

A Contoso avalia o design proposto reunindo uma lista de prós e contras.Contoso evaluates the proposed design by putting together a pros and cons list.

ConsideraçãoConsideration DetalhesDetails
PrósPros Usar o PaaS e soluções sem servidor para a implantação de ponta a ponta reduz significativamente o tempo de gerenciamento que a Contoso deve fornecer.Using PaaS and serverless solutions for the end-to-end deployment significantly reduces management time that Contoso must provide.

A mudança para uma arquitetura baseada em microserviços permite que a contoso estenda facilmente a solução ao longo do tempo.Moving to a microservices-based architecture allows Contoso to easily extend the solution over time.

A nova funcionalidade pode ser colocada online sem interromper qualquer uma das bases de código de soluções existentes.New functionality can be brought online without disrupting any of the existing solutions code bases.

O aplicativo Web será configurado com várias instâncias sem nenhum ponto único de falha.The web app will be configured with multiple instances with no single point of failure.

O dimensionamento automático será habilitado para que o aplicativo possa lidar com volumes de tráfego diferentes.Autoscaling will be enabled so that the application can handle differing traffic volumes.

Com a mudança para os serviços de PaaS, a Contoso pode desativar soluções desatualizadas em execução no sistema operacional Windows Server 2008 R2.With the move to PaaS services, Contoso can retire out-of-date solutions running on Windows Server 2008 R2 operating system.

Azure Cosmos DB tem tolerância interna a falhas, o que não requer nenhuma configuração pela contoso.Azure Cosmos DB has built-in fault tolerance, which requires no configuration by Contoso. Isso significa que a camada de dados não é mais um ponto único de failover.This means that the data tier is no longer a single point of failover.
ContrasCons Contêineres são mais complexos do que outras opções de migração.Containers are more complex than other migration options. A curva de aprendizado pode ser um problema para a Contoso.The learning curve could be an issue for Contoso. Eles introduzem um novo nível de complexidade que fornece valor, apesar da curva.They introduce a new level of complexity that provides value in spite of the curve.

A equipe de operações da Contoso precisa aumentar para entender e oferecer suporte ao Azure, contêineres e microservices para o aplicativo.The operations team at Contoso needs to ramp up to understand and support Azure, containers, and microservices for the application.

A Contoso não implementou totalmente o DevOps para toda a solução.Contoso hasn't fully implemented DevOps for the entire solution. A Contoso precisa pensar nisso para a implantação de serviços para o AKS, Azure Functions e Serviço de Aplicativo do Azure.Contoso needs to consider that for the deployment of services to AKS, Azure Functions, and Azure App Service.

Processo de migraçãoMigration process

  1. A contoso provisiona o registro de contêiner do Azure, o AKS e o Azure Cosmos DB.Contoso provisions Azure Container Registry, AKS, and Azure Cosmos DB.

  2. A contoso provisiona a infraestrutura para a implantação, incluindo Azure App aplicativo Web do serviço, a conta de armazenamento, a função e a API.Contoso provisions the infrastructure for the deployment, including Azure App Service web app, storage account, function, and API.

  3. Depois que a infraestrutura estiver em vigor, ela criará suas imagens de contêiner de microserviços usando o Azure DevOps, que as envia para o registro de contêiner.After the infrastructure is in place, they'll build their microservices container images using Azure DevOps, which pushes them to the container registry.

  4. A Contoso implantará esses microsserviços no AKS usando um script do PowerShell.Contoso will deploy these microservices to AKS using a PowerShell script.

  5. Por fim, eles implantarão o aplicativo Web e a função.Finally, they'll deploy the function and web app.

    Processo de migração Figura 2: o processo de migração.Migration process Figure 2: The migration process.

Serviços do AzureAzure services

ServiçoService DescriçãoDescription CustoCost
AKSAKS Simplifica o gerenciamento, a implantação e as operações do Kubernetes.Simplifies Kubernetes management, deployment, and operations. Fornece um serviço de orquestração de contêiner do Kubernetes totalmente gerenciado.Provides a fully managed Kubernetes container orchestration service. O AKS é um serviço gratuito.AKS is a free service. Pague somente pelas VMs e pelos recursos de armazenamento e rede associados consumidos.Pay for only the VMs and the associated storage and networking resources consumed. Saiba mais.Learn more.
Azure FunctionsAzure Functions Acelera o desenvolvimento com uma experiência de computação sem servidor orientada por evento.Accelerates development with an event-driven, serverless compute experience. Dimensione sob demanda.Scale on demand. Pague apenas pelos recursos consumidos.Pay only for consumed resources. O plano é cobrado com base no consumo de recursos e execuções por segundo.Plan is billed based on per-second resource consumption and executions. Saiba mais.Learn more.
Registro de Contêiner do AzureAzure Container Registry Armazena imagens para todos os tipos de implantações de contêiner.Stores images for all types of container deployments. Custo com base em recursos, armazenamento e duração de uso.Cost based on features, storage, and usage duration. Saiba mais.Learn more.
Serviço de Aplicativo do AzureAzure App Service Crie, implante e dimensione rapidamente aplicativos de API, móveis e Web de nível corporativo em execução em qualquer plataforma.Quickly build, deploy, and scale enterprise-grade web, mobile, and API apps running on any platform. Os planos do serviço de aplicativo são cobrados por segundo.App Service plans are billed on a per-second basis. Saiba mais.Learn more.

Pré-requisitosPrerequisites

Veja o que a Contoso precisa para esse cenário:Here's what Contoso needs for this scenario:

RequisitosRequirements DetalhesDetails
Assinatura do AzureAzure subscription
  • A Contoso já criou assinaturas em um artigo anterior.Contoso created subscriptions during an earlier article. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.If you don't have an Azure subscription, create a free account.
  • Se você criar uma conta gratuita, você é o administrador da sua assinatura e pode executar todas as ações.If you create a free account, you're the admin of your subscription and can perform all actions.
  • Se você usar uma assinatura existente e não for o administrador, precisará trabalhar com o administrador para atribuir permissões de proprietário ou colaborador a você.If you use an existing subscription and you're not the admin, then you need to work with the admin to assign Owner or Contributor permissions to you.
  • Infraestrutura do AzureAzure infrastructure
  • Saiba como a contoso configurou uma infraestrutura do Azure.Learn how Contoso set up an Azure infrastructure.
  • Pré-requisitos de desenvolvedorDeveloper prerequisites A Contoso precisa das ferramentas a seguir em uma estação de trabalho de desenvolvedor:Contoso needs the following tools on a developer workstation:
  • Visual Studio Community 2017: versão 15,5Visual Studio Community 2017: Version 15.5
  • Habilite a carga de trabalho do .NET.Enable .NET workload.
  • GitGit
  • PowerShell do AzureAzure PowerShell
  • CLI do AzureAzure CLI
  • O Docker Community Edition (Windows 10) ou o Docker Enterprise Edition (Windows Server) definido para usar contêineres do Windows.Docker Community Edition (Windows 10) or Docker Enterprise Edition (Windows Server) set to use Windows containers.
  • Etapas do cenárioScenario steps

    Veja como a Contoso executará a migração:Here's how Contoso will run the migration:

    • Etapa 1: provisionar o AKS e o registro de contêiner do Azure.Step 1: Provision AKS and Azure Container Registry. A contoso provisiona o cluster AKS gerenciado e o registro de contêiner usando o PowerShell.Contoso provisions the managed AKS cluster and the container registry using PowerShell.
    • Etapa 2: criar contêineres do Docker.Step 2: Build Docker containers. Eles configuram CI (integração contínua) para contêineres do Docker usando o Azure DevOps e os enviam para o registro de contêiner.They set up continuous integration (CI) for Docker containers using Azure DevOps and push them to the container registry.
    • Etapa 3: implantar microserviços de back-end.Step 3: Deploy back-end microservices. Eles implantam o restante da infraestrutura que será utilizada pelos microsserviços de back-end.They deploy the rest of the infrastructure that will be used by back-end microservices.
    • Etapa 4: implantar a infraestrutura de front-end.Step 4: Deploy front-end infrastructure. Eles implantam a infraestrutura de front-end, incluindo o armazenamento de BLOBs para telefones de animais de estimação, o Azure Cosmos DB e o API da Pesquisa Visual Computacional.They deploy the front-end infrastructure, including Blob storage for the pet phones, the Azure Cosmos DB, and Computer Vision API.
    • Etapa 5: migre o back-end.Step 5: Migrate the back end. Eles implantam os microserviços e são executados em AKS para migrar o back-end.They deploy microservices and run on AKS to migrate the back end.
    • Etapa 6: publicar o front-end.Step 6: Publish the front end. Eles publicam o aplicativo SmartHotel360 para Azure App serviço junto com o aplicativo de funções a ser chamado pelo serviço Pet.They publish the SmartHotel360 application to Azure App Service along with the function app to be called by the pet service.

    Etapa 1: Provisionar recursos de back-endStep 1: Provision back-end resources

    Os administradores da Contoso executam um script de implantação para criar o cluster kubernetes gerenciado usando o AKS e o registro de contêiner do Azure.Contoso admins run a deployment script to create the managed Kubernetes cluster using AKS and Azure Container Registry. As instruções para esta seção usam o repositório GitHub SmartHotel360-backend .The instructions for this section use the SmartHotel360-Backend GitHub repository. O repositório contém todo o software para esta parte da implantação.The repository contains all of the software for this part of the deployment.

    Garantir pré-requisitosEnsure prerequisites

    Antes de começar, os administradores da Contoso garantem que todos os softwares de pré-requisito instalados no computador de desenvolvimento estejam usando para a implantação.Before they start, Contoso admins ensure that all prerequisite software in installed on the dev machine they're using for the deployment. Eles clonam o repositório local no computador de desenvolvimento usando o Git: They clone the repository local to the dev machine using Git:

    git clone https://github.com/Microsoft/SmartHotel360-Backend.git

    Provisionar AKS e registro de contêiner do AzureProvision AKS and Azure Container Registry

    Os administradores da Contoso provisionam da seguinte maneira:The Contoso admins provision as follows:

    1. Eles abrem a pasta usando Visual Studio Code e movem para o /deploy/k8s diretório, que contém o script gen-aks-env.ps1 .They open the folder using Visual Studio Code and move to the /deploy/k8s directory, which contains the script gen-aks-env.ps1.

    2. Eles executam o script para criar o cluster kubernetes gerenciado, usando o AKS e o registro de contêiner do Azure.They run the script to create the managed Kubernetes cluster, using AKS and Azure Container Registry.

      AKS Figura 3: criando o cluster kubernetes gerenciado.AKS Figure 3: Creating the managed Kubernetes cluster.

    3. Com o arquivo aberto, eles atualizam o parâmetro $location para eastus2 e salvam o arquivo.With the file open, they update the $location parameter to eastus2, and save the file.

      AKS Figura 4: salvando o arquivo.AKS Figure 4: Saving the file.

    4. Eles selecionam Exibir > terminal para abrir o terminal integrado no Visual Studio Code.They select View > Terminal to open the integrated terminal in Visual Studio Code.

      AKS Figura 5: o terminal no Visual Studio Code.AKS Figure 5: The terminal in Visual Studio Code.

    5. No terminal integrado do PowerShell, eles entram no Azure usando o Connect-AzureRmAccount comando.In the PowerShell integrated terminal, they sign into Azure using the Connect-AzureRmAccount command. Para obter mais informações, consulte Introdução ao PowerShell.For more information, see Get started with PowerShell.

      AKS Figura 6: o terminal integrado do PowerShell.AKS Figure 6: The PowerShell integrated terminal.

    6. Eles autenticam CLI do Azure executando o az login comando e seguindo as instruções para autenticar usando seu navegador da Web.They authenticate Azure CLI by running the az login command and following the instructions to authenticate using their web browser. Saiba mais sobre o logon com a CLI do Azure.Learn more about logging in with Azure CLI.

      AKS Figura 7: autenticando CLI do Azure.AKS Figure 7: Authenticating Azure CLI.

    7. Eles executam o comando a seguir ao passar o nome do grupo de recursos ContosoRG , o nome do cluster AKs smarthotel-aks-eus2 e o novo nome do registro.They run the following command while passing the resource group name of ContosoRG, the name of the AKS cluster smarthotel-aks-eus2, and the new registry name.

      .\gen-aks-env.ps1 -resourceGroupName ContosoRg -orchestratorName smarthotelakseus2 -registryName smarthotelacreus2

      AKS Figura 8: executando o comando.AKS Figure 8: Running the command.

    8. O Azure cria outro grupo de recursos que contém os recursos para o cluster AKS.Azure creates another resource group that contains the resources for the AKS cluster.

      Figura 9: Azure criando um grupo de recursos.AKS Figure 9: Azure creating a resource group.

    9. Depois que a implantação for concluída, ela instalará a kubectl ferramenta de linha de comando.After the deployment is finished, they install the kubectl command-line tool. A ferramenta já está instalada no Azure Cloud Shell.The tool is already installed on the Azure Cloud Shell.

      az aks install-cli

    10. Eles verificam a conexão com o cluster executando o kubectl get nodes comando.They verify the connection to the cluster by running the kubectl get nodes command. O nó tem o mesmo nome da VM no grupo de recursos criado automaticamente.The node is the same name as the VM in the automatically created resource group.

      AKS Figura 10: verificando a conexão com o cluster.AKS Figure 10: Verifying the connection to the cluster.

    11. Eles executam o seguinte comando para iniciar o painel do kubernetes:They run the following command to start the Kubernetes dashboard:

      az aks browse --resource-group ContosoRG --name smarthotelakseus2

    12. Uma guia do navegador é aberta no painel.A browser tab opens to the dashboard. Essa é uma conexão por túnel usando a CLI do Azure.This is a tunneled connection using the Azure CLI.

      AKS Figura 11: uma conexão encapsulada.AKS Figure 11: A tunneled connection.

    Etapa 2: Configurar o pipeline de back-endStep 2: Configure the back-end pipeline

    Criar um projeto e build do Azure DevOpsCreate an Azure DevOps project and build

    A contoso cria um projeto DevOps do Azure e configura um Build de CI para criar o contêiner e, em seguida, envia-o por push para o registro de contêiner.Contoso creates an Azure DevOps project, and configures a CI build to create the container and then pushes it to the container registry. As instruções nesta seção usam o repositório SmartHotel360-backend .The instructions in this section use the SmartHotel360-Backend repository.

    1. No visualstudio.com , eles criam uma nova organização ( contosodevops360.visualstudio.com ) e as configuram para usar o git.From visualstudio.com, they create a new organization (contosodevops360.visualstudio.com) and configure it to use Git.

    2. Eles criam um novo projeto ( SmartHotelBackend ), selecionando git para controle de versão e Agile para o fluxo de trabalho.They create a new project (SmartHotelBackend), selecting Git for version control and Agile for the workflow.

      Azure DevOps Figura 12: Criando um novo projeto.Azure DevOps Figure 12: Creating a new project.

    3. Eles importam o repositório do GitHub.They import the GitHub repo.

      Azure DevOps Figura 13: importando o repositório github.Azure DevOps Figure 13: Importing the GitHub repo.

    4. Em pipelines, eles selecionam Compilar e criam um novo pipeline usando Azure Repos git como uma fonte do repositório.In Pipelines, they select Build and create a new pipeline using Azure Repos Git as a source from the repository.

      Azure DevOps Figura 14: Criando um novo pipeline.Azure DevOps Figure 14: Creating a new pipeline.

    5. Eles escolhem iniciar com um trabalho vazio.They select to start with an empty job.

      DevOps do Azure Figura 15: Iniciando com um trabalho vazio.Azure DevOps Figure 15: Starting with an empty job.

    6. Eles selecionam Versão Prévia do Linux Hospedado para o pipeline de build.They select Hosted Linux Preview for the build pipeline.

      DevOps do Azure Figura 16: Configurando o pipeline de compilação.Azure DevOps Figure 16: Setting up the build pipeline.

    7. Na Fase 1, adicionam uma tarefa Docker Compose.In Phase 1, they add a Docker Compose task. Essa tarefa cria a Docker Compose.This task builds the Docker Compose.

      Azure DevOps Figura 17: Compilando o Docker Compose.Azure DevOps Figure 17: Building the Docker Compose.

    8. Eles repetem e adicionam outra tarefa Docker Compose.They repeat and add another Docker Compose task. Esse um envia os contêineres para o registro de contêiner.This one pushes the containers to the container registry.

      Azure DevOps Figura 18: adicionando outra tarefa de Docker Compose.Azure DevOps Figure 18: Adding another Docker Compose task.

    9. Eles selecionam a primeira tarefa para criar e configurar a compilação com a assinatura, autorização e o registro de contêiner do Azure.They select the first task to build and configure the build with the Azure subscription, authorization, and the container registry.

      Azure DevOps Figura 19: Criando e configurando a compilação.Azure DevOps Figure 19: Building and configuring the build.

    10. Eles especificam o caminho do docker-compose.yaml arquivo na src pasta do repositório.They specify the path of the docker-compose.yaml file in the src folder of the repo. Eles escolhem criar imagens de serviço e incluem a marca mais recente.They select to build service images and include the latest tag. Quando a ação muda para Criar imagens de serviço, o nome da tarefa do Azure DevOps muda para Criar serviços automaticamente.When the action changes to Build service images, the name of the Azure DevOps task changes to Build services automatically.

      Azure DevOps Figura 20: as especificidades da tarefa.Azure DevOps Figure 20: The specifics of the task.

    11. Agora, eles configuram a segunda tarefa do Docker (para enviar por push).Now, they configure the second Docker task (to push). Eles selecionam a assinatura e o registro de contêiner ( smarthotelacreus2 ).They select the subscription and the container registry (smarthotelacreus2).

      Azure DevOps Figura 21: Configurando a segunda tarefa do Docker.Azure DevOps Figure 21: Configuring the second Docker task.

    12. Eles inserem o arquivo no docker-compose.yaml arquivo e selecionam imagens de serviço de push, incluindo a marca mais recente.They enter the file to the docker-compose.yaml file and select Push service images, including the latest tag. Quando a ação muda para Enviar de imagens de serviço por push, o nome da tarefa do Azure DevOps muda para Enviar serviços por push automaticamente.When the action changes to Push service images, the name of the Azure DevOps task changes to Push services automatically.

      Azure DevOps Figura 22: alterando o nome da tarefa DevOps do Azure.Azure DevOps Figure 22: Changing the Azure DevOps task name.

    13. Com as tarefas do Azure DevOps configuradas, a contoso salva o pipeline de compilação e inicia o processo de compilação.With the Azure DevOps tasks configured, Contoso saves the build pipeline and starts the build process.

      Azure DevOps Figura 23: Iniciando o processo de compilação.Azure DevOps Figure 23: Starting the build process.

    14. Eles escolhem o trabalho de build para verificar o progresso.They select the build job to check progress.

      Azure DevOps Figura 24: verificando o progresso.Azure DevOps Figure 24: Checking the progress.

    15. Após a conclusão da compilação, o registro de contêiner mostra os novos repositórios, que são populados com os contêineres usados pelos microservices.After the build finishes, the container registry shows the new repos, which are populated with the containers used by the microservices.

      Azure DevOps Figura 25: exibindo novo repositórios após a conclusão da compilação.Azure DevOps Figure 25: Viewing new repos after the build finishes.

    Implantar a infraestrutura de back-endDeploy the back-end infrastructure

    Com o cluster do AKS criado e o build das imagens do Docker, a Contoso agora administra o restante da infraestrutura que será utilizada pelos microsserviços de back-end.With the AKS cluster created and the Docker images built, Contoso admins now deploy the rest of the infrastructure that will be used by back-end microservices. As instruções na seção usam o repositório SmartHotel360-backend .Instructions in the section use the SmartHotel360-Backend repo. Na /deploy/k8s/arm pasta, há um único script para criar todos os itens.In the /deploy/k8s/arm folder, there's a single script to create all items.

    Eles implantam da seguinte maneira:They deploy as follows:

    1. Eles abrem um prompt de comando do desenvolvedor e usam o comando az login para a assinatura do Azure.They open a developer command prompt, and use the command az login for the Azure subscription.

    2. Eles usam o deploy.cmd arquivo para implantar os recursos do Azure no ContosoRG grupo de recursos e na East US 2 região digitando o seguinte comando:They use the deploy.cmd file to deploy the Azure resources in the ContosoRG resource group and East US 2 region by typing the following command:

      .\deploy.cmd azuredeploy ContosoRG -c eastus2

      Implante o back-end Figura 26: Implantando o back-end.Deploy the back end Figure 26: Deploying the back end.

    3. Na portal do Azure, eles capturam a cadeia de conexão para cada banco de dados a ser usado posteriormente.In the Azure portal, they capture the connection string for each database to be used later.

      Implante o back-end Figura 27: capturando a cadeia de conexão para cada banco de dados.Deploy back-end Figure 27: Capturing the connection string for each database.

    Criar o pipeline de lançamento de back-endCreate the back-end release pipeline

    Agora, os administradores da Contoso fazem o seguinte:Now, Contoso admins do the following:

    • Implantam o controlador de entrada NGINX para permitir o tráfego de entrada para os serviços.Deploy the NGINX ingress controller to allow inbound traffic to the services.
    • Implantam os microsserviços no cluster do AKS.Deploy the microservices to the AKS cluster.
    • Como uma primeira etapa, eles atualizam as cadeias de conexão dos microsserviços usando o Azure DevOps.As a first step they update the connection strings to the microservices using Azure DevOps. Em seguida, eles configuram um novo pipeline do Azure DevOps Release para implantar os microserviços.They then configure a new Azure DevOps release pipeline to deploy the microservices.
    • As instruções nesta seção usam o repositório SmartHotel360-backend .The instructions in this section use the SmartHotel360-Backend repo.
    • Algumas das definições de configuração (por exemplo Active Directory B2C) não são abordadas neste artigo.Some of the configuration settings (for example Active Directory B2C) aren't covered in this article. Para obter mais informações sobre essas configurações, examine o repositório acima.For more information about these settings, review the repo above.

    Eles criam o pipeline:They create the pipeline:

    1. Usando o Visual Studio, eles atualizam o /deploy/k8s/config_local.yml arquivo com as informações de conexão de banco de dados que eles observaram anteriormente.Using Visual Studio they update the /deploy/k8s/config_local.yml file with the database connection information they noted earlier.

      Conexões de banco de dados Figura 28: conexões de banco de dados.Database connections Figure 28: Database connections.

    2. Eles abrem o Azure DevOps e, no projeto SmartHotel360, eles selecionam + novo pipeline em versões.They open Azure DevOps and, in the SmartHotel360 project, they select + New Pipeline in Releases.

      Novo pipeline _Figure 29: o novo pipeline.New pipeline _Figure 29: The new pipeline.

    3. Eles escolhem Trabalho Vazio para iniciar o pipeline sem um modelo.They select Empty Job to start the pipeline without a template.

    4. Eles fornecem os nomes do estágio e do pipeline.They provide the stage and pipeline names.

      Nome do estágio figura 30: o nome do estágio.Stage name Figure 30: The stage name.

      Nome do pipeline figura 31: o nome do pipeline.Pipeline name Figure 31: The pipeline name.

    5. Eles adicionam um artefato.They add an artifact.

      Adicione o artefato Figura 32: adicionando um artefato.Add artifact Figure 32: Adding an artifact.

    6. Eles selecionam git como o tipo de origem e especificam o projeto, a origem e a ramificação mestre para o aplicativo SmartHotel360.They select Git as the source type and specify the project, source, and master branch for the SmartHotel360 application.

      Configurações de artefato figura 33: as configurações de artefato.Artifact settings Figure 33: The artifact settings.

    7. Eles selecionam o link de tarefa.They select the task link.

      Link da tarefa Figura 34: o link da tarefa.Task link Figure 34: The task link.

    8. Eles adicionam uma nova tarefa do Azure PowerShell para poderem executar um script do PowerShell em um ambiente do Azure.They add a new Azure PowerShell task so that they can run a PowerShell script in an Azure environment.

      PowerShell no Azure Figura 35: adicionando uma nova tarefa do PowerShell.PowerShell in Azure Figure 35: Adding a new PowerShell task.

    9. Eles selecionam a assinatura do Azure para a tarefa e selecionam o deploy.ps1 script do repositório git.They select the Azure subscription for the task and select the deploy.ps1 script from the Git repo.

      Execute o script Figura 36: executando o script.Run script Figure 36: Running the script.

    10. Eles adicionam argumentos ao script.They add arguments to the script. O script excluirá todo o conteúdo do cluster (exceto a entrada e o controlador de entrada) e implantará os microsserviços.The script will delete all cluster content (except ingress and ingress controller), and deploy the microservices.

      Argumentos de Script figura 37: adicionando argumentos ao script.Script arguments Figure 37: Adding arguments to the script.

    11. Eles definem a versão preferencial do Azure PowerShell como a versão mais recente e salvam o pipeline.They set the preferred Azure PowerShell version to the latest, and save the pipeline.

    12. Eles são movidos de volta para a página de lançamento e criam uma nova versão manualmente.They move back to the Release page and manually create a new release.

      Nova versão Figura 38: criando manualmente uma nova versão.New release Figure 38: Manually creating a new release.

    13. Eles escolhem a versão depois de criá-la e, em Ações, escolhem Implantar.They select the release after creating it, and in Actions, they select Deploy.

      Implantar a versão figura 39: Implantando uma versão.Deploy release Figure 39: Deploying a release.

    14. Quando a implantação for concluída, ela executará o seguinte comando para verificar o status dos serviços, usando o Azure Cloud Shell: kubectl get services .When the deployment is complete, they run the following command to check the status of services, using the Azure Cloud Shell: kubectl get services.

    Etapa 3: Provisionar serviços de front-endStep 3: Provision front-end services

    Os administradores da Contoso precisam implantar a infraestrutura que será usada pelos aplicativos de front-end.Contoso admins need to deploy the infrastructure that will be used by the front-end applications. Eles criam:They create:

    • Um contêiner de armazenamento de BLOBs para armazenar as imagens do animal de estimaçãoA Blob storage container to store the pet images
    • Um banco de dados Azure Cosmos DB para armazenar documentos que contêm informações do animal de estimaçãoA Azure Cosmos DB database to store documents containing pet information
    • O API da Pesquisa Visual Computacional para o site.The Computer Vision API for the website.

    As instruções para esta seção usam o repositório SmartHotel360-site .Instructions for this section use the SmartHotel360-website repo.

    Criar contêineres de armazenamento de blobsCreate Blob storage containers

    1. No portal do Azure, eles abrem a conta de armazenamento que foi criada e, em seguida, selecionam BLOBs.In the Azure portal, they open the storage account that was created, then select Blobs.

    2. Eles criam um novo contêiner chamado Pets com o nível de acesso público definido para o contêiner.They create a new container named Pets with the public-access level set for the container. Os usuários carregarão as fotos de seu animal de estimação para esse contêiner.Users will upload their pet photos to this container.

      Blob de armazenamento figura 40: Criando um novo contêiner.Storage blob Figure 40: Creating a new container.

    3. Eles criam um segundo novo contêiner chamado settings .They create a second new container named settings. Um arquivo com todas as configurações de aplicativo front-end será colocado nesse contêiner.A file with all the front-end app settings will be placed in this container.

      Blob de armazenamento Figura 41: Criando um segundo contêiner.Storage blob Figure 41: Creating a second container.

    4. Eles capturam os detalhes de acesso da conta de armazenamento em um arquivo de texto para referência futura.They capture the access details for the storage account in a text file for future reference.

      Blob de armazenamento Figura 42: um arquivo de texto capturando detalhes de acesso.Storage blob Figure 42: A text file capturing access details.

    Provisionar um banco de dados Azure Cosmos DBProvision an Azure Cosmos DB database

    Os administradores da Contoso provisionam um banco de dados Azure Cosmos DB a ser usado para informações do Pet.Contoso admins provision an Azure Cosmos DB database to be used for pet information.

    1. Eles criam um banco de dados Azure Cosmos DB por meio do Azure Marketplace.They create an Azure Cosmos DB database via the Azure Marketplace.

      Azure Cosmos DB Figura 43: Criando um banco de dados Azure Cosmos DB.Azure Cosmos DB Figure 43: Creating an Azure Cosmos DB database.

    2. Eles especificam um nome ( contososmarthotel ), selecionam a API do SQL e o colocam no grupo de recursos de produção ContosoRG na região principal ( East US 2 ).They specify a name (contososmarthotel), select the SQL API, and place it in the production resource group ContosoRG in the main region (East US 2).

      Azure Cosmos DB Figura 44: nomeando um banco de dados Azure Cosmos DB.Azure Cosmos DB Figure 44: Naming an Azure Cosmos DB database.

    3. Eles adicionam uma nova coleção ao banco de dados, com a capacidade e a taxa de transferência padrão.They add a new collection to the database, with default capacity and throughput.

      Azure Cosmos DB Figura 45: adicionando uma nova coleção ao banco de dados.Azure Cosmos DB Figure 45: Adding a new collection to the database.

    4. Eles observam as informações de conexão do banco de dados para referência futura.They note the connection information for the database for future reference.

      Azure Cosmos DB Figura 46: as informações de conexão do banco de dados.Azure Cosmos DB Figure 46: The connection information for the database.

    Provisionar o API da Pesquisa Visual ComputacionalProvision the Computer Vision API

    Os administradores da Contoso provisionam a API da Pesquisa Visual Computacional.Contoso admins provision the Computer Vision API. A API será chamada pela função, para avaliar imagens carregadas pelos usuários.The API will be called by the function, to evaluate pictures uploaded by users.

    1. Eles criam uma instância de Pesquisa Visual Computacional no Azure Marketplace.They create a Computer Vision instance in the Azure Marketplace.

      Pesquisa Visual Computacional Figura 47: uma nova instância no Azure Marketplace.Computer Vision Figure 47: A new instance in the Azure Marketplace.

    2. Eles provisionam a API ( smarthotelpets ) no grupo de recursos de produção ContosoRG , na região principal ( East US 2 ).They provision the API (smarthotelpets) in the production resource group ContosoRG, in the main region (East US 2).

      Pesquisa Visual Computacional Figura 48: provisionando uma API em um grupo de recursos de produção.Computer Vision Figure 48: Provisioning an API in a production resource group.

    3. Eles salvam as configurações de conexão para a API em um arquivo de texto para referência posterior.They save the connection settings for the API to a text file for later reference.

      Pesquisa Visual Computacional Figura 49: salvando as configurações de connection's de uma API.Computer Vision Figure 49: Saving an API's connection's settings.

    Provisionar o aplicativo Web do AzureProvision the Azure web app

    Os administradores da Contoso provisionam o aplicativo Web usando o portal do Azure.Contoso admins provision the web app using the Azure portal.

    1. Eles selecionam Aplicativo Web no portal.They select Web App in the portal.

      Aplicativo Web Figura 50: selecionando o aplicativo Web.Web app Figure 50: Selecting the web app.

    2. Eles fornecem um nome de aplicativo Web ( smarthotelcontoso ), executam-no Windows e o colocam no grupo de recursos de produção ContosoRG .They provide a web app name (smarthotelcontoso), run it on Windows, and place it in the production resource group ContosoRG. Eles criam uma nova instância de Application Insights para monitoramento de aplicativos.They create a new Application Insights instance for application monitoring.

      Nome do aplicativo Web Figura 51: o nome do aplicativo Web.Web app name Figure 51: The web app name.

    3. Depois de terminar, eles navegam até o endereço do aplicativo para verificar se ele foi criado com êxito.After they're done, they browse to the address of the application to check it's been created successfully.

    4. No portal do Azure, eles criam um slot de preparo para o código.In the Azure portal, they create a staging slot for the code. O pipeline implantará neste slot.The pipeline will deploy to this slot. Isso garante que o código não seja colocado em produção até que os administradores executem um lançamento.This ensures that code isn't put into production until admins perform a release.

      Slot de preparo do aplicativo Web Figura 52: um slot de preparo do aplicativo Web.Web app staging slot Figure 52: A web app staging slot.

    Provisionar o aplicativo de funçõesProvision the function app

    No portal do Azure, os administradores da Contoso provisionam o aplicativo de funções.In the Azure portal, Contoso admins provision the function app.

    1. Eles selecionam Aplicativo de Funções.They select Function App.

      Crie um aplicativo de funções Figura 53: selecionando o aplicativo de funções.Create a function app Figure 53: Selecting the function app.

    2. Eles fornecem um nome para o aplicativo de funções ( smarthotelpetchecker ).They provide a name for the function app (smarthotelpetchecker). Eles colocam o aplicativo de funções no grupo de recursos de produção ( ContosoRG ).They place the function app in the production resource group (ContosoRG). Eles definem o local de hospedagem para o plano de consumoe colocam o aplicativo de funções na East US 2 região.They set the hosting place to Consumption Plan, and place the function app in the East US 2 region. Uma nova conta de armazenamento é criada junto com uma instância de Application Insights para monitoramento.A new storage account is created along with an Application Insights instance for monitoring.

      Configurações do aplicativo de funções Figura 54: configurações do aplicativo de funções.Function app settings Figure 54: Function app settings.

    3. Depois que o aplicativo de funções for implantado, ele navegará até seu endereço para verificar se ele foi criado com êxito.After the function app is deployed, they browse to its address to verify it's been created successfully.

    Etapa 4: Configurar o pipeline de front-endStep 4: Set up the front-end pipeline

    Os administradores da Contoso criam dois projetos diferentes para o site de front-end.Contoso admins create two different projects for the front-end site.

    1. No Azure DevOps, eles criam um projeto SmartHotelFrontend .In Azure DevOps, they create a project SmartHotelFrontend.

      Projeto de front-end Figura 55: um projeto de front-end.Front-end project Figure 55: A front-end project.

    2. Eles importam o repositório Git do front-end do SmartHotel360 para o novo projeto.They import the SmartHotel360 front end Git repository into the new project.

    3. Para o aplicativo de funções, eles criam outro projeto DevOps do Azure ( SmartHotelPetChecker ) e importam o repositório git PetChecker para este projeto.For the function app, they create another Azure DevOps project (SmartHotelPetChecker) and import the PetChecker Git repository into this project.

    Configurar o aplicativo WebConfigure the web app

    Agora os administradores da Contoso configuram o aplicativo Web para usar os recursos da Contoso.Now Contoso admins configure the web app to use Contoso resources.

    1. Eles se conectam ao projeto DevOps do Azure e clonam o repositório localmente para o computador de desenvolvimento.They connect to the Azure DevOps project and clone the repository locally to the development machine.

    2. No Visual Studio, eles abrem a pasta para mostrar todos os arquivos no repositório.In Visual Studio, they open the folder to show all the files in the repo.

      Arquivos de repositório figura 56: exibindo todos os arquivos no repositório.Repo files Figure 56: Viewing all files in the repo.

    3. Eles atualizam as alterações de configuração conforme o necessário.They update the configuration changes as required.

      • Quando o aplicativo Web é iniciado, ele procura a SettingsUrl configuração do aplicativo.When the web app starts up, it looks for the SettingsUrl app setting.
      • Essa variável precisa conter uma URL que aponte para um arquivo de configuração.This variable must contain a URL pointing to a configuration file.
      • Por padrão, a configuração usada é um ponto de extremidade público.By default, the setting used is a public endpoint.
    4. Eles atualizam o /config-sample.json/sample.json arquivo.They update the /config-sample.json/sample.json file.

      • Esse é o arquivo de configuração para a Web ao usar o ponto de extremidade público.This is the configuration file for the web when using the public endpoint.
      • Eles editam urls as pets_config seções e com os valores para os pontos de extremidade da API AKs, as contas de armazenamento e o banco de dados Azure Cosmos DB.They edit the urls and pets_config sections with the values for the AKS API endpoints, storage accounts, and Azure Cosmos DB database.
      • As URLs devem corresponder ao nome DNS do novo aplicativo Web que Contoso criará.The URLs should match the DNS name of the new web app that Contoso will create.
      • Para a contoso, isso é smarthotelcontoso.eastus2.cloudapp.azure.com .For Contoso, this is smarthotelcontoso.eastus2.cloudapp.azure.com.

      Configurações de JSON Figura 57: configurações de JSON.Json settings Figure 57: .json settings.

    5. Depois que o arquivo for atualizado, ele o renomeará smarthotelsettingsurl e o carregará no armazenamento de BLOBs criado anteriormente.After the file is updated, they rename it smarthotelsettingsurl and upload it to the Blob storage they created earlier.

      Renomear e carregar Figura 58: renomear e carregar o arquivo.Rename and upload Figure 58: Renaming and uploading the file.

    6. Eles escolhem o arquivo para obter a URL.They select the file to get the URL. A URL é usada pelo aplicativo ao extrair os arquivos de configuração.The URL is used by the application when it pulls down the configuration files.

      URL do aplicativo figura 59: a URL do aplicativo.App URL Figure 59: The application URL.

    7. No appsettings.Production.json arquivo, eles atualizam o SettingsURL para a URL do novo arquivo.In the appsettings.Production.json file, they update the SettingsURL to the URL of the new file.

      URL de atualização Figura 60: atualizando a URL para o novo arquivo.Update URL Figure 60: Updating the URL to the new file.

    Implantar o site para o Serviço de Aplicativo do AzureDeploy the website to Azure App Service

    Os administradores da Contoso agora podem publicar o site.Contoso admins can now publish the website.

    1. Eles abrem o Azure DevOps e, no SmartHotelFrontend projeto em builds e releases, eles selecionam + novo pipeline.They open Azure DevOps, and in the SmartHotelFrontend project in Builds and Releases, they select + New Pipeline.

    2. Eles selecionam o Git do Azure DevOps como uma fonte.They select Azure DevOps Git as a source.

    3. Eles selecionam o modelo ASP.NET Core.They select the ASP.NET Core template.

    4. Eles revisam o pipeline e verificam se publicar projetos Web e os projetos publicados no zip estão selecionados.They review the pipeline and check that Publish Web Projects and Zip Published Projects are selected.

      Configurações de pipeline Figura 61: configurações de pipeline.Pipeline settings Figure 61: Pipeline settings.

    5. Em gatilhos, eles habilitam a integração contínua e adicionam a ramificação mestre.In Triggers, they enable continuous integration and add the master branch. Isso garante que o pipeline de compilação seja iniciado cada vez que a solução tiver um novo código confirmado no Branch mestre.This ensures that the build pipeline starts each time the solution has new code committed to the master branch.

      Integração contínua Figura 62: integração contínua.Continuous integration Figure 62: Continuous integration.

    6. Eles escolhem Salvar e enfileirar para iniciar um build.They select Save & Queue to start a build.

    7. Depois que o build é concluído, eles configuram um pipeline de lançamento usando a Implantação do Serviço de Aplicativo do Azure.After the build completes, they configure a release pipeline using Azure App Service Deployment.

    8. Eles fornecem um preparode nome de estágio.They provide a stage name Staging.

      Nome do ambiente figura 63: nomeando o ambiente.Environment name Figure 63: Naming the environment.

    9. Eles adicionam um artefato e selecionam o Build que eles configuraram.They add an artifact and select the build that they configured.

      Adicione o artefato Figura 64: adicionando um artefato.Add artifact Figure 64: Adding an artifact.

    10. Eles selecionam o ícone de raio no artefato e habilitam a implantação contínua.They select the lightning bolt icon on the artifact and enable continuous deployment.

      Implantação contínua Figura 65: Habilitando a implantação contínua.Continuous deployment Figure 65: Enabling continuous deployment.

    11. Em Ambiente, eles escolhem 1 trabalho, 1 tarefa em Preparo.In Environment, they select 1 job, 1 task under Staging.

    12. Depois de selecionar a assinatura e o nome do aplicativo Web, eles abrem a tarefa implantar serviço de Azure app .After selecting the subscription and web app name, they open the Deploy Azure App Service task. A implantação está configurada para usar o slot de implantação Preparo.The deployment is configured to use the staging deployment slot. Isso cria automaticamente o código para revisão e aprovação neste slot.This automatically builds code for review and approval in this slot.

      Figura 66 do slot: usando um slot.Slot Figure 66: Using a slot.

    13. No Pipeline, eles adicionam um novo estágio.In the Pipeline, they add a new stage.

      Novo ambiente Figura 67: adicionando um novo estágio.New environment Figure 67: Adding a new stage.

    14. Eles selecionam a implantação do Serviço de Aplicativo do Azure com o espaço e nomeiam o ambiente Prod.They select Azure App Service deployment with slot, and name the environment Prod.

    15. Eles selecionam 1 trabalho, 2 tarefase, em seguida, selecionam a assinatura, o nome do serviço de aplicativo e o slot de preparo .They select 1 job, 2 tasks, then select the subscription, the app service name, and the staging slot.

      Nome do ambiente Figura 68: um nome de ambiente.Environment name Figure 68: An environment name.

    16. Eles removem a ação Implantar o Serviço de Aplicativo do Azure no Slot do pipeline.They remove the Deploy Azure App Service to Slot from the pipeline. Ele foi colocado lá pelas etapas anteriores.It was placed there by the previous steps.

      Remover do pipeline Figura 69: removendo um slot do pipeline.Remove from pipeline Figure 69: Removing a slot from the pipeline.

    17. Eles salvam o pipeline.They save the pipeline. No pipeline, eles escolhem Condições pós-implantação.On the pipeline, they select Post-deployment conditions.

      Pós-implantação Figura 70: condições pós-implantação.Post-deployment Figure 70: Post-deployment conditions.

    18. Eles habilitam aprovações pós-implantação e adicionam um líder de desenvolvimento como o aprovador.They enable Post-deployment approvals and add a dev lead as the approver.

      Aprovação após a implantação Figura 71: adicionando um Aprovador.Post-deployment approval Figure 71: Adding an approver.

    19. No pipeline de Build, eles iniciam manualmente uma compilação.In the build pipeline, they manually kick off a build. Isso dispara o novo pipeline de lançamento, que implanta o site no slot de preparo.This triggers the new release pipeline, which deploys the site to the staging slot. Para a Contoso, a URL do slot é https://smarthotelcontoso-staging.azurewebsites.net/.For Contoso, the URL for the slot is https://smarthotelcontoso-staging.azurewebsites.net/.

    20. Depois que a compilação for concluída e a versão for implantada no slot, o Azure DevOps enviará emails ao líder do desenvolvedor para aprovação.After the build finishes and the release deploys to the slot, Azure DevOps emails the dev lead for approval.

    21. O líder de desenvolvimento seleciona Exibir aprovação e pode aprovar ou rejeitar a solicitação no portal DevOps do Azure.The dev lead selects View approval and can approve or reject the request in the Azure DevOps portal.

      Email de aprovação figura 72: um líder de desenvolvimento que aprova uma solicitação.Approval mail Figure 72: A dev lead approving a request.

    22. O líder faz um comentário e aprova.The lead makes a comment and approves. Isso começa a trocar os slots de preparo e de produção e move a compilação para o desenvolvimento.This starts swapping the staging and prod slots and moves the build into production.

      Aprove e troque a figura 73: movendo a compilação para produção.Approve and swap Figure 73: Moving the build into production.

    23. O pipeline conclui a troca.The pipeline completes the swap.

      Conclua a troca figura 74: concluindo a permuta.Complete swap Figure 74: Completing the swap.

    24. A equipe verifica o slot de prod para saber se o aplicativo Web está em produção em https://smarthotelcontoso.azurewebsites.net/.The team checks the prod slot to verify that the web app is in production at https://smarthotelcontoso.azurewebsites.net/.

    Implantar o aplicativo de funções PetCheckerDeploy the PetChecker function app

    Os administradores da Contoso implantam o aplicativo:Contoso admins deploy the application:

    1. Eles clonam o repositório localmente para o computador de desenvolvimento se conectando ao projeto do Azure DevOps.They clone the repository locally to the development machine by connecting to the Azure DevOps project.

    2. No Visual Studio, eles abrem a pasta para mostrar todos os arquivos no repositório.In Visual Studio, they open the folder to show all the files in the repo.

    3. Eles abrem o src/PetCheckerFunction/local.settings.json arquivo e adicionam as configurações de aplicativo para armazenamento, o banco de dados Azure Cosmos DB e o API da pesquisa Visual computacional.They open the src/PetCheckerFunction/local.settings.json file and add the app settings for storage, the Azure Cosmos DB database, and the Computer Vision API.

      Implante a função Figura 75: implantando a função.Deploy the function Figure 75: Deploying the function.

    4. Eles confirmam o código e os sincronizam de volta para o Azure DevOps, enviando suas alterações.They commit the code and sync it back to Azure DevOps, pushing their changes.

    5. Eles adicionam um novo pipeline de compilação e, em seguida, selecionam Azure DevOps git para a origem.They add a new build pipeline, then select Azure DevOps Git for the source.

    6. Eles selecionam o modelo ASP.NET Core (.NET Framework).They select the ASP.NET Core (.NET Framework) template.

    7. Eles aceitam os padrões do modelo.They accept the defaults for the template.

    8. Em gatilhos, selecione habilitar integração contínuae, em seguida, selecione salvar & fila para iniciar uma compilação.In Triggers, they select Enable continuous integration, then select Save & Queue to start a build.

    9. Depois que a compilação for realizada com sucesso, elas criarão um pipeline de lançamento, adicionando Azure app implantação de serviço com o slot.After the build succeeds, they build a release pipeline, adding Azure App Service deployment with slot.

    10. Eles nomeam o ambiente prode, em seguida, selecionam a assinatura.They name the environment Prod, then select the subscription. Eles definem o tipo de aplicativo como aplicativo de funções e o nome do serviço de aplicativo como smarthotelpetchecker .They set the App type to Function App and the app service name as smarthotelpetchecker.

      Aplicativo de funções Figura 76: o aplicativo de funções.Function app Figure 76: The function app.

    11. Eles adiciona um artefato Build.They add an artifact Build.

      Adicione um artefato Figura 77: adicionar um artefato.Add an artifact Figure 77: Add an artifact.

    12. Eles habilitam o gatilho de implantação contínuae, em seguida, selecionam salvar.They enable Continuous deployment trigger, then select Save.

    13. Eles escolhem Enfileirar novo build para executar o pipeline de CI/CD completo.They select Queue new build to run the full CI/CD pipeline.

    14. Depois que a função é implantada, ela aparece na portal do Azure com o status em execução .After the function is deployed, it appears in the Azure portal with the status Running .

      Atualize o status da função Figura 78: Atualize o status da função.Update the function's status Figure 78: Update the function's status.

    15. Eles navegam até o aplicativo verificador de animais de estimação para verificar se ele está funcionando corretamente, em http://smarthotel360public.azurewebsites.net/pets .They browse to the Pet Checker application to verify that it's working properly, at http://smarthotel360public.azurewebsites.net/pets.

    16. Eles escolhem o avatar para carregar uma imagem.They select the avatar to upload a picture.

      Atribuir uma imagem a um avatar Figura 79: atribuir uma imagem a um avatar.Assign a picture to an avatar Figure 79: Assign a picture to an avatar.

    17. A primeira foto que desejam verificar é de um cachorro pequeno.The first photo they want to check is of a small dog.

      Verifique uma foto Figura 80: verificar uma foto.Check a photo Figure 80: Check a photo.

    18. O aplicativo retorna uma mensagem de aceitação.The application returns a message of acceptance.

      Uma mensagem de aceitação Figura 81: uma mensagem de aceitação.An acceptance message Figure 81: An acceptance message.

    Revisar a implantaçãoReview the deployment

    Com os recursos migrados para o Azure, agora a Contoso precisa operacionalizar e proteger completamente a nova infraestrutura.With the migrated resources in Azure, Contoso now needs to fully operationalize and secure the new infrastructure.

    SegurançaSecurity

    • A Contoso precisa garantir que os novos bancos de dados estejam seguros.Contoso needs to ensure that the new databases are secure. Saiba mais.Learn more.
    • O aplicativo deve ser atualizado para usar SSL com certificados.The application must be updated to use SSL with certificates. A instância de contêiner deve ser reimplantada para responder em 443.The container instance should be redeployed to answer on 443.
    • A Contoso deve considerar o uso de Key Vault para proteger segredos para seus aplicativos Service Fabric.Contoso should consider using Key Vault to protect secrets for their Service Fabric applications. Saiba mais.Learn more.

    Backup e recuperação de desastreBackups and disaster recovery

    Licenciamento e otimização de custoLicensing and cost optimization

    • Depois que todos os recursos estiverem implantados, a Contoso deverá atribuir marcações ao Azure com base no seu planejamento de infraestrutura.After all resources are deployed, Contoso should assign Azure tags based on their infrastructure planning.
    • Todo o licenciamento se baseia no custo dos serviços de PaaS que a Contoso está consumindo.All licensing is built into the cost of the PaaS services that Contoso is consuming. Isso será deduzido do EA.This will be deducted from the EA.
    • A contoso habilitará o Gerenciamento de custos e a cobrança do Azure para ajudar a monitorar e gerenciar os recursos do Azure.Contoso will enable Azure Cost Management and Billing to help monitor and manage the Azure resources.

    ConclusãoConclusion

    Neste artigo, a contoso recria o aplicativo SmartHotel360 no Azure.In this article, Contoso rebuilds the SmartHotel360 application in Azure. A VM de front-end do aplicativo local é recriada para Azure App aplicativos Web do serviço.The on-premises application front-end VM is rebuilt to Azure App Service web apps. O back-end do aplicativo é criado usando os microserviços implantados em contêineres gerenciados pelo AKS.The application back end is built using microservices deployed to containers managed by AKS. Funcionalidade aprimorada da contoso com um aplicativo de foto de animais de estimação.Contoso enhanced functionality with a pet photo application.

    Habilidades sugeridasSuggested skills

    O Microsoft Learn é uma nova abordagem para o aprendizado.Microsoft Learn is a new approach to learning. A preparação para as novas habilidades e responsabilidades que acompanham a adoção de nuvem não é fácil.Readiness for the new skills and responsibilities that come with cloud adoption doesn't come easily. O Microsoft Learn oferece uma abordagem mais recompensadora para o aprendizado prático que ajuda você a atingir suas metas mais rapidamente.Microsoft Learn provides a more rewarding approach to hands-on learning that helps you achieve your goals faster. Ganhe pontos e níveis e conquiste mais!Earn points and levels, and achieve more!

    Aqui estão vários exemplos de caminhos de aprendizado personalizados em Microsoft Learn que se alinham com o aplicativo contoso SmartHotel360 no Azure.Here are several examples of tailored learning paths on Microsoft Learn that align with the Contoso SmartHotel360 application in Azure.

    • ** Implantar um site no Azure com o serviço Azure app:** Os aplicativos Web no Azure permitem que você publique e gerencie seu site facilmente sem ter que trabalhar com os servidores subjacentes, armazenamento ou ativos de rede.Deploy a website to Azure with Azure App Service: Web apps in Azure allow you to publish and manage your website easily without having to work with the underlying servers, storage, or network assets. Em vez disso, você pode se concentrar nos recursos de seu site e contar com a robusta plataforma do Azure para fornecer acesso seguro ao site.Instead, you can focus on your website features and rely on the robust Azure platform to provide secure access to your site.

    • ** Processar e classificar imagens com os serviços de visão cognitiva do Azure:** Os serviços cognitivas do Azure oferecem funcionalidade predefinida para habilitar a funcionalidade de pesquisa Visual computacional em seus aplicativos.Process and classify images with the Azure cognitive vision services: Azure Cognitive Services offers prebuilt functionality to enable computer vision functionality in your applications. Saiba como usar os serviços de visão cognitiva para detectar faces, marcar e classificar imagens e identificar objetos.Learn how to use the cognitive vision services to detect faces, tag and classify images, and identify objects.