Introdução:
No projeto a seguir, vamos detalhar como foi realizada a migração de servidores de SQL Server 2016 em a ambiente legado e que está apresentando problemas de desempenho, manutenção preventiva e escalabilidade.
Fizemos uma exploração do processo de refatoração do ambiente do cliente, com o objetivo de melhorar o desempenho, otimizar a estrutura de banco de dados e reduzir a complexidade geral do sistema, bem como gerar a documentação necessária para apoiar tecnicamente e usar a plataforma do Azure como ponto central da solução.
O cliente possui uma carga muito alta de trabalho, devido ao controle de animais e propriedades, como é uma empresa do agronegócio, é imprescindível e resiliência do ambiente e possibilidade de escalabilidade em momentos de pico no controle interno.
Objetivos:
Definimos como importantíssimo a melhoraria o desempenho do ambiente de SQL Server e das aplicações satélites, apoiando na redução de tempos de resposta lentos e aumento da eficiência das consultas e na geração de relatórios.
Para otimizar a estrutura dos bancos de dados existentes, ajustando redundâncias, avaliando possíveis normalizações no esquema de dados e aplicando as melhores práticas de modelagem de banco de dados. Para simplificar e modularizar os scripts SQL, tornando-o mais legível, reutilizável e fácil de manutenção, com documentação e repositório de dados para controle de versionamento.
O assessment geral insights para ajustes e otimizações de consultas para melhoria da eficiência e reduzir o consumo de recursos do sistema, seja com ajustes em índices, stored procedures e particionamento dos dados históricos e que não tem muito acesso.
Para garantir a segurança aprimorada, vamos ajustar o permissionamento do mais restrito para o amplo, a fim de implementar práticas de segurança atualizadas e garantir a integridade dos dados durante todo o processo de refatoração.
Utilizando as soluções do Azure, vamos ter uma gama completa de controles e monitoramento ativo da plataforma que é utilizada em todas as áreas da empresa.
Desafios:
Como garantia de funcionamento, ficou definido que toda a nova solução deve ser compatível com os aplicativos existentes, fornecendo garantia que os sistemas internos possam conectar com o ambiente legado (durante e pós migração).Tudo foi mapeado para minimizar as interrupções nos negócios e falta de comunicação.
Na questão do gerenciamento de dados é preciso saber que vamos lidarcom grandes volumes de dados existentes e devemos garantir que a migração deveser segura e precisa para a nova estrutura de banco de dados, que foi refatoradapara um Azure SQL Database em modo de Hiperescala.
Para garantir a funcionalidade do novo ambiente, foram realizadosdiversos testes e validações, seja para garantir a integridade dos dados após arefatoração, bem como verificação da compatibilidade com os sistemas legados.
Como forma de garantir que melhoria contínua, vemos como essencial a capacitação da equipe, visto que existe uma mudança extensa na solução atual. Com o ambiente no Azure, existe uma facilidade enorme de criação e ajustes de melhorias, que a própria plataforma proporciona, mais é necessário que as pessoas que são responsáveis pelo ambiente precisam estar aptas para o seu controle.
Plano de Ação:
Durante a fase de avaliação do ambiente existente, fizemos um desenho da arquitetura para mapear os itens que iam ser substituídos por soluções do Azure, bem como a avaliação dos scripts SQL para validar o que precisaria ser modificado em tempo de projeto.
Na análise de requisitos foi preciso entender as dores atuais e necessidades futuras, visto que uma empresa desse porte tem, é preciso avaliar melhorias de desempenho, escalabilidade e segurança.
Fizemos um mapeamento do esquema de banco de dados e com isso foi possível redefinir a modelagem atual, aplicando as melhores práticas de modelagem de banco de dados, normalização e eliminação de redundâncias.
Para a refatoração do código SQL, fizemos uma descoberta dos itens mais utilizados e definimos como ponto de partida e eliminação de query hints e falta de parametrização. Após os códigos reescritos, foi possível verificar a otimização, tornando-as mais eficientes, legíveis e reutilizáveis.
Para a migração de dados, utilizamos o Serviço de Migração de Banco de Dados do Azure, com um mapeamento do ambiente legado e reapontamento para a nova estrutura, a fim de garantia da integridade e consistência dos dados durante todo o processo.
Para os testes e validação, solicitamos aos usuários chave que efetuassem a extração dos mesmos relatórios no ambiente legal e do Azure, para comprovar a real eficiência e melhoria contínua.
As equipes do cliente e da Lanlink trabalharam lado a lado, com reuniões de ponto de controle a cada fase da migração, orientando os passos que iam ser executados e quais eram os requisitos necessários para chegar ao objetivo estipulado, com isso, a cada milestone concluído, o aprendizado foi sempre aprimorado e constante.
Resultados:
No novo ambiente e com as soluções do Azure, a empresa do ramo do agronegócio pode contar com uma nova solução, mais otimizada e de alto desempenho, com uma estrutura de banco de dados bem projetada e consultas SQL eficientes.
Na parte de melhoria de desempenho, foi possível validar que a refatoração resultou em tempos de resposta mais rápidos, consultas mais eficientes e menor consumo de recursos do sistema.
Para apoiar o time interno, utilizamos uma manutenção simplificada, onde o código SQL foi reestruturado e modularizado, para facilitar a manutenção, depuração e atualização, versionamento de deploy, resultando em maior produtividade da equipe de desenvolvimento.
Para garantir a segurança e integridade dos dados, foi necessário implantar funcionalidades de RBAC e IAM, para otimizar os papeis e permissionamento, condizente com a nova política de segurança e proteção dos dados, bem como a conformidade com as regulamentações de privacidade.
Com a utilização de Azure SQL Database em Hiperescala, Log Monitor, Azure Data Factory e Power BI, o cliente conseguiu um ambiente mais escalável, com uma estrutura robusta e que permite atingir níveis de detalhes com os recursos financeiros melhorados, apoiando o crescimento dos negócios e otimização de custos.
Esse estudo de caso fornece uma visão geral do processo de refatoração de um ambiente de SQL. Cada empresa pode enfrentar desafios específicos durante a refatoração, mas com uma abordagem estruturada e uma equipe qualificada, é possível otimizar e melhorar significativamente a eficiência de um ambiente de SQL existente.


