Migrar uma aplicação para Serviço de Aplicações do Azure e Base de Dados SQL

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. A equipa do Contoso migra a máquina virtual frontal (VM) para uma aplicação web Serviço de Aplicações do Azure e a base de dados de aplicações para SQL do Azure Database.

A aplicação SmartHotel360 que utilizamos neste exemplo é fornecida como software de código aberto. Se quiser usá-lo para os seus próprios fins de teste, pode descarregá-lo do GitHub.

Impulsionadores de negócios

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:

  • Dar resposta ao crescimento da empresa. O Contoso está a crescer e há pressão sobre os seus sistemas e infraestruturas no local.
  • Aumentar a eficiência. A Contoso precisa de remover procedimentos desnecessários e simplificar processos para desenvolvedores e utilizadores. 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.
  • Aumentar a agilidade. Para permitir o seu sucesso numa economia global, a Contoso IT precisa de ser mais sensível às necessidades do negócio. Deve poder reagir mais rapidamente às mudanças no mercado. Não deve entrar no caminho nem tornar-se um bloqueador de negócios.
  • Dimensionamento. À medida que os negócios crescem, as equipas de TI da Contoso têm de fornecer sistemas que possam crescer ao mesmo ritmo.
  • Reduzir custos. A Contoso quer minimizar os custos de licenciamento.

Objetivos de migração

Para ajudar a determinar o melhor método de migração, a equipa de nuvem contoso fixou os seguintes objetivos:

Requisitos Detalhes
Aplicação O pedido em Azure permanecerá tão crítico como é hoje no local.

Deve ter as mesmas capacidades de desempenho que tem atualmente no VMware.

A equipa não quer investir na candidatura. Por enquanto, os administradores simplesmente moverão a aplicação em segurança para a nuvem.

A equipa quer deixar de suportar o Windows Server 2008 R2, que a aplicação é atualmente executado.

A equipa quer ainda passar de SQL Server R2 de 2008 para uma plataforma moderna como base de dados de serviço (PaaS), o que irá minimizar a necessidade de gestão.

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.

Adicionalmente, a Contoso quer mitigar o ponto único de falha na camada Web.
Limitações A aplicação consiste numa aplicação ASP.NET e num serviço da Windows Communication Foundation (WCF) que funciona no mesmo VM. Querem difundir estes componentes através de duas aplicações web usando o Serviço de Aplicações do Azure.
Azure O Contoso quer mudar a candidatura para o Azure, mas não o querem publicar em VMs. A Contoso quer utilizar os serviços PaaS do Azure para as camadas Web e de dados.
DevOps A Contoso quer mudar-se para um modelo DevOps que usa a Azure DevOps para as suas construções e lançar oleodutos.

Design de solução

Depois de fixar os seus objetivos e requisitos, a Contoso projeta e revê uma solução de implantação. Também identificam o processo de migração, incluindo os serviços Azure que usarão para a migração.

Aplicação atual

  • A aplicação SmartHotel360 no local é izada em dois VMs, WEBVM e SQLVM.
  • Os VMs estão localizados na versão 6.5 do anfitrião contosohost1.contoso.com VMware ESXi.
  • O ambiente VMware é gerido pelo vCenter Server 6.5 (vcenter.contoso.com), que funciona num VM.
  • A Contoso tem um datacenter no local (contoso-datacenter), com um controlador de domínio no local (contosodc1).
  • As VMs no local no datacenter da Contoso vão ser desativadas após a conclusão da migração.

Solução proposta

  • Para o nível de base de dados da aplicação, Contoso comparou SQL do Azure Base de Dados a SQL Server, referindo-se à comparação de funcionalidades: SQL do Azure Base de Dados e Azure SQL Managed Instance. Contoso decidiu usar SQL do Azure Base de Dados por algumas razões:
    • A Base de Dados SQL do Azure é um serviço de base de dados relacional gerido. Este serviço oferece um desempenho previsível em múltiplos níveis de serviço, com praticamente nenhuma administração. 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.
    • Contoso pode usar o Assistente de Migração de Dados leve para avaliar a migração da base de dados no local para SQL do Azure Base de Dados.
    • Contoso pode usar Azure Database Migration Service para migrar a base de dados no local para SQL do Azure Base de Dados.
    • Com a Software Assurance, a Contoso pode trocar licenças existentes por tarifas com desconto numa base de dados em Base de Dados SQL utilizando o Benefício Híbrido do Azure para SQL Server. Esta abordagem poderia proporcionar uma poupança de custos de até 30%.
    • Base de Dados SQL fornece funcionalidades de segurança tais como Always Encrypted, mascaramento dinâmico de dados, segurança ao nível da linha e deteção de ameaças SQL.
  • Para o nível web da aplicação, a Contoso decidiu utilizar Serviço de Aplicações do Azure. Este serviço PaaS permite-lhes implementar a aplicação com apenas algumas alterações de configuração. O Contoso vai usar o Visual Studio para fazer a mudança, e vão implementar duas aplicações web, uma para o site e outra para o serviço WCF.
  • 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. Usarão construções automatizadas e libertarão para construir o código e implantá-lo para o Serviço de Aplicações do Azure.

Análise da solução

Contoso avalia o seu design proposto reunindo uma lista de prós e contras, como mostra a seguinte tabela:

Consideração Detalhes
Vantagens O código de aplicação SmartHotel360 não requer alterações para a migração para a Azure.

A Contoso pode aproveitar o seu investimento em Software Assurance utilizando o Benefício Híbrido do Azure tanto para SQL Server como para o Windows Server.

Após a migração, o Windows Server 2008 R2 não terá de ser suportado. Para mais informações, consulte a Política de Ciclo de Vida da Microsoft.

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.

A base de dados deixará de depender do antigo SQL Server 2008 R2.

A Base de Dados SQL suporta os requisitos técnicos. Contoso avaliou a base de dados no local usando Assistente de Migração de Dados e descobriu que é compatível.

SQL do Azure Base de Dados tem tolerância a falhas incorporadas que o Contoso não tem de criar. Tal garante que a camada de dados já não é um ponto único de ativação pós-falha.

Se o Contoso utilizar Azure Database Migration Service para migrar a sua base de dados, terá a infraestrutura pronta para migrar bases de dados à escala.
Desvantagens Serviço de Aplicações do Azure suporta apenas uma implementação de aplicação para cada aplicação web. Isto significa que duas aplicações web devem ser a provisionadas, uma para o site e outra para o serviço WCF.

Arquitetura proposta

Diagrama da arquitetura proposta.

Processo de migração

  1. A Contoso prevê um SQL do Azure caso gerido e, em seguida, migra a base de dados SmartHotel360 para ele, utilizando Azure Database Migration Service.

  2. Contoso fornece e configura aplicações web, e implementa a aplicação SmartHotel360 para eles.

    Diagrama do processo de migração.

Serviços do Azure

Serviço Description Custo
Assistente de Migração do Serviço de Aplicações do Azure 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. É uma ferramenta transferível, gratuitamente.
Assistente de Migração de Dados Contoso usará Assistente de Migração de Dados para avaliar e detetar problemas de compatibilidade que possam afetar a funcionalidade da base de dados em Azure. Assistente de Migração de Dados avalia a paridade de recursos entre fontes e alvos SQL, e recomenda melhorias de desempenho e fiabilidade. É uma ferramenta transferível, gratuitamente.
Azure Database Migration Service 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. Saiba mais sobre as regiões suportadas e os preços do Database Migration Service.
Base de Dados SQL do Azure Um serviço de bases de dados relacionais na cloud, inteligente e totalmente gerido. O custo baseia-se em funcionalidades, produção e tamanho. Saiba mais.
Serviço de Aplicações do Azure Ajuda a criar aplicações em nuvem poderosas que usam uma plataforma totalmente gerida. Os preços baseiam-se no tamanho, localização e duração de utilização. Saiba mais.
Pipelines do Azure Proporciona um gasoduto de integração contínua e de implantação contínua (CI/CD) para o desenvolvimento de aplicações. O oleoduto começa com um repositório git para a gestão do código de aplicação, 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.

Pré-requisitos

Para executar este cenário, Contoso deve cumprir os seguintes pré-requisitos:

Requisitos Detalhes
Assinatura Azure A Contoso criou subscrições anteriormente neste conjunto de artigos. Se não tiver uma subscrição do Azure, crie uma conta gratuita.

Se criar uma conta gratuita, será o administrador da sua subscrição e poderá executar todas as ações.

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.
Infraestrutura do Azure A Contoso configurou a sua infraestrutura Azure conforme descrito em Infraestrutura do Azure para migração.

Passos do cenário

Veja a seguir como a Contoso vai executar a migração:

  • Passo 1: Avaliar e migrar as aplicações web.. Contoso usa a ferramenta Serviço de Aplicações do Azure Migration Assistant para executar verificações de compatibilidade pré-migração e migrar as suas aplicações web para Serviço de Aplicações do Azure.
  • Passo 2: Provisão de uma base de dados na base de dados SQL do Azure. Contoso prevê uma SQL do Azure caso de base de dados. 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.
  • Passo 3: Avaliar a base de dados. Contoso avalia a base de dados para a migração utilizando Assistente de Migração de Dados e depois migra através de Azure Database Migration Service.
  • Passo 4: Configurar Azure DevOps. A Contoso cria um novo projeto do Azure DevOps e importa o repositório Git.
  • Passo 5: Configurar as cordas de ligação. 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.
  • Passo 6: Configurar e soltar gasodutos em 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.

Passo 1: Avaliar e migrar as aplicações web

Os administradores da Contoso avaliam e migram a sua aplicação web utilizando a ferramenta Serviço de Aplicações do Azure Migration Assistant. Eles usam as aplicações migrate ASP.NET para o caminho de aprendizagem Azure como um guia durante o processo. Os administradores executam estas ações:

  • Eles usam a ferramenta de avaliação de migração Azure Serviço de Aplicações 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 em Serviço de Aplicações do Azure.

  • Descarregam o Serviço de Aplicações do Azure Assistente de Migração e inscrevem-se na sua conta Azure.

  • Eles escolhem uma subscrição, um grupo de recursos e o nome de domínio do site.

Passo 2: Provisionamento de uma base de dados na base de dados SQL do Azure

  1. Os administradores da Contoso decidem criar uma SQL do Azure caso de Base de Dados.

    Screenshot mostrando a ligação Base de Dados SQL.

  2. Eles especificam um nome de base de dados para combinar com a base de dados, SmartHotel.Registrationque está a funcionar no local VM. Colocam a base de dados no ContosoRG grupo de recursos. Este é o grupo de recursos que utilizam para recursos de produção no Azure.

    Screenshot mostrando detalhes Base de Dados SQL exemplo.

  3. Criaram um novo SQL Server casosql-smarthotel-eus2, na região primária.

    Screenshot do novo SQL Server exemplo.

  4. Definem o escalão de preço para corresponder às necessidades do servidor e da base de dados. 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.

  5. Para dimensionamento, utilizam a compra baseada em vCore e estabelecem os limites para os requisitos esperados.

    Screenshot dos requisitos de dimensionamento vCore.

  6. Criam a área da base de dados.

    Screenshot de criar uma Base de Dados SQL instância.

  7. Abrem a base de dados e anotarão os detalhes de que precisam quando usam Assistente de Migração de Dados para a migração.

    Screenshot do ficheiro de texto de instância de dados da base de dados.

Precisa de mais ajuda?

Passo 3: Avaliar a base de dados

Os administradores de Contoso avaliam a base de dados utilizando Assistente de Migração de Dados e depois migram-na utilizando Azure Database Migration Service, referindo-se ao tutorial de migração passo a passo. Podem realizar migrações online, offline e híbridas (pré-visualização).

Em resumo, os administradores fazem o seguinte:

  • Usam Assistente de Migração de Dados para descobrir e resolver quaisquer problemas de migração de bases de dados.
  • Criam um Azure Database Migration Service exemplo com um SKU Premium que está ligado à rede virtual.
  • Garantem que a instância pode aceder ao SQL Server remoto através da rede virtual. 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 acolhe SQL Server.
  • Configuram o caso:
    • Criar um projeto de migração.
    • Adicione uma fonte (base de dados no local).
    • Selecione um alvo.
    • Selecione as bases de dados para migrar.
    • Configurar configurações avançadas.
    • Inicie a replicação.
    • Resolva os erros existentes.
    • Execute o corte final.

Passo 4: Configurar Azure DevOps

A Contoso tem de compilar a infraestrutura e os pipelines do DevOps para a aplicação. 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.

  1. Na conta Contoso Azure DevOps, eles criam um novo projeto, ContosoSmartHotelRefactore depois selecionam Git para controlo de versão.

    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. Descarregam-no do repositório público do GitHub.

    Screenshot do painel de repositório de Importação a Git.

  3. Ligam o Visual Studio ao repo e clonam o código à máquina de desenvolvimento utilizando o Team Explorer.

    Screenshot do painel de ligação a um painel de projeto.

  4. Abrem o ficheiro de solução para o pedido. A aplicação web e o serviço WCF têm projetos separados dentro do ficheiro.

    Screenshot de Explorador de Soluções, listando a aplicação web e os projetos de serviço WCF.

Passo 5: Configurar cordas de ligação

Os administradores do Contoso asseguram que as aplicações web e a base de dados podem comunicar entre si. Para isso, configuram as cadeia de ligação no código e nas aplicações Web.

  1. Na aplicação web para o serviço WCF, SHWCF-EUS2emdefinições de Aplicaçãode Definições>, adicionam uma nova cadeia de ligação chamada DefaultConnection.

  2. Puxam o fio de ligação da SmartHotel-Registration base de dados e atualizam-no com as credenciais corretas.

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

  3. No Visual Studio, os administradores abrem o projeto a SmartHotel.Registration.wcf partir do ficheiro de solução. No projeto, atualizam a connectionStrings secção do web.config ficheiro com a cadeia de ligação.

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

  4. Alteram a client secção do web.config ficheiro para SmartHotel.Registration.Web indicar a nova localização do serviço WCF. Este é o URL da aplicação web WCF que acolhe o ponto final do serviço.

    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.

Passo 6: Configurar e libertar gasodutos em Azure DevOps

Os administradores contoso agora configuram Azure DevOps para executar o processo de construção e lançamento.

  1. Em Azure DevOps, selecionam Build e lançam>novo oleoduto.

    Screenshot da nova ligação do gasoduto em Azure DevOps.

  2. Eles selecionam Azure Repos Git e, na lista de dropdown do Repositório , selecionam o repo relevante.

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

  3. Em Seleção de um modelo, eles selecionam o ASP.NET modelo para a sua construção.

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

  4. Eles usam o nome ContosoSmartHotelRefactor-ASP.NET-CI para a construção e, em seguida, selecionam Save & Queue, que dá início à primeira construção.

    Screenshot do botão 'Guardar & a fila' para a construção.

  5. Selecionam o número de compilação para observação do processo. Depois de terminado, os administradores podem ver o feedback do processo, e eles selecionam Artefactos para rever os resultados da construção.

    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.

    • Os dois ficheiros .zip são os pacotes que contêm as aplicações.
    • Estes ficheiros .zip são utilizados no oleoduto de libertação para Serviço de Aplicações do Azure.

    Screenshot do painel de exploradores de artefactos.

  6. Selecionam Lançamentos>+ Novo oleoduto.

    Novo oleoduto

  7. Selecionam o modelo de implementação para o Serviço de Aplicações do Azure.

    Screenshot do modelo de implementação Serviço de Aplicações do 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.

    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.

    Screenshot do trabalho 1, 1 opção de tarefa.

  10. Verificam se a subscrição é selecionada e autorizada e, em seguida, selecionam o nome do serviço de aplicações.

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

  11. No oleoduto >, selecionam + Adicione um artefacto e, em seguida, selecione para construir com o ContosoSmarthotel360Refactor oleoduto.

    Screenshot do botão Build no painel de artefactos Adicionar um artefacto.

  12. Para ativar o gatilho de implantação contínua, os administradores selecionam o ícone do relâmpago no artefacto.

    Screenshot do ícone do relâmpago no artefacto.

  13. Eles definem o gatilho de implementação contínua para Ativado.

    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 Serviço de Aplicações do Azure.

    Screenshot da opção de selecionar Implementar Serviço de Aplicações do Azure.

  15. Em Selecionar um ficheiro ou pasta, expandem a pasta drop , selecionam o SmartHotel.Registration.Wcf.zip ficheiro que foi criado durante a construção e, em seguida, selecionam Guardar.

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

  16. Selecionam Fases de Pipeline> e, em seguida,selecionam + Adicionar para adicionar um ambiente para SHWEB-EUS2. Selecionam outra implementação do Serviço de Aplicações do Azure.

    Screenshot do trabalho 1, 1 link de tarefa 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.

    Screenshot do painel de ficheiros ou pasta selecione um painel de ficheiros ou pasta para selecionar o ficheiro Web.

    O gasoduto de desbloqueio é apresentado, como mostrado aqui:

    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 . Esta ação permite que o gasoduto permita que, quando as alterações são comprometidas com o código, ocorram a construção e a libertação completas.

    Screenshot realçando a caixa de verificação de integração contínua Enable.

  19. Selecionam Save & Queue para executar o pipeline completo. É desencadeada uma nova construção, que por sua vez cria o primeiro lançamento da aplicação para o Serviço de Aplicações do Azure.

    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. Depois que a construção termina, o lançamento começa.

    Screenshot do progresso da construção e libertação.

  21. Após o fim do oleoduto, ambos os sites foram implantados, e a aplicação está a funcionar online.

    Screenshot mostrando que a aplicação está em funcionamento.

    A aplicação foi migrada com sucesso para Azure.

Limpeza após a migração

Após a migração, Contoso completa estes passos de limpeza:

  • Retiram os VMs no local do inventário vCenter.
  • Retiram os VM dos trabalhos de apoio locais.
  • Atualizam a documentação interna para mostrar as novas localizações para a aplicação SmartHotel360. A documentação mostra a base de dados como funcionando em SQL do Azure Base de Dados e na extremidade frontal como funcionando em duas aplicações web.
  • 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.

Rever a implementação

Com os recursos agora migrados para Azure, a Contoso precisa de operacionalizar plenamente e ajudar a garantir a sua nova infraestrutura.

Segurança

  • Contoso ajuda a garantir que a sua nova SmartHotel-Registration base de dados é segura. Saiba mais.
  • Em particular, a Contoso atualiza as aplicações web para utilizar sSL com certificados.

Cópias de segurança

  • A equipa da Contoso analisa os requisitos de backup para a Base de Dados SQL do Azure. Saiba mais.
  • Eles também aprendem sobre a gestão de Base de Dados SQL backups e restauros. Saiba mais sobre backups automáticos.
  • Consideram a aplicação de grupos de failover para fornecer o failover regional para a base de dados. Saiba mais.
  • Para a 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). A equipa poderia configurar o Gestor de Tráfego para garantir o fracasso durante as paragens regionais.

Licenciamento e otimização de custos

  • Depois de todos os recursos serem mobilizados, a Contoso atribui tags Azure com base no seu planeamento de infraestruturas.
  • Todo o licenciamento é integrado no custo dos serviços PaaS que a Contoso está a consumir. Este custo é deduzido do Contrato Enterprise.
  • A Contoso utilizará a Azure Cost Management + Billing para garantir que se mantenham dentro dos orçamentos estabelecidos pela sua liderança de TI.

Conclusão

Neste artigo, a Contoso refactorizou a aplicação SmartHotel360 em Azure ao migrar a aplicação front-end VM para duas aplicações web Serviço de Aplicações do Azure. A base de dados de aplicações foi migrada para SQL do Azure Base de Dados.