Introdução:
Após uma análise de escopo de migração tecnológico, vimos a necessidade de apoiar a mudança de um ambiente de banco de dados SQL Server localizado em On-Premises para uma solução do Azure, plataforma em nuvem da Microsoft. Durante a fase de desenho do ambiente do cliente, vimos a necessidade de migrar seus sistemas para a nuvem, devido aos benefícios de escalabilidade, desempenho aprimorado e redução de custos, bem como na solução de problemas corporativo históricos, seja com resfriamento ou quedas de energias constantes.
Nas etapas a seguir, exploraremos o processo de rehospedagem do ambiente de SQL Server de uma empresa de serviços à sociedade, composta por quase 250 funcionários e que tem como principal negócio o suporte e melhoria da qualidade de vida das pessoas com necessidades especiais.
Objetivos:
Definimos como principais pilares os seguintes itens, e que irão ao decorrer dessa descrição, orientar a execução do nosso trabalho:
- Migrar o ambiente de SQL e aplicações para o Azure.
- Garantir a disponibilidade contínua dos dados e aplicações durante o processo de migração.
- Melhorar o desempenho e a escalabilidade do ambiente de SQL e aplicações correlacionadas.
- Minimizar os custos operacionais relacionados à manutenção do ambiente de SQL Server.
- Mitigar possíveis melhorias de processo, seja de arquitetura ou de capacitação do time interno.
Desafios:
Como desafio principal, validamos que existia uma grande dependência de diversos sistemas, consumidos diversos recursos dos servidores, com isso precisamos fazer um grande mapeamento do que existia no ambiente local e o que deveria ser migrado ou substituído em tempo de projeto.
Dessa forma, pré-definimos quatro pilares na migração, conforme pode ser visto abaixo.
Migração de Dados: transferir com sucesso todos os dados do ambiente de SQL local para a nuvem sem perda de informações ou interrupções significativas nos sistemas.
Integração de Aplicativos: reconfigurar os aplicativos existentes para se conectarem ao novo ambiente de SQL hospedado no Azure.
Segurança: garantir que a segurança dos dados seja mantida durante todo o processo de migração e após a rehospedagem, visto que existem um consumido grande de APIs que fazem o permissionamento dos dados que podem ser visualizados por determinado usuário, devido a sensibilidade do negócio, esse é um item que teve um carinho especial a pedido do cliente.
Monitoramento e Ajustes: após a fase de requisitos, foi necessário estabelecer um processo para monitorar e ajustar o desempenho do ambiente de SQL no Azure, garantindo a eficiência e a resposta adequada dos sistemas. Pela facilidade de escalar um ambiente, fizemos um mapeamento da performance no ambiente local e fomos adequando no Azure conforme necessidade do negócio.
Plano de Ação:
Para a migração para o ambiente da Azure, precisamos definir quais são os recursos envolvidos nessa etapa.
Na fase de requisitos, verificamos que o ambiente local de SQL Server possui uma versão 2016, alocado em um único banco de dados todo o seu armazenamento de 200GB, utilizando 2 processadores físicos e 4 lógicos.
Para a parte de segurança, fizemos um mapeamento de permissionamento, agendas de backup/restore e demais detalhes do servidor, para isso foi necessário utilizar o Microsoft Data Migration Assistant (DMA), incluindo também as tabelas, índices, stored procedures e demais componentes que deveriam ser migrados e volumetria de cada um dos objetos.
Na fase de preparação dos dados no ambiente local, realizamos a limpeza de tabelas temporárias e objetos antigos, sempre com o aval do cliente. Os dados não sofreram alteração, visto que seria uma replicação bruta, para posterior ajuste de qualidade e integridade.
No ambiente do Azure, foi necessário definir em qual assinatura ficaria a nova solução, bem como os grupos de recursos por setor/área, utilizando as tags de mapeamento e metodologias do CAF. Na parte de segurança, quando necessário foi utilizado o RBAC e IAM para garantir o acesso controlado aos usuários responsáveis pela solução e time da migração. O ambiente foi configurado tendo como base os requisitos levantados e a necessidade do negócio, garantir a integridade, políticas de segurança, configurando backups e recuperação de desastres e automação de processos.
Para a migração de dados, utilizamos o DMA, pela facilidade e por ter os requisitos do Azure. Ao longo do processo tivemos um monitoramento ativo, validando origem e destino simultaneamente e garantindo a integridade do processo e orientando o cliente quando necessário.
Para a realização dos testes e validação, extraímos os mesmos relatórios no ambiente local e Azure, para garantir que os dados estavam íntegros, bem como a performance do ambiente e as aplicações estavam com comportamento esperado. Fizemos validações com diversos perfis diferentes, para garantir que a segurança estava funcionando no ambiente no Azure.
Como forma de garantir a longevidade do ambiente migrado, foi necessário ao longo do projeto uma integração contínua na parte de pessoas, em que o time foi capacitado nas tecnologias correspondentes e a documentação foi toda baseada nos requisitos e itens que foram surgindo ao longo a migração, garantindo o processo e que qualquer pessoa que cuide do ambiente tenha noção do que foi realizado e modificado.
Por fim, existe um monitoramento contínuo, garantindo o sucesso do projeto e rastreamento de itens que podem impactar nos ambientes do Azure, seja na aplicação ou no banco de dados. Assim como a documentação que é entregue ao final do projeto, nomeada de AS-BUILT, também é entregue um documento de apoio em casos de falha, solução de problemas e material de apoio e capacitação, para orientar os times responsáveis pela solução.
Resultados:
Com o Ambiente de SQL Server e Aplicações hospedados no Azure, o cliente pode oferecer melhores serviços à sociedade, seja no atendimento ou na geração de relatórios e análises, o parque tecnológico está capacitado para escalabilidade, segurança aprimorada, livre dos problemas relatados no passado, seja pela queda de energia, onde os servidores ficavam indisponíveis ou ar-condicionado que volta e meia davam problema e impactava na performance do ambiente.
Já na parte de custos, o cliente teve uma diminuição financeira, relacionada com a manutenção interna, podendo focar seus recursos no negócio e na criação de novas soluções para o seu core business.
Após essa fase inicial, o cliente vendo os resultados obtidos com o Azure, optou pela migração de outras soluções locais para a nuvem, a fim de reduzir os custos operacionais relacionados à manutenção de hardware e infraestrutura local.


