Migração para Rust
Os sistemas que você já não pode confiar à linguagem em que foram escritos, levados para Rust enquanto continuam funcionando.
O mandato
Em fevereiro de 2024, o Office of the National Cyber Director da Casa Branca convocou o setor de tecnologia a adotar linguagens com segurança de memória, seguindo orientações da CISA, da NSA e de agências aliadas. Os processos de compra em governo e infraestrutura crítica começam a exigir roadmaps de segurança de memória. A direção está definida. A pergunta para toda organização que mantém sistemas relevantes em PHP, C++, Java, Node ou Python é se a migração será planejada no seu próprio prazo ou imposta no prazo de outra pessoa.
Como migramos sem downtime
Mapeamento do sistema.
Cada serviço, dependência, fluxo de dados e consumidor, documentado. A maioria das organizações descobre sistemas que tinha esquecido que existiam.
Sequenciamento.
Serviços classificados por risco, valor e acoplamento. A primeira migração é escolhida para provar o método, não para ser heroica.
Padrão strangler.
Novos serviços em Rust colocados ao lado dos antigos, recebendo tráfego espelhado e produzindo resultados que são comparados automaticamente.
Verificação de paridade.
A migração só avança quando o antigo e o novo concordam com tráfego real de produção, pelo tempo que for necessário.
Troca, um serviço por vez.
O tráfego passa para Rust por trás de uma chave que pode ser revertida em segundos.
Desativação e repasse.
O serviço antigo é aposentado, a documentação está completa e sua equipe foi treinada no novo.
O que migra bem
- Monólitos em PHP (Laravel, Symfony, legado) para serviços em Rust atrás de um API gateway
- Serviços Node.js com problemas de throughput ou de memória
- Serviços em Java e C# em que os custos de licenciamento, memória ou latência se tornaram estruturais
- Componentes em C e C++ com histórico de incidentes de segurança de memória
- Pipelines de dados e de inferência em Python em que o próprio Python é o gargalo
O que dizemos aos clientes com honestidade
Nem tudo deve migrar.
Uma ferramenta de relatórios usada por quatro pessoas do financeiro continua em PHP. Um fluxo de pagamento que processa a sua receita, não. O mapa do sistema que produzimos na segunda semana é onde essa conversa acontece, e é o documento mais valioso do projeto.