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 refatoriza uma aplicação .NET do Windows de duas camadas em execução em VMs VMware como parte de uma migração para o Azure. A equipa da Contoso migra a máquina virtual (VM) de front-end da aplicação para uma aplicação Web Serviço de Aplicações do Azure e a base de dados da aplicação para SQL do Azure Base de Dados.
A aplicação SmartHotel360 que utilizamos neste exemplo é fornecida como software open source. Se quiser utilizá-lo para os seus próprios fins de teste, pode transferi-lo a partir 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. A 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 programadores 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, as TI da Contoso têm de ser mais reativas para as necessidades do negócio. Tem de ser capaz de reagir mais rapidamente às alterações no marketplace. As TI não podem entrar no caminho ou 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 da cloud da Contoso afixou os seguintes objetivos:
Requisitos | Detalhes |
---|---|
Aplicação | A aplicação no Azure permanecerá tão crítica como é hoje no local. Deve ter as mesmas capacidades de desempenho que tem atualmente no VMware. A equipa não quer investir na aplicação. Por enquanto, os administradores irão simplesmente mover a aplicação em segurança para a cloud. A equipa quer deixar de suportar o Windows Server 2008 R2, no qual a aplicação é atualmente executada. A equipa também quer mudar do SQL Server 2008 R2 para uma base de dados moderna de plataforma como serviço (PaaS), o que 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 é constituída por uma aplicação ASP.NET e um serviço do Windows Communication Foundation (WCF) em execução na mesma VM. Querem distribuir estes componentes por duas aplicações Web através do Serviço de Aplicações do Azure. |
Azure | A Contoso quer mover a aplicação para o Azure, mas não quer executá-la em VMs. A Contoso quer utilizar os serviços PaaS do Azure para as camadas Web e de dados. |
DevOps | A Contoso quer mudar para um modelo de DevOps que utiliza o Azure DevOps para as respetivas compilações e pipelines de versão. |
Design de solução
Depois de afixar os seus objetivos e requisitos, a Contoso cria e revê uma solução de implementação. Também identificam o processo de migração, incluindo os serviços do Azure que irão utilizar para a migração.
Aplicação atual
- A aplicação SmartHotel360 no local está em camadas em duas VMs
WEBVM
eSQLVM
. - As VMs estão localizadas 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 é executado numa 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 a camada de base de dados da aplicação, a Contoso comparou SQL do Azure Base de Dados a SQL Server ao referir-se à comparação de funcionalidades: SQL do Azure Base de Dados e Azure SQL Managed Instance. A Contoso decidiu utilizar a Base de Dados SQL do Azure por alguns motivos:
- 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.
- A Contoso pode utilizar a Assistente de Migração de Dados simples para avaliar a migração da base de dados no local para SQL do Azure Base de Dados.
- A Contoso pode utilizar Azure Database Migration Service para migrar a base de dados no local para SQL do Azure Base de Dados.
- Com o Software Assurance, a Contoso pode trocar licenças existentes por tarifas com desconto numa base de dados em Base de Dados SQL ao utilizar o Benefício Híbrido do Azure para SQL Server. Esta abordagem pode proporcionar uma poupança de custos de até 30%.
- Base de Dados SQL fornece funcionalidades de segurança como Always Encrypted, máscara de dados dinâmicos, segurança ao nível da linha e deteção de ameaças sqL.
- Para o escalão 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. A Contoso utilizará o Visual Studio para fazer a alteração e implementará duas aplicações Web, uma para o site e outra para o serviço WCF.
- Para cumprir os requisitos de um pipeline de DevOps, a Contoso utilizará o Azure DevOps para a gestão de código fonte com repositórios Git. Utilizarão compilações e versões automatizadas para criar o código e implementá-lo no Serviço de Aplicações do Azure.
Análise da solução
A Contoso avalia a conceção proposta ao criar uma lista de prós e contras, conforme mostrado na tabela seguinte:
Consideração | Detalhes |
---|---|
Vantagens | O código da aplicação SmartHotel360 não requer alterações para migração para o Azure. A Contoso pode tirar partido do seu investimento no Software Assurance ao utilizar o Benefício Híbrido do Azure para SQL Server e Windows Server. Após a migração, o Windows Server 2008 R2 não terá de ser suportado. Para obter mais informações, consulte a Política de Ciclo de Vida da Microsoft. A Contoso pode configurar a camada Web da aplicação com várias instâncias, para que a camada Web deixe de ser um ponto único 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. A Contoso avaliou a base de dados no local com Assistente de Migração de Dados e descobriu que é compatível. SQL do Azure Base de Dados tem tolerância a falhas incorporada que a Contoso não tem de configurar. Tal garante que a camada de dados já não é um ponto único de ativação pós-falha. Se a Contoso utilizar Azure Database Migration Service para migrar a respetiva base de dados, terá a infraestrutura pronta para migrar bases de dados em escala. |
Desvantagens | Serviço de Aplicações do Azure suporta apenas uma implementação de aplicações para cada aplicação Web. Isto significa que têm de ser aprovisionadas duas aplicações Web, uma para o site e outra para o serviço WCF. |
Arquitetura proposta
Processo de migração
A Contoso aprovisiona uma Base de Dados SQL do Azure e, em seguida, migra a base de dados SmartHotel360 para a mesma com Azure Database Migration Service.
A Contoso aprovisiona e configura aplicações Web e implementa a aplicação SmartHotel360 nas mesmas.
Serviços do Azure
Serviço | Description | Custo |
---|---|---|
Assistente de Migração do Serviço de Aplicações do Azure | Um caminho simples e gratuito para migrar facilmente aplicações Web .NET do local para a cloud sem alterações de código mínimas a nenhumas. | É uma ferramenta transferível gratuitamente. |
Assistente de Migração de Dados | A Contoso utilizará Assistente de Migração de Dados para avaliar e detetar problemas de compatibilidade que possam afetar a funcionalidade da base de dados no Azure. Assistente de Migração de Dados avalia a paridade de funcionalidades entre origens e destinos do 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 totalmente integrada de várias origens de bases de dados para plataformas de dados do Azure com um período de indisponibilidade 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, débito e tamanho. Saiba mais. |
Serviço de Aplicações do Azure | Ajuda a criar aplicações na cloud avançadas que utilizam uma plataforma totalmente gerida. | Os preços baseiam-se no tamanho, localização e duração da utilização. Saiba mais. |
Pipelines do Azure | Fornece um pipeline de integração contínua e implementação contínua (CI/CD) para desenvolvimento de aplicações. O pipeline começa com um repositório Git para gerir o código da aplicação, um sistema de compilação para produzir pacotes e outros artefactos de compilação e um sistema de gestão de versões para implementar alterações em ambientes de desenvolvimento, teste e produção. |
Pré-requisitos
Para executar este cenário, a Contoso tem de cumprir os seguintes pré-requisitos:
Requisitos | Detalhes |
---|---|
Subscrição do 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.. A Contoso utiliza a ferramenta assistente de migração do Serviço de Aplicações do Azure para executar verificações de compatibilidade de pré-migração e migrar as respetivas aplicações Web para Serviço de Aplicações do Azure.
- Passo 2: aprovisionar uma base de dados na Base de Dados do SQL do Azure. A Contoso aprovisiona uma instância da Base de Dados do SQL do Azure. Depois de o site da aplicação ser migrado para o Azure, a aplicação Web do serviço WCF irá apontar para esta instância.
- Passo 3: avaliar a base de dados. A Contoso avalia a base de dados para migração com Assistente de Migração de Dados e, em seguida, migra-a através de Azure Database Migration Service.
- Passo 4: Configurar o Azure DevOps. A Contoso cria um novo projeto do Azure DevOps e importa o repositório Git.
- Passo 5: Configurar cadeias 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 pipelines de compilação e versão no Azure DevOps. Como passo final, a Contoso configura pipelines de compilação e versão no 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 respetiva aplicação Web com a ferramenta assistente de migração do Serviço de Aplicações do Azure. Utilizam o percurso de aprendizagem Migrar ASP.NET aplicações para o Azure como guia durante o processo. Os administradores executam estas ações:
Utilizam a ferramenta de avaliação de migração do Azure Serviço de Aplicações para avaliar quaisquer dependências entre as respetivas aplicações Web e para determinar se existem incompatibilidades entre as respetivas aplicações Web no local e o que é suportado no Serviço de Aplicações do Azure.
Transferem o Assistente de Migração do Serviço de Aplicações do Azure e iniciam sessão na respetiva conta do Azure.
Selecionam uma subscrição, um grupo de recursos e o nome de domínio do site.
Passo 2: Aprovisionar uma base de dados na Base de Dados do SQL do Azure
Os administradores da Contoso decidem criar uma instância da Base de Dados do SQL do Azure.
Especificam um nome de base de dados para corresponder à base de dados,
SmartHotel.Registration
, que está em execução na VM no local. Colocam a base de dados noContosoRG
grupo de recursos. Este é o grupo de recursos que utilizam para recursos de produção no Azure.Configuram uma nova instância SQL Server,
sql-smarthotel-eus2
, na região primária.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.
Para o dimensionamento, utilizam a compra baseada em vCore e definem os limites para os requisitos esperados.
Criam a instância da base de dados.
Abrem a base de dados e anotarão os detalhes de que precisarão quando utilizarem Assistente de Migração de Dados para migração.
Precisa de mais ajuda?
- Obtenha ajuda para aprovisionar uma base de dados SQL.
- Saiba mais sobre os limites de recursos do vCore.
Passo 3: Avaliar a base de dados
Os administradores da Contoso avaliam a base de dados com Assistente de Migração de Dados e, em seguida, migram-na com Azure Database Migration Service ao consultar o tutorial de migração passo a passo. Podem realizar migrações online, offline e híbridas (pré-visualização).
Resumindo, os administradores fazem o seguinte:
- Utilizam Assistente de Migração de Dados para detetar e resolver problemas de migração de bases de dados.
- Criam uma instância Azure Database Migration Service 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. Tal implica garantir que todas as portas de entrada são permitidas do Azure para SQL Server ao nível da rede virtual, da VPN de rede e da máquina que aloja SQL Server.
- Configuram a instância:
- Criar um projeto de migração.
- Adicionar uma origem (base de dados no local).
- Selecione um destino.
- Selecione as bases de dados a migrar.
- Configurar definições avançadas.
- Inicie a replicação.
- Resolva os erros existentes.
- Efetue a transferência final.
Passo 4: Configurar o 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.
Na conta do Azure DevOps da Contoso, criam um novo projeto e, em seguida,
ContosoSmartHotelRefactor
selecionam Git para controlo de versões.Importam o repositório Git que atualmente contém o respetivo código de aplicação. Transferem-no a partir do repositório público do GitHub.
Ligam o Visual Studio ao repositório e, em seguida, clonam o código para o computador do programador com o Team Explorer.
Abrem o ficheiro de solução para a aplicação. A aplicação Web e o serviço WCF têm projetos separados no ficheiro.
Passo 5: Configurar cadeias de ligação
Os administradores da Contoso garantem 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.
Na aplicação Web do serviço WCF,
SHWCF-EUS2
, em Definições Definições Definições>definições da aplicação, adicionam uma nova cadeia de ligação com o nome DefaultConnection.Extraem a cadeia de ligação da
SmartHotel-Registration
base de dados e, em seguida, atualizam-na com as credenciais corretas.No Visual Studio, os administradores abrem o projeto a
SmartHotel.Registration.wcf
partir do ficheiro de solução. No projeto, atualizam aconnectionStrings
secção doweb.config
ficheiro com a cadeia de ligação.Alteram a
client
secção doweb.config
ficheiro paraSmartHotel.Registration.Web
apontar para a nova localização do serviço WCF. Este é o URL da aplicação Web WCF que aloja o ponto final de serviço.Com as alterações de código agora implementadas, os administradores consolidam-nas e sincronizam-nas com o Team Explorer no Visual Studio.
Passo 6: Configurar pipelines de compilação e versão no Azure DevOps
Os administradores da Contoso configuram agora o Azure DevOps para executar o processo de compilação e versão.
No Azure DevOps, selecionam Compilar e lançar>Novo pipeline.
Selecionam Git de Repositórios do Azure e, na lista pendente Repositório , selecionam o repositório relevante.
Em Selecionar um modelo, selecionam o modelo para a
ASP.NET
respetiva compilação.Utilizam o nome
ContosoSmartHotelRefactor-ASP.NET-CI
da compilação e, em seguida, selecionam Guardar & Fila, que inicia a primeira compilação.Selecionam o número de compilação para observação do processo. Após a conclusão, os administradores podem ver o feedback do processo e selecionam Artefactos para rever os resultados da compilação.
O painel Explorador de Artefactos é aberto e a pasta drop apresenta os resultados da compilação.
- Os dois ficheiros de .zip são os pacotes que contêm as aplicações.
- Estes ficheiros de .zip são utilizados no pipeline de versão para implementação para Serviço de Aplicações do Azure.
Selecionam Lançamentos>+ Novo pipeline.
Selecionam o modelo de implementação para o Serviço de Aplicações do Azure.
Atribuem um nome ao pipeline
ContosoSmartHotel360Refactor
de versão e, na caixa Nome da fase, especificamSHWCF-EUS2
como o nome da aplicação Web WCF.Nas fases, selecionam 1 trabalho, 1 tarefa para configurar a implementação do serviço WCF.
Verificam se a subscrição está selecionada e autorizada e, em seguida, selecionam o nome do serviço de aplicações.
Nos Artefactos do pipeline>, selecionam + Adicionar um artefacto e, em seguida, selecionam para compilar com o
ContosoSmarthotel360Refactor
pipeline.Para ativar o acionador de implementação contínua, os administradores selecionam o ícone de relâmpago no artefacto.
Definem o acionador de implementação contínua como Ativado.
Os administradores voltam à tarefa de fase 1, 1 e, em seguida, selecionam Implementar Serviço de Aplicações do Azure.
Em Selecionar um ficheiro ou pasta, expandem a pasta pendente , selecionam o
SmartHotel.Registration.Wcf.zip
ficheiro que foi criado durante a compilação e, em seguida, selecionam Guardar.SelecionamFases do 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.Repetem o processo para publicar o
SmartHotel.Registration.Web.zip
ficheiro na aplicação Web correta e, em seguida, selecionam Guardar.O pipeline de versão é apresentado, conforme mostrado aqui:
Voltam a Compilar, selecionam Acionadores e, em seguida, selecionam a caixa de verificação Ativar integração contínua . Esta ação ativa o pipeline para que, quando as alterações forem consolidadas no código, ocorram todas as compilações e versões.
Selecionam Guardar & Fila para executar o pipeline completo. É acionada uma nova compilação, que, por sua vez, cria a primeira versão da aplicação para o Serviço de Aplicações do Azure.
Os administradores da Contoso podem acompanhar o processo do pipeline de compilação e versão no Azure DevOps. Após a conclusão da compilação, a versão é iniciada.
Após a conclusão do pipeline, ambos os sites foram implementados e a aplicação está a funcionar online.
A aplicação foi migrada com êxito para o Azure.
Limpeza após a migração
Após a migração, a Contoso conclui estes passos de limpeza:
- Removem as VMs no local do inventário do vCenter.
- Removem as VMs das tarefas de cópia de segurança locais.
- Atualizam a documentação interna para mostrar as novas localizações da aplicação SmartHotel360. A documentação mostra a base de dados como em execução na Base de Dados SQL do Azure e no front-end como em execução em duas aplicações Web.
- Analisam todos os recursos que interagem com as VMs desativadas e atualizam quaisquer definições ou documentação relevantes para refletir a nova configuração.
Rever a implementação
Com os recursos agora migrados para o Azure, a Contoso precisa de operacionalizar totalmente e ajudar a proteger a nova infraestrutura.
Segurança
- A Contoso ajuda a garantir que a nova
SmartHotel-Registration
base de dados está segura. Saiba mais. - Em particular, a Contoso atualiza as aplicações Web para utilizar o SSL com certificados.
Cópias de segurança
- A equipa da Contoso revê os requisitos de cópia de segurança da Base de Dados SQL do Azure. Saiba mais.
- Também aprendem sobre como gerir Base de Dados SQL cópias de segurança e restauros. Saiba mais sobre as cópias de segurança automáticas.
- Ponderam implementar grupos de ativação pós-falha para fornecer a ativação pós-falha regional para a base de dados. Saiba mais.
- Para resiliência, consideram implementar a aplicação Web na região principal (
East US 2
) e na região secundária (Central US
). A equipa pode configurar o Gestor de Tráfego para garantir a ativação pós-falha durante as interrupções regionais.
Licenciamento e otimização de custos
- Depois de todos os recursos serem implementados, a Contoso atribui etiquetas do Azure com base no planeamento da infraestrutura.
- 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á o Azure Cost Management + Faturação para garantir que se mantêm dentro dos orçamentos estabelecidos pela sua liderança de TI.
Conclusão
Neste artigo, a Contoso refatorizou a aplicação SmartHotel360 no Azure ao migrar a VM de front-end da aplicação para duas aplicações Web Serviço de Aplicações do Azure. A base de dados da aplicação foi migrada para SQL do Azure Base de Dados.