Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rails Upgrade: Como atualizamos uma aplicação g...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Rails Upgrade: Como atualizamos uma aplicação gigante utilizando a estratégia de dual boot

Sabemos a importância de manter nossos sistemas sempre nas últimas versões (novas funcionalidades, correções de falhas de segurança, melhoria de performance, etc), mas fazer o upgrade de uma aplicação Rails nem sempre é uma tarefa fácil.
Nesta palestra falei sobre minha experiência trabalhando no upgrade de uma aplicação gigantesca e quais o desafios encontrados pela equipe.

Avatar for Cleiviane Costa

Cleiviane Costa

January 28, 2021

More Decks by Cleiviane Costa

Other Decks in Programming

Transcript

  1. Upgrade Pra quE te quero? - Novas funcionalidades - Correções

    de falhas de segurança - Melhoria de performance
  2. Upgrade Pra quE te quero? - Novas funcionalidades - Correções

    de falhas de segurança - Melhoria de performance - Evolução do Ecossistema
  3. Aplicação monolítica O desafio Update Rails 5.1 > 5.2 Mais

    de 1200 models Baseada em componentes Em produção desde 2007
  4. Aplicação monolítica O desafio Update Rails 5.1 > 5.2 Mais

    de 1200 models Mais de 401 items de menu Baseada em componentes Em produção desde 2007
  5. Aplicação monolítica O desafio Update Rails 5.1 > 5.2 Mais

    de 1200 models Mais de 401 items de menu Baseada em componentes Em produção desde 2007 +500 mil linhas de código
  6. Aplicação monolítica O desafio Update Rails 5.1 > 5.2 Mais

    de 1000 models Mais de 401 items de menu Baseada em componentes Em produção desde 2007 +500 mil linhas de código Mais de 50 devs
  7. ActiveRecord::Dirty - Mudanças no Rails 5.2 - Como resolver? Foram

    mais de 100 warnings em vários componentes.
  8. Dual boot Mecanismo que permite alternar facilmente entre a versão

    atual e a nova versão do Rails. Precisamos integrar as mudanças na master constantemente.
  9. 1. Gems que não precisam de atualização. 2. Gems que

    é só atualizar para a última versão. 3. Gems que não são compatíveis. Cenários:
  10. 1. Remover a dependência e escrever nosso próprio código. 2.

    Enviar uma contribuição para gem adicionando suporte a versão do Rails que queremos. 3. Encontrar uma gem alternativa. Quando a gem não é compatível
  11. 1. Corrigir a suíte de testes 2. Ambiente de Testes

    (QA) 3. MERGE! Teste, teste e mais testes
  12. 1. Novo patch de segurança do Rails foi liberado durante

    o upgrade. 2. Novos componentes foram adicionados. 3. Gems incompatíveis. MAIORES Problemas
  13. 1. Novo Resultados - Diminuição de 0.9s no page load

    time. - Melhorias de segurança do Ruby - Uso de novas funcionalidades do Rails 5.2 - Active storage - Webpacker 3.0 - Credentials - etc