atualização de framework
Atualização para .NET 8, Java 21 e React, pronta em 30 dias
A data de fim de vida do seu framework já passou ou está no calendário, e todo scan de segurança lista os mesmos achados. Os nossos engenheiros, há mais de 25 anos em produção, colocam você numa versão com suporte em 30 dias, provada no seu tráfego.
Em 48 horas: um preço fechado por fase, a ordem da atualização e a data em que o runtime antigo sai.
Java 8, .NET Framework 4.x ou AngularJS 1.x, patches encerrados e um relatório do scanner mais longo a cada trimestre.
- Java 8Spring 4
- .NET Framework 4.xWindows only
- AngularJS 1.xend of life
- Python 2.7end of life
30 dias, com paridade conferida em tráfego de produção gravado
Java 21 com Spring Boot 3, .NET 8, React ou Python 3, dependências em dia, achados fechados.
- Java 21Spring Boot 3
- .NET 8Linux containers
- ReactTypeScript
- Python 3.12typed
A atualização em 30 dias
- 01dias 1–3
Varrer e planejar
Cada dependência, API obsoleta e namespace removido encontrado na base inteira, com os seus achados de segurança associados a eles. Você recebe a ordem da atualização e um preço fechado.
- 02dias 3–15
Atualizar o núcleo
Runtime, build e framework vão primeiro: javax para jakarta, System.Web para ASP.NET Core, Struts e EJB para Spring Boot. A plataforma faz a reescrita em massa e os engenheiros revisam cada pull request.
- 03dias 10–24
Substituir o que morreu
Bibliotecas sem versão com suporte são trocadas ou reescritas, e as telas em AngularJS são reconstruídas em React, uma rota por vez. A bancada de paridade reexecuta tráfego de produção depois de cada merge.
- 04dias 22–30
Subir e aposentar
O build novo recebe tráfego atrás de uma chave, com o runtime antigo mantido como reserva até você assinar. Depois ele sai de cada servidor e de cada imagem.
Quem faz o quê numa atualização
Achar cada API obsoleta e removida
Plataforma
Em todos os módulos e dependências transitivas, inclusive reflection e configuração XML que o compilador nunca vê.
Mudanças de código em massa
Plataforma
Troca de namespaces, substituição de APIs e atualização de sintaxe aplicadas na base inteira como pull requests revisáveis.
Substituir bibliotecas mortas
Engenheiro
Qual biblioteca assume o lugar de uma que parou no Java 8 ou no .NET Framework, ou se umas poucas linhas de código seu são mais seguras.
Fechar os achados de segurança
Os dois
A plataforma associa o relatório do scanner às correções. Os engenheiros verificam que cada achado fecha e que nada novo abre.
Paridade de comportamento
Os dois
A reexecução do tráfego gravado é automática. O seu lado assina quais diferenças são correções e quais seriam regressões.
Desempenho no novo runtime
Engenheiro
Garbage collector, pools de threads e inicialização ajustados no novo runtime e medidos sob carga de produção antes da virada.
Um codemod automático resolve a metade fácil de uma atualização. Aqui, cada mudança também passa por um engenheiro sênior e pela bancada de paridade antes da produção.
Quem faz a sua atualização
Os nossos engenheiros escrevem Java, .NET, Python e PHP de produção há mais de 25 anos, e entregaram sistemas nas versões que você está deixando. Eles sabem qual configuração XML do Spring para de carregar sem dar um pio, onde o .NET 8 serializa uma data de outro jeito e como o digest cycle do AngularJS escondeu uma condição de corrida por anos. Para uma atualização que troca o runtime e mantém cada resposta, são os melhores que você pode escalar.
Preço fechado por fase, com a data de aposentadoria do runtime antigo no contrato. A fase é aceita quando o relatório de paridade está limpo, e cada commit é seu assim que entra.
O que os líderes de engenharia nos perguntam
O nosso time pode continuar entregando funcionalidades durante a atualização?
Sim. Trabalhamos num branch rebaseado na sua main todo dia, e a plataforma reaplica as mudanças mecânicas sobre o que vocês fizeram merge. O seu roadmap continua andando enquanto a atualização chega por baixo. Peça o orçamento e o plano mostra como os merges fluem desde o primeiro dia.
Quase não temos testes. Como vocês provam que nada quebrou?
A bancada de paridade reexecuta tráfego de produção gravado contra a versão antiga e a nova e compara cada resposta, então os caminhos que os seus usuários percorrem ficam cobertos, existam testes ou não. Você recebe um relatório de diferenças por fase e assina antes da virada. Peça o orçamento: a bancada já está no preço.
AngularJS para React parece uma reescrita completa. É?
É uma reescrita do front-end, feita rota por rota dentro da aplicação em funcionamento, então os usuários veem as telas mudarem uma de cada vez, sem lançamento big-bang. A plataforma porta templates e controllers para componentes, e os engenheiros revisam cada um. O front-end inteiro está em React dentro dos 30 dias. Informe a quantidade de rotas e o preço volta em 48 horas.
O nosso framework chega ao fim de vida em breve. Ainda dá tempo?
Sim. A atualização leva 30 dias, então começar agora coloca você numa versão com suporte bem antes do prazo, e a sua próxima auditoria de segurança encontra um runtime atual. Peça o orçamento hoje e a data vai para o contrato.
Por que não deixar o nosso próprio time fazer a atualização?
Ele pode, e isso o tira do roadmap pelo tempo que durar. Nós trazemos uma plataforma que faz as mudanças mecânicas na base inteira de uma vez, mais engenheiros que já fizeram exatamente essa atualização. A sua equipe fica nas funcionalidades. Peça o orçamento e compare com o que o seu roadmap perderia.
Saia do runtime sem suporte
Diga hoje o framework, a versão e o prazo. Em 48 horas você tem um preço fechado e a ordem da atualização, e em 30 dias a produção roda num runtime com suporte, com o antigo apagado.
Números de versão e um tamanho aproximado do repositório bastam para dar o preço.