Como a Meta aplica patches no Linux em larga escala
(thenewstack.io)- Aplicar patches em servidores Linux é simples, mas aplicar patches em dezenas de milhares de servidores sem downtime não é fácil
- A Meta usa o Kpatch da Red Hat e o KLP (Kernel Live Patching) para aplicar patches em milhões de servidores Linux
- O KLP permite aplicar as atualizações de segurança mais recentes ao kernel do Linux sem reiniciar
Patch ao vivo do kernel
- O patch ao vivo do kernel é fornecido como um pacote separado do pacote principal do kernel, contendo o código corrigido
- Os patches ao vivo são cumulativos, e o patch mais recente inclui todas as correções dos patches anteriores
- Os patches ao vivo não se aplicam a tudo: não é possível aplicar patch em dados ou estruturas, e criar um patch ao vivo exige trabalho adicional de engenharia
Kpatch
- O Kpatch funciona comparando o kernel original com o kernel corrigido e depois aplicando o novo código ao kernel em execução usando um módulo de kernel personalizado
- Em seguida, o processo do Kpatch usa o
ftracepara monitorar a pilha dos processos existentes e verificar se o patch pode ser aplicado sem efeitos nocivos - Se for considerado seguro, ele redireciona o código em execução para a função corrigida e então remove o código que ficou obsoleto
- Com isso, o patch é aplicado ao servidor sem causar downtime
No caso da Meta
- Claro, na prática isso não é tão simples
- Na Meta, ao aplicar um patch ao vivo, normalmente leva de 1 a 2 segundos para aplicar o patch em um host
- Levar 1 a 2 segundos por host é extremamente rápido em comparação com o
kexec, o mecanismo do kernel Linux para inicializar um novo kernel - Não há necessidade de downtime nem de migração de workload; basta aplicar o patch ao vivo e ele já pode ser usado imediatamente
Como aplicar patches em milhões de máquinas
- Ao aplicar patches em milhões de máquinas, isso não é tudo
- Na Meta, como bugs podem ser descobertos durante o rollout do patch, os administradores aplicam primeiro na camada de release candidate
- O package roller, que fornece patches baseados em RPM, também verifica automaticamente a saúde dos servidores
- A Meta monitora falhas, alertas críticos, problemas de aplicação e desempenho no novo kernel, e se a taxa de erro ultrapassar 1 crash a cada 1.000 servidores, o patch é interrompido e o sistema volta ao kernel anterior
- A Meta usa Kpatch, mas existem outras alternativas
- A SUSE oferece o kGraft, a Oracle usa o Ksplice e a Canonical oferece suporte ao Livepatch
- Independentemente do código, todas oferecem resultados semelhantes
Opinião do GN⁺
O ponto mais importante deste artigo é que a Meta adotou um método eficiente de aplicação de patches sem downtime para milhões de servidores ao redor do mundo. Esse também é um tema interessante até para engenheiros de software iniciantes e destaca a importância da manutenção e da segurança em sistemas Linux. Além disso, o artigo pode ajudar a entender a complexidade e a necessidade da tecnologia de live patch.
1 comentários
Comentários do Hacker News