Na sua apresentação na QCon San Francisco, Ying Dai compartilhou duas histórias críticas de migração de engenharia de software – uma focada em monitoramento de produção e a outra em implantações de produção com validações automatizadas. Ambas as migrações foram impulsionadas pelo objetivo de aumentar a eficiência da engenharia, mas cada uma trouxe seus próprios desafios e lições.
O sistema de telemetria legado lutava para escalar com as demandas crescentes e muitas vezes falhava em fornecer informações oportunas e precisas, disse Dai. Isso levou a horas extensas de plantão e esforços de solução de problemas, dificultando, em última análise, a produtividade da engenharia, acrescentou.
Para construir o novo sistema, eles realizaram uma análise minuciosa do existente, identificando suas deficiências e os desafios que seus engenheiros internos enfrentavam, mencionou Dai. Eles exploraram as opções disponíveis e projetaram um novo sistema com um plano de transição estratégico:
“Nosso primeiro objetivo foi desenvolver um novo sistema que oferecesse alta disponibilidade e confiabilidade. Reconhecendo a importância crítica do desempenho e da precisão, implementamos uma metodologia de teste rigorosa. Isso envolveu um processo de escrita dupla, onde os dados eram escritos simultaneamente nos sistemas legado e novo.”
Essa estratégia permitiu verificar minuciosamente a integridade e a funcionalidade do novo sistema, garantindo ao mesmo tempo um serviço ininterrupto e a preservação de dados durante a transição, disse Dai.
Dai compartilhou uma segunda história de migração sobre implantação de serviços. O processo anterior de implantação de serviços, que dependia inteiramente de etapas manuais, carecia das verificações e validações necessárias, disse Dai. Isso tornava simples a implementação de mudanças, mas também levava a uma maior frequência de incidentes.
Durante a implantação, eles encontraram atritos nas experiências de engenharia, o que os levou a agir. Com base no feedback dos engenheiros, implementaram melhorias visando garantir uma transição mais suave e sem problemas, como explicou Dai:
“Essa experiência ressaltou a importância da centralidade no cliente e do desenvolvimento iterativo para alcançar implementações tecnológicas bem-sucedidas.”
Durante suas pesquisas, eles viram potencial para aprimorar a análise canária automatizada, disse Dai. Ao realizar essa análise diretamente na produção em instâncias canárias, poderiam oferecer valor imediato e tangível aos seus engenheiros, melhorando a confiabilidade de seus processos de implantação.
Eles projetaram as regras de análise canária automatizada para serem universalmente aplicáveis a todos os serviços, eliminando a necessidade de input dos engenheiros. Essa abordagem de “zero esforço de integração” proporcionou facilidade de uso e integração sem costura, disse Dai.
Eles também entenderam a importância da flexibilidade, garantindo que seu sistema incorporasse as disposições necessárias para que os engenheiros personalizassem as regras de validação de acordo com suas necessidades e preferências específicas. Essa adaptabilidade capacita seus engenheiros a adaptar o processo de análise para alinhar-se perfeitamente com seus requisitos únicos, como explicou Dai:
“Em essência, nossa abordagem centrada no cliente, combinada com nosso foco estratégico na análise canária automatizada e nosso compromisso com a simplicidade e flexibilidade, abriu caminho para melhorias substanciais em nossa eficiência de engenharia e satisfação geral do usuário.”
É essencial entender e abordar ativamente as necessidades de nossos engenheiros, disse Dai. Isso envolve fomentar uma comunicação aberta, incentivar sua participação precoce no processo de mudança, fornecer treinamento direcionado e buscar feedback contínuo, explicou:
“Ao priorizarmos suas necessidades, podemos minimizar interrupções, cultivar um ambiente colaborativo e implementar mudanças que capacitem nossos engenheiros e, em última análise, beneficiem toda a organização.”
Os benefícios que obtiveram com as migrações foram aumento da confiabilidade, diminuição do número de incidentes e melhoria da disponibilidade geral. Esses resultados positivos validaram a eficácia de sua abordagem para aprimorar o desempenho do sistema, concluiu Dai.
InfoQ entrevistou Ying Dai sobre suas migrações.
InfoQ: Como foi a transição para um novo sistema de telemetria?
Ying Dai: A transição para um novo sistema foi uma empreitada complexa e desafiadora. Requereu um investimento significativo de tempo, recursos e esforço de nós (proprietários do novo sistema e do antigo) e também de nossos clientes (principalmente engenheiros internos) envolvidos. Ouvimos nossos engenheiros, usando seu feedback para melhorias contínuas e efetivamente preenchendo quaisquer lacunas na experiência do usuário entre os sistemas antigo e novo.
Ao considerar cuidadosamente suas opiniões, conseguimos identificar e abordar quaisquer lacunas na experiência do usuário que surgiram entre os sistemas antigo e novo. Essa abordagem centrada no cliente nos permitiu garantir uma transição suave e sem problemas, minimizando interrupções e mantendo um alto nível de satisfação do usuário.
InfoQ: Como vocês se envolveram com os engenheiros de software durante as migrações?
Dai: Para fortalecer nossa eficiência de engenharia, iniciamos uma investigação abrangente sobre as experiências de nossos engenheiros. Por meio de entrevistas aprofundadas com nossos engenheiros internos, conseguimos identificar seus principais pontos de dor e desafios.
Por exemplo, durante o projeto de migração de implantação de produção, percebemos que, embora alguns clientes tenham testes de integração e estejam abertos a desenvolver mais, esses testes muitas vezes produzem valor limitado devido a discrepâncias entre os ambientes de teste e produção. Essas percepções serviram como base para identificar áreas-chave onde poderíamos implementar melhorias e, subsequentemente, desenvolver um plano estratégico e acionável.