Como planejar a migração de uma aplicação em .NET Full Framework 4.8, atualmente hospedada em um servidor Windows e utilizando SQL Server 2008, que gera arquivos para download?

opcoes-modernizacao

6 Rs da Migração para a Nuvem

Em um processo de migração é necessário considerar as melhores estratégias para uma transição eficiente para a nuvem. Neste processo, surgem várias questões, como a escolha do provider de nuvem, quais os serviços que melhor se adaptam ao cenário atual.

Os 6 Rs da migração para a nuvem, é uma framework desenvolvida pela Amazon (AWS). Ela oferece estratégias para empresas que buscam otimizar a migração de suas aplicações e serviços para a nuvem. Neste contexto, vamos focar em duas abordagens que são mais comuns: ReHost e RePlataform.

A estratégia ReHost, frequentemente chamada de "lift-and-shift", é uma abordagem direta onde a aplicação é transferida para a nuvem sem modificações significativas. Essa opção é particularmente atraente em cenários onde a familiaridade com as opções de serviço de nuvem é limitada ou quando se deseja evitar alterações na aplicação. A grosso modo, pode dizer que é como fazer um backup da aplicação On-Premise e restaurá-la em uma VM na Cloud.

Por outro lado, a estratégia RePlataform busca adaptar a aplicação para aproveitar melhor as vantagens da nuvem, mas sem fazer alterações significativas na arquitetura ou no código. O objetivo é realizar ajustes mínimos que permitam otimizar a aplicação para o ambiente de nuvem, como a utilização de serviços de banco de dados gerenciados ou recursos de armazenamento e processamento escaláveis. Essa abordagem busca um equilíbrio entre a minimização de mudanças na aplicação e a otimização de seu desempenho e custo no ambiente de nuvem.

Nós como arquitetos de cloud, temos como missão buscar entender a aplicação legada e conduzir para um RePlataform de maneira atingir um resultado ótimo.

person playing magic cube

Solução

Nesse contexto a solução envolve a utilização de um Azure App Service para hospedar a aplicação, um Azure SQL para o banco de dados e um Azure Storage para lidar com os arquivos gerados pela aplicação.

Embora o Blob do Storage seja uma opção, ele requer alterações no código da aplicação para fazer upload dos arquivos. Para contornar isso, pode ser utilizado um File Share no lugar do Blob. Dessa forma é possivel efetuar um mount no Azure App Service. Assim a aplicação poderá gerar arquivos e salvá-los em um diretório específico do servidor, por exemplo, C:\mounts\.

Esta estrutura garante que todos os arquivos criados neste diretório sejam automaticamente armazenados no File Share do Azure Storage. Além disso, como um benefício adicional, haverá backups automáticos destes arquivos.

O próximo passo é disponibilizar esses arquivos para download. Isso será feito configurando a pasta /mounts como um diretório virtual no Azure App Service, permitindo que os usuários acessem e baixem os arquivos.

Por fim, a migração do banco de dados para o Azure SQL será realizada. Isso envolve a transferência dos dados do SQL Server 2008 para o Azure SQL, porém essa abordagem requer cuidados adicionais.

Migração do SQL Server On-Premises para o Azure SQL

A escolha entre implementar o Azure SQL ou uma VM rodando SQL Server depende de diversos fatores, incluindo o uso do SQL em termos de recursos (como Memória e CPU) e funcionalidades específicas do SQL Server. Em alguns casos, o Azure SQL pode resultar em custos mais elevados comparados à execução de uma VM com SQL Server, ou pode haver incompatibilidades em relação a determinadas funcionalidades. Para descobrir isso a Microsoft oferece ferramentas de análise que auxiliam nessa decisão, fornecendo recomendações baseadas no seu uso do banco de dados On-Premises.

Embora seja raro, existem situações em que o Azure SQL não é a opção recomendada. Presumindo que seu seja igual a maioria, ou seja, usar o Azure SQL, você vai ter que decidir entre duas opções de migração: online ou offline.

Migração Offline

Esta abordagem é relativamente mais simples, mas implica em um período de downtime da aplicação. O processo envolve a criação de um backup do banco de dados on-premises, seguido pela restauração desse backup no Azure SQL. Após a restauração, é necessário atualizar a string de conexão da aplicação para apontar para o novo banco de dados no Azure, finalizando o processo.

Migração Online

A migração online permite manter a aplicação operacional durante todo o processo. Primeiramente, é realizada uma cópia do banco de dados on-premises e restaurada no Azure SQL. Em seguida, configura a replicação entre o banco de dados on-premises e o Azure SQL, mantendo-os sincronizados. Uma vez concluída a sincronização, a string de conexão da aplicação é atualizada para o Azure SQL. Este método é mais complexo, mas evita tempo de inatividade da aplicação.

Nossa decisão: Migração offline

Nosso time optou pela migração offline, pois tanto nós quanto o cliente considerou que essa abordagem seria mais rápida. O processo de setup e restauração do backup foi concluído em menos de uma hora. Realizamos a migração em um horário de menor atividade e tudo ocorreu conforme o planejado!

Conclusão

A migração de uma aplicação para a nuvem exige uma série de decisões estratégicas e técnicas que variam de acordo com o cenário e as expectativas de cada projeto. Não existe uma solução única que seja a "melhor" para todos os casos. A escolha entre as abordagens ReHost e RePlatform, a seleção dos serviços mais adequados na nuvem, o método de transferência do banco de dados são decisões em conjunto com nossos clientes. É necessário expor os pontos positivos e negativos de cada opção.

No caso apresentado, a opção pela migração offline resultou em uma transição rápida, segura e eficiente. Com um impacto minimo para o cliente e garantindo que a aplicação estivesse operacional em pouco tempo.

Na AzureBrasil, todas as migrações são analisadas em parceria com o cliente, garantimos que a melhor estratégia seja adotada para cada situação.

Com um bom planejamento e o uso adequado das ferramentas, é possível realizar uma migração segura, otimizando os recursos e aproveitando ao máximo os benefícios da nuvem.

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post