Migrar uma aplicação para O Azure App Service e SQL DatabaseMigrate an application to Azure App Service and SQL Database

Este artigo demonstra como a empresa fictícia Contoso refactoria uma aplicação windows .NET de dois níveis que está a funcionar em VMware VMs como parte de uma migração para Azure.This article demonstrates how the fictional company Contoso refactors a two-tier Windows .NET application that's running on VMware VMs as part of a migration to Azure. A equipa do Contoso migra a máquina virtual frontal (VM) para uma aplicação web do Azure App Service e a base de dados de aplicações para a Base de Dados Azure SQL.The Contoso team migrates the application front-end virtual machine (VM) to an Azure App Service web app and the application database to Azure SQL Database.

A aplicação SmartHotel360 que utilizamos neste exemplo é fornecida como software de código aberto.The SmartHotel360 application that we use in this example is provided as open-source software. Se quiser usá-lo para os seus próprios fins de teste, pode descarregá-lo a partir do GitHub.If you want to use it for your own testing purposes, you can download it from GitHub.

Impulsionadores de negóciosBusiness drivers

A equipa de líderes de TI da Contoso trabalhou de perto com parceiros comerciais para entender o que pretendem alcançar com a migração:The Contoso IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Dar resposta ao crescimento da empresa.Address business growth. O Contoso está a crescer e há pressão sobre os seus sistemas e infraestruturas no local.Contoso is growing, and there is pressure on their on-premises systems and infrastructure.
  • Aumentar a eficiência.Increase efficiency. A Contoso precisa de remover procedimentos desnecessários e simplificar processos para desenvolvedores e utilizadores.Contoso needs to remove unnecessary procedures and streamline processes for developers and users. A empresa precisa que as equipas de TI sejam rápidas e não desperdicem tempo ou dinheiro para responder mais rapidamente ao que os clientes pedem.The business needs IT to be fast and not waste time or money, thus delivering faster on customer requirements.
  • Aumentar a agilidade.Increase agility. Para permitir o seu sucesso numa economia global, a Contoso IT precisa de ser mais sensível às necessidades do negócio.To enable their success in a global economy, Contoso IT needs to be more responsive to the needs of the business. Deve poder reagir mais rapidamente às mudanças no mercado.It must be able to react more quickly to changes in the marketplace. Não deve entrar no caminho nem tornar-se um bloqueador de negócios.IT must not get in the way or become a business blocker.
  • A escala.Scale. À medida que os negócios crescem, as equipas de TI da Contoso têm de fornecer sistemas que possam crescer ao mesmo ritmo.As the business grows successfully, Contoso IT must provide systems that are able to grow at the same pace.
  • Reduza os custos.Reduce costs. A Contoso quer minimizar os custos de licenciamento.Contoso wants to minimize licensing costs.

Objetivos de migraçãoMigration goals

Para ajudar a determinar o melhor método de migração, a equipa de nuvem contoso fixou os seguintes objetivos:To help determine the best migration method, the Contoso cloud team pinned down the following goals:

RequisitosRequirements DetalhesDetails
AplicaçãoApplication O pedido em Azure permanecerá tão crítico como é hoje no local.The application in Azure will remain as critical as it is today on-premises.

Deve ter as mesmas capacidades de desempenho que tem atualmente no VMware.It should have the same performance capabilities as it currently does in VMware.

A equipa não quer investir na candidatura.The team doesn't want to invest in the application. Por enquanto, os administradores simplesmente moverão a aplicação em segurança para a nuvem.For now, admins will simply move the application safely to the cloud.

A equipa quer deixar de suportar o Windows Server 2008 R2, que a aplicação é atualmente executado.The team wants to stop supporting Windows Server 2008 R2, which the application currently runs on.

A equipa também quer passar do SQL Server 2008 R2 para uma plataforma moderna como base de dados de serviço (PaaS), o que irá minimizar a necessidade de gestão.The team also wants to move away from SQL Server 2008 R2 to a modern platform as a service (PaaS) database, which will minimize the need for management.

A Contoso quer tirar partido do Software Assurance e do seu investimento em licenciamento do SQL Server, nas situações em que for possível.Contoso wants to take advantage of its investment in SQL Server licensing and Software Assurance where possible.

Adicionalmente, a Contoso quer mitigar o ponto único de falha na camada Web.In addition, Contoso wants to mitigate the single point of failure on the web tier.
LimitaçõesLimitations A aplicação consiste numa aplicação ASP.NET e num serviço da Windows Communication Foundation (WCF) em execução no mesmo VM.The application consists of an ASP.NET application and a Windows Communication Foundation (WCF) service running on the same VM. Querem difundir estes componentes em duas aplicações web utilizando o Azure App Service.They want to spread these components across two web apps using the Azure App Service.
AzureAzure O Contoso quer mudar a candidatura para o Azure, mas não o querem publicar em VMs.Contoso wants to move the application to Azure, but they don't want to run it on VMs. A Contoso quer utilizar os serviços PaaS do Azure para as camadas Web e de dados.Contoso wants to use Azure PaaS services for both the web and data tiers.
DevOpsDevOps A Contoso quer mudar-se para um modelo DevOps que usa a Azure DevOps para as suas construções e lançar oleodutos.Contoso wants to move to a DevOps model that uses Azure DevOps for their builds and release pipelines.

Design de soluçãoSolution design

Depois de fixar os seus objetivos e requisitos, a Contoso desenha e revê uma solução de implantação.After pinning down their goals and requirements, Contoso designs and reviews a deployment solution. Também identificam o processo de migração, incluindo os serviços Azure que usarão para a migração.They also identify the migration process, including the Azure services that they'll use for the migration.

Aplicação atualCurrent application

  • A aplicação SmartHotel360 no local está espalhada por dois VMs, WEBVM e SQLVM .The SmartHotel360 on-premises application is tiered across two VMs, WEBVM and SQLVM.
  • Os VMs estão localizados no anfitrião 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 é gerido pelo vCenter Server 6.5 ( vcenter.contoso.com ), que funciona em VM.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), which runs on a VM.
  • A Contoso tem um datacenter no local (contoso datacenter), com um controlador de domínio no local (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • As VMs no local no datacenter da Contoso vão ser desativadas após a conclusão da migração.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Solução propostaProposed solution

  • Para o nível de base de dados da aplicação, a Contoso comparou a Base de Dados Azure SQL ao SQL Server, referindo-se à comparação de funcionalidades: Base de Dados Azure SQL e Instância Gerida Azure SQL.For the database tier of the application, Contoso compared Azure SQL Database to SQL Server by referring to the features comparison: Azure SQL Database and Azure SQL Managed Instance. Contoso decidiu usar a Base de Dados Azure SQL por algumas razões:Contoso decided to use Azure SQL Database for a few reasons:
    • A Base de Dados SQL do Azure é um serviço de base de dados relacional gerido.Azure SQL Database is a managed relational database service. Este serviço oferece um desempenho previsível em múltiplos níveis de serviço, com praticamente nenhuma administração.It delivers predictable performance at multiple service levels, with near-zero administration. A Base de Dados SQL do Azure tem vantagens como a escalabilidade dinâmica sem tempo de inatividade, a otimização inteligente incorporada e a escalabilidade e disponibilidade global.Advantages include dynamic scalability with no downtime, built-in intelligent optimization, and global scalability and availability.
    • Contoso pode usar o assistente leve de migração de dados para avaliar a migração da base de dados no local para a Base de Dados Azure SQL.Contoso can use the lightweight Data Migration Assistant to assess the on-premises database migration to Azure SQL Database.
    • Contoso pode usar o Serviço de Migração da Base de Dados Azure para migrar a base de dados no local para a Base de Dados Azure SQL.Contoso can use Azure Database Migration Service to migrate the on-premises database to Azure SQL Database.
    • Com a Garantia de Software, a Contoso pode trocar licenças existentes por tarifas com desconto numa base de dados na Base de Dados SQL utilizando o Benefício Híbrido Azure para o SQL Server.With Software Assurance, Contoso can exchange existing licenses for discounted rates on a database in SQL Database by using the Azure Hybrid Benefit for SQL Server. Esta abordagem poderia proporcionar uma poupança de custos de até 30%.This approach could provide a cost saving of up to 30 percent.
    • A SQL Database fornece funcionalidades de segurança tais como sempre encriptada, máscara de dados dinâmica, segurança ao nível da linha e deteção de ameaças SQL.SQL Database provides security features such as Always Encrypted, dynamic data masking, row-level security, and SQL threat detection.
  • Para o nível web da aplicação, a Contoso decidiu utilizar o Azure App Service.For the application web tier, Contoso has decided to use Azure App Service. Este serviço PaaS permite-lhes implementar a aplicação com apenas algumas alterações de configuração.This PaaS service enables them to deploy the application with just a few configuration changes. O Contoso usará o Visual Studio para fazer a mudança, e implementarão duas aplicações web, uma para o site e outra para o serviço WCF.Contoso will use Visual Studio to make the change, and they'll deploy two web apps, one for the website and one for the WCF service.
  • Para satisfazer os requisitos para um oleoduto DevOps, a Contoso utilizará a Azure DevOps para a gestão de códigos fonte com repos Git.To meet requirements for a DevOps pipeline, Contoso will use Azure DevOps for source code management with Git repos. Usarão construções automatizadas e lançarão para construir o código e implantá-lo no Serviço de Aplicações Azure.They'll use automated builds and release to build the code and deploy it to the Azure App Service.

Análise da soluçãoSolution review

Contoso avalia o seu design proposto através da elaboração de uma lista de prós e contras, como mostra a seguinte tabela:Contoso evaluates their proposed design by putting together a pros and cons list, as shown in the following table:

ConsideraçãoConsideration DetalhesDetails
VantagensPros O código de aplicação SmartHotel360 não requer alterações para a migração para a Azure.The SmartHotel360 application code doesn't require changes for migration to Azure.

A Contoso pode aproveitar o seu investimento em Software Assurance utilizando o Azure Hybrid Benefit tanto para o SQL Server como para o Windows Server.Contoso can take advantage of their investment in Software Assurance by using the Azure Hybrid Benefit for both SQL Server and Windows Server.

Após a migração, o Windows Server 2008 R2 não terá de ser suportado.After the migration, Windows Server 2008 R2 won't need to be supported. Para obter mais informações, consulte a Política do Ciclo de Vida da Microsoft.For more information, see the Microsoft Lifecycle Policy.

Contoso pode configurar o nível web da aplicação com múltiplas instâncias, de modo que o nível web não é mais um único ponto de falha.Contoso can configure the web tier of the application with multiple instances, so that the web tier is no longer a single point of failure.

A base de dados deixará de depender do antigo SQL Server 2008 R2.The database will no longer depend on the aging SQL Server 2008 R2.

A Base de Dados SQL suporta os requisitos técnicos.SQL Database supports the technical requirements. Contoso avaliou a base de dados no local usando o Assistente de Migração de Dados e descobriu que é compatível.Contoso assessed the on-premises database by using Data Migration Assistant and found that it's compatible.

A Azure SQL Database tem tolerância a falhas incorporada que o Contoso não tem de criar.Azure SQL Database has built-in fault tolerance that Contoso doesn't have to set up. Tal garante que a camada de dados já não é um ponto único de ativação pós-falha.This ensures that the data tier is no longer a single point of failover.

Se o Contoso utilizar o Azure Database Migration Service para migrar a sua base de dados, terá a infraestrutura pronta para migrar bases de dados à escala.If Contoso uses Azure Database Migration Service to migrate their database, it will have the infrastructure ready for migrating databases at scale.
DesvantagensCons O Azure App Service suporta apenas uma implementação de aplicação para cada aplicação web.Azure App Service supports only one application deployment for each web app. Isto significa que devem ser a provisionadas duas aplicações web, uma para o website e outra para o serviço WCF.This means that two web apps must be provisioned, one for the website and one for the WCF service.

Arquitetura propostaProposed architecture

Diagrama da arquitetura proposta.

Processo de migraçãoMigration process

  1. A Contoso fornece um exemplo gerido pelo Azure SQL e, em seguida, migra a base de dados SmartHotel360 para ele, utilizando o Azure Database Migration Service.Contoso provisions an Azure SQL managed instance and then migrates the SmartHotel360 database to it by using Azure Database Migration Service.

  2. Contoso fornece e configura aplicações web, e implementa a aplicação SmartHotel360 para eles.Contoso provisions and configures web apps, and deploys the SmartHotel360 application to them.

    Diagrama do processo de migração.

Serviços do AzureAzure services

ServiçoService DescriçãoDescription CustoCost
Assistente de Migração do Serviço de Aplicações do AzureAzure App Service Migration Assistant Um caminho livre e simples para migrar perfeitamente as aplicações web .NET do local para a nuvem com alterações mínimas a nenhuma codificação.A free and simple path to seamlessly migrate .NET web applications from on-premises to the cloud with minimal to no code changes. É uma ferramenta transferível, gratuitamente.It's a downloadable tool, free of charge.
Assistente de Migração de DadosData Migration Assistant Contoso usará o Data Migration Assistant para avaliar e detetar problemas de compatibilidade que possam afetar a funcionalidade da base de dados em Azure.Contoso will use Data Migration Assistant to assess and detect compatibility issues that might affect database functionality in Azure. O Data Migration Assistant avalia a paridade de recursos entre fontes e metas SQL, e recomenda melhorias de desempenho e fiabilidade.Data Migration Assistant assesses feature parity between SQL sources and targets, and it recommends performance and reliability improvements. É uma ferramenta transferível, gratuitamente.It's a downloadable tool, free of charge.
Azure Database Migration ServiceAzure Database Migration Service O Azure Database Migration Service permite a migração sem emenda de múltiplas fontes de base de dados para plataformas de dados Azure com tempo de inatividade mínimo.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Saiba mais sobre as regiões suportadas e os preços do Database Migration Service.Learn about supported regions and Database Migration Service pricing.
Base de Dados SQL do AzureAzure SQL Database Um serviço de bases de dados relacionais na cloud, inteligente e totalmente gerido.An intelligent, fully managed relational cloud database service. O custo baseia-se em funcionalidades, produção e tamanho.Cost is based on features, throughput, and size. Saiba mais.Learn more.
Serviço de Aplicações do AzureAzure App Service Ajuda a criar aplicações em nuvem poderosas que usam uma plataforma totalmente gerida.Helps create powerful cloud applications that use a fully managed platform. Os preços baseiam-se no tamanho, localização e duração de utilização.Pricing is based on size, location, and usage duration. Saiba mais.Learn more.
Azure DevOpsAzure DevOps Proporciona um gasoduto de integração contínua e de implantação contínua (CI/CD) para o desenvolvimento de aplicações.Provides a continuous integration and continuous deployment (CI/CD) pipeline for application development. O oleoduto começa com um repositório git para gerir o código de aplicações, um sistema de construção para a produção de pacotes e outros artefactos de construção, e um sistema de gestão de libertação para implementar alterações em ambientes dev, teste e produção.The pipeline starts with a Git repository for managing application code, a build system for producing packages and other build artifacts, and a release management system to deploy changes in dev, test, and production environments.

Pré-requisitosPrerequisites

Para executar este cenário, Contoso deve cumprir os seguintes pré-requisitos:To run this scenario, Contoso must meet the following prerequisites:

RequisitosRequirements DetalhesDetails
Subscrição do AzureAzure subscription A Contoso criou subscrições anteriormente neste conjunto de artigos.Contoso created subscriptions earlier in this article series. Se não tiver uma subscrição do Azure, crie uma conta gratuita.If you don't have an Azure subscription, create a free account.

Se criar uma conta gratuita, será o administrador da sua subscrição e poderá executar todas as ações.If you create a free account, you're the administrator of your subscription and can perform all actions.

Se utilizar uma subscrição já existente e não for o administrador, terá de trabalhar com o mesmo para que lhe atribua as permissões Proprietário ou Contribuidor.If you use an existing subscription and you're not the administrator, you need to work with the admin to assign you Owner or Contributor permissions.
Infraestrutura do AzureAzure infrastructure A Contoso configurou a sua infraestrutura Azure conforme descrito em Infraestrutura do Azure para migração.Contoso set up their Azure infrastructure as described in Azure infrastructure for migration.

Passos do cenárioScenario steps

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

  • Passo 1: Avaliar e migrar as aplicações web.. .Step 1: Assess and migrate the web apps.. A Contoso utiliza a ferramenta Azure App Service Migration Assistant para executar verificações de compatibilidade pré-migração e migrar as suas aplicações web para o Azure App Service.Contoso uses the Azure App Service Migration Assistant tool to run pre-migration compatibility checks and migrate their web apps to Azure App Service.
  • Passo 2: Provisionamento de uma base de dados na Base de Dados Azure SQL.Step 2: Provision a database in Azure SQL Database. Contoso fornece uma instância de base de dados Azure SQL.Contoso provisions an Azure SQL Database instance. Após a migração do site da aplicação para Azure, a aplicação web de serviço wcf irá apontar para este caso.After the application website is migrated to Azure, the WCF service web app will point to this instance.
  • Passo 3: Avaliar a base de dados.Step 3: Assess the database. Contoso avalia a base de dados para migração utilizando o Data Migration Assistant e depois migra-a através do Azure Database Migration Service.Contoso assesses the database for migration by using Data Migration Assistant and then migrates it via Azure Database Migration Service.
  • Passo 4: Configurar Azure DevOps.Step 4: Set up Azure DevOps. A Contoso cria um novo projeto do Azure DevOps e importa o repositório Git.Contoso creates a new Azure DevOps project, and imports the Git repo.
  • Passo 5: Configurar as cordas de ligação.Step 5: Configure connection strings. A Contoso configura cadeias de ligação, para que a aplicação Web de camada Web, a aplicação Web do serviço WCF e a instância SQL possam comunicar.Contoso configures connection strings so that the web tier web app, the WCF service web app, and the SQL instance can communicate.
  • Passo 6: Configurar e soltar gasodutos em Azure DevOps.Step 6: Set up build and release pipelines in Azure DevOps. Como último passo, o Contoso cria oleodutos de construção e lançamento em Azure DevOps para criar a aplicação e, em seguida, implementa-os em duas aplicações web separadas.As a final step, Contoso sets up build and release pipelines in Azure DevOps to create the application, and then deploys them to two separate web apps.

Passo 1: Avaliar e migrar as aplicações webStep 1: Assess and migrate the web apps

Os administradores da Contoso avaliam e migram a sua aplicação web utilizando a ferramenta Azure App Service Migration Assistant.Contoso admins assess and migrate their web app using the Azure App Service Migration Assistant tool. Eles usam o caminho de aprendizagem migração ASP.NET para Azure como um guia durante o processo.They use the Migrate ASP.NET Apps to Azure learning path as a guide during the process. Os administradores executam estas ações:The admins perform these actions:

  • Eles usam a ferramenta de avaliação da migração do Azure App Service para avaliar quaisquer dependências entre as suas aplicações web e para determinar se existem incompatibilidades entre as suas aplicações web no local e o que é suportado no Azure App Service.They use the Azure App Service migration assessment tool to evaluate any dependencies between their web apps and to determine whether there are any incompatibilities between their on-premises web apps and what's supported on Azure App Service.

  • Descarregam o Assistente de Migração do Serviço de Aplicações Azure e inscrevem-se na sua conta Azure.They download the Azure App Service Migration Assistant and sign in to their Azure account.

  • Eles escolhem uma subscrição, um grupo de recursos e o nome de domínio do site.They choose a subscription, a resource group, and the website's domain name.

Passo 2: Provisionamento de uma base de dados na Base de Dados Azure SQLStep 2: Provision a database in Azure SQL Database

  1. Os administradores da Contoso decidem criar uma instância de base de dados Azure SQL.Contoso admins decide to create an Azure SQL Database instance.

    Screenshot mostrando a ligação SQL Database.

  2. Eles especificam um nome de base de dados para combinar com a base SmartHotel.Registration de dados, que está a funcionar no local VM.They specify a database name to match the database, SmartHotel.Registration, that's running on the on-premises VM. Colocam a base de dados no ContosoRG grupo de recursos.They place the database in the ContosoRG resource group. Este é o grupo de recursos que utilizam para recursos de produção no Azure.This is the resource group they use for production resources in Azure.

    Screenshot mostrando detalhes da instância da base de dados SQL.

  3. Eles criaram uma nova instância sql sql-smarthotel-eus2 server, na região primária.They set up a new SQL Server instance, sql-smarthotel-eus2, in the primary region.

    Screenshot da nova instância do SQL Server.

  4. Definem o escalão de preço para corresponder às necessidades do servidor e da base de dados.They set the pricing tier to match their server and database needs. Também selecionam a opção de poupar dinheiro com o Benefício Híbrido do Azure porque já têm uma licença do SQL Server.And they select to save money with Azure Hybrid Benefit because they already have a SQL Server license.

  5. Para dimensionamento, utilizam a compra baseada em vCore e estabelecem os limites para os requisitos esperados.For sizing, they use vCore-based purchasing and set the limits for their expected requirements.

    Screenshot dos requisitos de dimensionamento vCore.

  6. Criam a área da base de dados.They create the database instance.

    Screenshot de criar uma instância sql database.

  7. Abrem a base de dados e registam os detalhes de que necessitam quando usam o Data Migration Assistant para migração.They open the database and note the details they'll need when they use Data Migration Assistant for migration.

    Screenshot do ficheiro de texto da placa de base de dados.

Precisa de mais ajuda?Need more help?

Passo 3: Avaliar a base de dadosStep 3: Assess the database

Os administradores da Contoso avaliam a base de dados utilizando o Data Migration Assistant e depois migram-na utilizando o Azure Database Migration Service, referindo-se ao tutorial de migração passo a passo.Contoso admins assess the database by using Data Migration Assistant and then migrate it by using Azure Database Migration Service by referring to the step-by-step migration tutorial. Podem realizar migrações online, offline e híbridas (pré-visualização).They can perform online, offline, and hybrid (preview) migrations.

Em resumo, os administradores fazem o seguinte:In brief, the admins do the following:

  • Eles usam o Data Migration Assistant para descobrir e resolver quaisquer problemas de migração de bases de dados.They use Data Migration Assistant to discover and resolve any database migration issues.
  • Eles criam uma instância do Serviço de Migração de Bases de Dados Azure com um SKU Premium que está ligado à rede virtual.They create an Azure Database Migration Service instance with a Premium SKU that's connected to the virtual network.
  • Garantem que a instância pode aceder ao servidor SQL remoto através da rede virtual.They ensure that the instance can access the remote SQL Server via the virtual network. Isto implica garantir que todas as portas de entrada são permitidas de Azure a SQL Server ao nível da rede virtual, a VPN de rede e a máquina que hospeda o SQL Server.This entails ensuring that all incoming ports are allowed from Azure to SQL Server at the virtual network level, the network VPN, and the machine that hosts SQL Server.
  • Configuram o caso:They configure the instance:
    • Criar um projeto de migração.Create a migration project.
    • Adicione uma fonte (base de dados no local).Add a source (on-premises database).
    • Selecione um alvo.Select a target.
    • Selecione as bases de dados para migrar.Select the databases to migrate.
    • Configurar configurações avançadas.Configure advanced settings.
    • Inicie a replicação.Start the replication.
    • Resolva os erros existentes.Resolve any errors.
    • Execute o corte final.Perform the final cutover.

Passo 4: Configurar Azure DevOpsStep 4: Set up Azure DevOps

A Contoso tem de compilar a infraestrutura e os pipelines do DevOps para a aplicação.Contoso needs to build the DevOps infrastructure and pipelines for the application. Para o fazer, os administradores da Contoso criam um novo projeto DevOps, importam o código e, em seguida, configuram pipelines de compilação e versão.To do this, Contoso admins create a new DevOps project, import the code, and then set up build and release pipelines.

  1. Na conta Contoso Azure DevOps, criam um novo projeto, o ContosoSmartHotelRefactor, e depois selecionam Git para controlo de versão.In the Contoso Azure DevOps account, they create a new project, ContosoSmartHotelRefactor, and then select Git for version control.

    Screenshot de criar um novo projeto em Azure DevOps.

  2. Importam o git repo que detém atualmente o seu código de aplicação.They import the Git repo that currently holds their application code. Descarregam-no do repositório público do GitHub.They download it from the public GitHub repository.

    Screenshot do painel de repositório **Import a Git.

  3. Ligam o Visual Studio ao repo e clonam o código à máquina de desenvolvimento utilizando o Team Explorer.They connect Visual Studio to the repo and then clone the code to the developer machine by using Team Explorer.

    Screenshot do painel Connect a project

  4. Abrem o ficheiro de solução para o pedido.They open the solution file for the application. A aplicação web e o serviço WCF têm projetos separados dentro do ficheiro.The web app and the WCF service have separate projects within the file.

    Screenshot do Solution Explorer, listando a aplicação web e os projetos de serviço WCF.

Passo 5: Configurar cordas de ligaçãoStep 5: Configure connection strings

Os administradores do Contoso asseguram que as aplicações web e a base de dados podem comunicar entre si.The Contoso admins make sure that the web apps and database can communicate with each other. Para isso, configuram as cadeia de ligação no código e nas aplicações Web.To do this, they configure connection strings in the code and in the web apps.

  1. Na aplicação web para o serviço WCF, SHWCF-EUS2 , em definições de Aplicação de > Definições, eles adicionam uma nova cadeia de conexão chamada DefaultConnection.In the web app for the WCF service, SHWCF-EUS2, under Settings > Application settings, they add a new connection string named DefaultConnection.

  2. Puxam o fio de ligação da base de dados SmartHotel-Registration e atualizam-na com as credenciais corretas.They pull the connection string from the SmartHotel-Registration database and then update it with the correct credentials.

    Screenshot do painel de definições de ligação.

  3. No Visual Studio, os administradores abrem o SmartHotel.Registration.wcf projeto a partir do ficheiro de solução.In Visual Studio, the admins open the SmartHotel.Registration.wcf project from the solution file. No projeto, atualizam a connectionStrings secção do ficheiro com a cadeia de web.config ligação.In the project, they update the connectionStrings section of the web.config file with the connection string.

    Screenshot da secção 'connectionStrings' do ficheiro 'web.config' no projeto 'SmartHotel.Registration.wcf'.

  4. Alteram a client secção do ficheiro para indicar a nova web.config SmartHotel.Registration.Web localização do serviço WCF.They change the client section of the web.config file for SmartHotel.Registration.Web to point to the new location of the WCF service. Este é o URL da aplicação web WCF que acolhe o ponto final do serviço.This is the URL of the WCF web app that hosts the service endpoint.

    Screenshot da secção de clientes do ficheiro 'web.config' no projeto 'SmartHotel.Registration.wcf'.

  5. Com as alterações de código agora em vigor, os administradores comprometem-se e sincronizam-nos utilizando o Team Explorer no Visual Studio.With the code changes now in place, the admins commit and sync them by using Team Explorer in Visual Studio.

Passo 6: Configurar e libertar gasodutos em Azure DevOpsStep 6: Set up build and release pipelines in Azure DevOps

Os administradores contoso agora configuram Azure DevOps para executar o processo de construção e libertação.The Contoso admins now configure Azure DevOps to perform the build and release process.

  1. Em Azure DevOps, selecionam Build e lançam > novo oleoduto.In Azure DevOps, they select Build and release > New pipeline.

    Screenshot do novo elo de pipeline** em Azure DevOps.

  2. Eles selecionam Azure Repos Git e, na lista de drop-down do Repositório, selecionam o repo relevante.They select Azure Repos Git and, in the Repository drop-down list, they select the relevant repo.

    Screenshot do botão Azure Repos Git e do repositório selecionado.

  3. Em Selecione um modelo, eles selecionam o ASP.NET modelo para a sua construção.Under Select a template, they select the ASP.NET template for their build.

    Screenshot do painel Selecione um painel de modelo para selecionar o modelo de ASP.NET.

  4. Usam o nome ContosoSmartHotelRefactor-ASP.NET-CI para a construção e, em seguida, selecionam Save & Queue, que dá início à primeira construção.They use the name ContosoSmartHotelRefactor-ASP.NET-CI for the build and then select Save & Queue, which kicks off the first build.

    Screenshot do botão Save & Queue para a construção.

  5. Selecionam o número de compilação para observação do processo.They select the build number to watch the process. Depois de terminado, os administradores podem ver o feedback do processo, e eles selecionam Artefactos para rever os resultados da construção.After it's finished, the admins can see the process feedback, and they select Artifacts to review the build results.

    Screenshot da página de construção e da ligação artefactos para rever os resultados da construção.

    O painel de exploradores de Artefactos abre-se e a pasta de queda apresenta os resultados da construção.The Artifacts explorer pane opens, and the drop folder displays the build results.

    • Os dois ficheiros .zip são os pacotes que contêm as aplicações.The two .zip files are the packages that contain the applications.
    • Estes ficheiros .zip são utilizados no oleoduto de lançamento para implantação no Azure App Service.These .zip files are used in the release pipeline for deployment to Azure App Service.

    Screenshot do painel de explorador de artefactos***

  6. Selecionam Lançamentos > + Novo oleoduto.They select Releases > + New pipeline.

    Novo pipeline

  7. Selecionam o modelo de implementação para o Serviço de Aplicações do Azure.They select the deployment template for Azure App Service.

    Screenshot do modelo de implementação do Serviço de Aplicações Azure.

  8. Eles nomeiam o pipeline de libertação ContosoSmartHotel360Refactor e, na caixa de nomes de palco, especificam SHWCF-EUS2 como o nome da aplicação web WCF.They name the release pipeline ContosoSmartHotel360Refactor and, in the Stage name box, specify SHWCF-EUS2 as the name of the WCF web app.

    Screenshot do nome artístico da aplicação web WCF.

  9. Nas fases, selecionam 1 trabalho, 1 tarefa para configurar a implementação do serviço WCF.Under the stages, they select 1 job, 1 task to configure deployment of the WCF service.

    Screenshot da opção 1, 1 tarefa

  10. Verificam se a subscrição é selecionada e autorizada e, em seguida, selecionam o nome do serviço de aplicações.They verify that the subscription is selected and authorized, and then they select the app service name.

    Screenshot de selecionar o nome do serviço de aplicações.

  11. No gasoduto > Artefactos, selecionam + Adicione um artefacto, e depois selecione para construir com o ContosoSmarthotel360Refactor oleoduto.On the pipeline > Artifacts, they select + Add an artifact, then select to build with the ContosoSmarthotel360Refactor pipeline.

    Screenshot do botão Build no painel Adicione um painel de artefacto

  12. Para ativar o gatilho de implantação contínua, os administradores selecionam o ícone do relâmpago no artefacto.To enable the continuous deployment trigger, the admins select the lightning bolt icon on the artifact.

    Screenshot do ícone do relâmpago no artefacto.

  13. Eles definem o gatilho de implantação contínua para Ativado.They set the continuous deployment trigger to Enabled.

    Screenshot mostrando o conjunto de gatilho de implementação contínua para Ativado.

  14. Os administradores voltam ao trabalho de fase 1, 1 tarefa e, em seguida, selecionam implementar o Serviço de Aplicações Azure.The admins go back to the stage 1 job, 1 task and then select Deploy Azure App Service.

    Screenshot da opção para selecionar Implementar serviço de aplicações Azure.

  15. Em Selecionar um ficheiro ou pasta, expandir a pasta drop, selecionar o SmartHotel.Registration.Wcf.zip ficheiro que foi criado durante a construção e, em seguida, selecionar Guardar.In Select a file or folder, they expand the drop folder, select the SmartHotel.Registration.Wcf.zip file that was created during the build, and then select Save.

    Screenshot do painel Selecione um painel de ficheiro ou pasta para selecionar o ficheiro WCF.

  16. Selecionam Fases de Pipeline > e, em seguida, selecionam + Adicionar para adicionar um ambiente para SHWEB-EUS2 .They select Pipeline > Stages, and then select + Add to add an environment for SHWEB-EUS2. Selecionam outra implementação do Serviço de Aplicações do Azure.They select another Azure App Service deployment.

    Screenshot do trabalho 1, 1 link task para adicionar um ambiente.

  17. Repetem o processo para publicar o SmartHotel.Registration.Web.zip ficheiro na aplicação web correta e, em seguida, selecionam Save.They repeat the process to publish the SmartHotel.Registration.Web.zip file to the correct web app, and then select Save.

    Screenshot do painel Selecione um painel de ficheiro ou pasta para selecionar o ficheiro WEB.

    O gasoduto de desbloqueio é apresentado, como mostrado aqui:The release pipeline is displayed, as shown here:

    Screenshot do resumo do gasoduto de lançamento.

  18. Voltam a construir, selecionam Triggers e, em seguida, selecionam a caixa de verificação de integração contínua Enable.They go back to Build, select Triggers, and then select the Enable continuous integration check box. Esta ação permite que o gasoduto permita que, quando as alterações são comprometidas com o código, ocorra a construção e a libertação completas.This action enables the pipeline so that when changes are committed to the code, the full build and release occur.

    Screenshot realçando a caixa de verificação Enable continuous integration .

  19. Selecionam Guardar e colocar em fila para executar o pipeline completo.They select Save & Queue to run the full pipeline. É desencadeada uma nova construção, que por sua vez cria o primeiro lançamento da aplicação para o Serviço de Aplicações Azure.A new build is triggered, which in turn creates the first release of the application to the Azure App Service.

    Screenshot do botão Save & Queue

  20. Os administradores da Contoso podem acompanhar o processo do pipeline de compilação e versão no Azure DevOps.Contoso admins can follow the build and release pipeline process from Azure DevOps. Depois que a construção termina, o lançamento começa.After the build finishes, the release starts.

    Screenshot do progresso das aplicações de construção e lançamento.

  21. Após o fim do oleoduto, ambos os sites foram implantados, e a aplicação está a funcionar online.After the pipeline finishes, both sites have been deployed, and the application is up and running online.

    Screenshot mostrando que a aplicação está a funcionar.

    A aplicação foi migrada com sucesso para Azure.The application has been successfully migrated to Azure.

Limpeza após a migraçãoClean up after migration

Após a migração, Contoso completa estes passos de limpeza:After migration, Contoso completes these cleanup steps:

  • Retiram os VMs no local do inventário vCenter.They remove the on-premises VMs from the vCenter inventory.
  • Retiram os VM dos trabalhos de apoio locais.They remove the VMs from the local backup jobs.
  • Atualizam a documentação interna para mostrar as novas localizações da aplicação SmartHotel360.They update their internal documentation to show the new locations for the SmartHotel360 application. A documentação mostra a base de dados como funcionando na Base de Dados Azure SQL e na extremidade frontal como executada em duas aplicações web.The documentation shows the database as running in Azure SQL Database and the front end as running in two web apps.
  • Eles analisam quaisquer recursos que interagem com os VMs desativados, e atualizam quaisquer configurações ou documentação relevantes para refletir a nova configuração.They review any resources that interact with the decommissioned VMs, and they update any relevant settings or documentation to reflect the new configuration.

Rever a implementaçãoReview the deployment

Com os recursos agora migrados para Azure, a Contoso precisa de operacionalizar plenamente e ajudar a garantir a sua nova infraestrutura.With the resources now migrated to Azure, Contoso needs to fully operationalize and help secure their new infrastructure.

SegurançaSecurity

  • Contoso ajuda a garantir que a sua nova SmartHotel-Registration base de dados está segura.Contoso helps ensure that their new SmartHotel-Registration database is secure. Saiba mais.Learn more.
  • Em particular, a Contoso atualiza as aplicações web para utilizar sSL com certificados.In particular, Contoso updates the web apps to use SSL with certificates.

Cópias de segurançaBackups

  • A equipa da Contoso analisa os requisitos de backup para a Base de Dados Azure SQL.The Contoso team reviews the backup requirements for the Azure SQL Database. Saiba mais.Learn more.
  • Eles também aprendem sobre a gestão de backups e restauros da Base de Dados SQL.They also learn about managing SQL Database backups and restores. Saiba mais sobre cópias de segurança automáticas.Learn more about automatic backups.
  • Consideram a aplicação de grupos de failover para fornecer o failover regional para a base de dados.They consider implementing failover groups to provide regional failover for the database. Saiba mais.Learn more.
  • Para resiliência, consideram a implementação da aplicação web na região principal East US 2 e na região secundária Central US .For resilience, they consider deploying the web app in the main region (East US 2) and the secondary region (Central US). A equipa poderia configurar o Gestor de Tráfego para garantir o fracasso durante as paragens regionais.The team could configure Traffic Manager to ensure failover during regional outages.

Licenciamento e otimização de custosLicensing and cost optimization

  • Depois de todos os recursos serem mobilizados, a Contoso atribui tags Azure com base no seu planeamento de infraestruturas.After all resources are deployed, Contoso assigns Azure tags based on their infrastructure planning.
  • Todo o licenciamento é integrado no custo dos serviços PaaS que a Contoso está a consumir.All licensing is built into the cost of the PaaS services that Contoso is consuming. Este custo é deduzido do Acordo Empresarial.This cost is deducted from the Enterprise Agreement.
  • A Contoso utilizará a Azure Cost Management + Billing para garantir que se mantenham dentro dos orçamentos estabelecidos pela sua liderança de TI.Contoso will use Azure Cost Management + Billing to ensure that they stay within the budgets established by their IT leadership.

ConclusãoConclusion

Neste artigo, a Contoso refactorizou a aplicação SmartHotel360 em Azure ao migrar a aplicação front-end VM para duas aplicações web do Azure App Service.In this article, Contoso refactored the SmartHotel360 application in Azure by migrating the application front-end VM to two Azure App Service web apps. A base de dados de aplicações foi migrada para a Base de Dados Azure SQL.The application database was migrated to Azure SQL Database.