<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Migration | The .NET Blog</title><link>https://thedotnetblog.com/pt/tags/migration/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>pt</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/pt/tags/migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Removendo o Trabalho Repetitivo de Migração com Agentic Platform Engineering</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/</guid><description>Git-Ape conduz a migração de um deployment real do AWS Terraform para Azure Bicep — extraindo a intenção do deployment e remapeando a arquitetura em vez de fazer uma conversão sintática 1:1.</description><content:encoded>&lt;p&gt;&lt;em&gt;Esta publicação foi traduzida automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/all-things-azure/removing-the-monkey-work-of-migration-using-agentic-platform-engineering/"&gt;Removing the Monkey Work of Migration with Agentic Platform Engineering&lt;/a&gt; — um passo a passo do Git-Ape (ferramenta git de engenharia de plataformas agêntica) migrando um repositório Terraform real da AWS para o Azure, com foco na extração de intenção em vez de conversão linha por linha.&lt;/p&gt;
&lt;h2 id="a-entrada-contoso-migration"&gt;A entrada: contoso-migration&lt;/h2&gt;
&lt;p&gt;A fonte é um projeto Terraform real (&lt;code&gt;contoso-migration&lt;/code&gt;) que implanta um aplicativo Next.js na AWS — EC2 para computação, ALB para balanceamento de carga, S3 para artefatos e chaves IAM para identidade. Custo: ~$34/mês. O objetivo não é reproduzir a mesma infraestrutura no Azure; é descobrir o que o deployment está realmente tentando fazer e reconstruí-lo com serviços nativos do Azure.&lt;/p&gt;
&lt;h2 id="passo-1-validação-e-autenticação"&gt;Passo 1: Validação e autenticação&lt;/h2&gt;
&lt;p&gt;O Git-Ape começa validando todas as ferramentas CLI necessárias — &lt;code&gt;az&lt;/code&gt;, &lt;code&gt;aws&lt;/code&gt;, &lt;code&gt;gh&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt;, &lt;code&gt;git&lt;/code&gt; — e confirmando as sessões de autenticação ativas antes de tocar em qualquer coisa. Sem execuções parciais.&lt;/p&gt;
&lt;h2 id="passo-2-extração-de-intenção"&gt;Passo 2: Extração de intenção&lt;/h2&gt;
&lt;p&gt;O agente lê todo o repositório fonte pela API do GitHub e extrai a intenção do deployment: runtime (Node.js), tipo de computação, padrão de ingress, tratamento de artefatos, modelo de identidade, rede e monitoramento. Este é o passo-chave — está construindo um modelo semântico do que o deployment faz, não quais palavras-chave do Terraform ele usa.&lt;/p&gt;
&lt;h2 id="passo-3-mapeamento-de-serviços"&gt;Passo 3: Mapeamento de serviços&lt;/h2&gt;
&lt;p&gt;Os serviços AWS são mapeados para equivalentes do Azure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC2 → App Service (Linux, Node 20 LTS)&lt;/li&gt;
&lt;li&gt;ALB → Balanceamento de carga integrado do App Service&lt;/li&gt;
&lt;li&gt;Funções/chaves IAM → Managed Identity&lt;/li&gt;
&lt;li&gt;Terraform → Bicep + GitHub Actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="passo-4-agente-crítico"&gt;Passo 4: Agente crítico&lt;/h2&gt;
&lt;p&gt;Antes de gerar a saída, um agente crítico é executado e detecta dois problemas bloqueantes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Anti-padrão de build no startup&lt;/strong&gt; — o Terraform original estava executando &lt;code&gt;npm install &amp;amp;&amp;amp; npm run build&lt;/code&gt; no EC2 na inicialização. Solução: construir no CI, implantar um artefato pronto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blob Storage desnecessário&lt;/strong&gt; — o S3 era usado para staging de artefatos que poderia ser eliminado com CI/CD adequado. O agente crítico o removeu completamente.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="passo-5-saída-gerada"&gt;Passo 5: Saída gerada&lt;/h2&gt;
&lt;p&gt;O resultado são ~80 linhas de Bicep em vez das 200+ linhas originais de Terraform. O agente criou um novo repositório GitHub com &lt;code&gt;infra/main.bicep&lt;/code&gt; e &lt;code&gt;.github/workflows/deploy.yml&lt;/code&gt; e removeu todos os arquivos específicos da AWS.&lt;/p&gt;
&lt;h2 id="comparação-de-postura-de-segurança"&gt;Comparação de postura de segurança&lt;/h2&gt;
&lt;p&gt;A migração também produziu uma melhoria significativa de segurança:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;AWS original&lt;/th&gt;
&lt;th&gt;Saída Azure&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Somente HTTP&lt;/td&gt;
&lt;td&gt;Somente HTTPS, TLS 1.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSH aberto para 0.0.0.0/0&lt;/td&gt;
&lt;td&gt;Sem exposição SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chaves de acesso IAM&lt;/td&gt;
&lt;td&gt;OIDC + Managed Identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sem monitoramento&lt;/td&gt;
&lt;td&gt;Application Insights&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Custo: ~$13/mês vs os $34/mês originais.&lt;/p&gt;
&lt;h2 id="o-que-o-diferencia-de-um-conversor-de-sintaxe"&gt;O que o diferencia de um conversor de sintaxe&lt;/h2&gt;
&lt;p&gt;O passo do agente crítico é o que separa isso de uma tradução mecânica. Ele detectou padrões que teriam funcionado na AWS mas seriam incorretos no Azure — e os corrigiu em vez de replicá-los. A saída não é &amp;ldquo;AWS em sintaxe Azure&amp;rdquo;; é um deployment nativo do Azure que atinge o mesmo objetivo de forma mais limpa.&lt;/p&gt;
&lt;p&gt;Veja o &lt;a href="https://devblogs.microsoft.com/all-things-azure/removing-the-monkey-work-of-migration-using-agentic-platform-engineering/"&gt;guia completo&lt;/a&gt; para o rastreamento completo do agente e arquivos gerados.&lt;/p&gt;</content:encoded></item><item><title>A avaliação de modernização do GitHub Copilot é a melhor ferramenta de migração que você ainda não está usando</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</guid><description>A extensão de modernização do GitHub Copilot não sugere apenas mudanças de código — ela produz uma avaliação completa de migração com issues acionáveis, comparações de alvos Azure e um fluxo de trabalho colaborativo. Aqui explico por que o documento de avaliação é a chave de tudo.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este post foi traduzido automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Migrar uma aplicação legada do .NET Framework para .NET moderno é uma daquelas tarefas que todo mundo sabe que deveria fazer, mas ninguém quer começar. Nunca é apenas &amp;ldquo;mudar o target framework.&amp;rdquo; São APIs que desapareceram, pacotes que não existem mais, modelos de hosting que funcionam de forma completamente diferente, e um milhão de pequenas decisões sobre o que containerizar, o que reescrever e o que deixar como está.&lt;/p&gt;
&lt;p&gt;Jeffrey Fritz acabou de publicar um &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;mergulho profundo na avaliação de modernização do GitHub Copilot&lt;/a&gt;, e honestamente? Este é o melhor tooling de migração que eu vi para .NET. Não pela geração de código — isso já é padrão agora. Pelo documento de avaliação que ele produz.&lt;/p&gt;
&lt;h2 id="não-é-apenas-um-motor-de-sugestões-de-código"&gt;Não é apenas um motor de sugestões de código&lt;/h2&gt;
&lt;p&gt;A extensão do VS Code segue um modelo de &lt;strong&gt;Avaliar → Planejar → Executar&lt;/strong&gt;. A fase de avaliação analisa todo o seu codebase e produz um documento estruturado que captura tudo: o que precisa mudar, quais recursos Azure provisionar, qual modelo de deploy usar. Tudo que vem depois — infraestrutura como código, containerização, manifestos de deploy — flui do que a avaliação encontra.&lt;/p&gt;
&lt;p&gt;A avaliação é armazenada em &lt;code&gt;.github/modernize/assessment/&lt;/code&gt; no seu projeto. Cada execução produz um relatório independente, então você vai construindo um histórico e pode acompanhar como sua postura de migração evolui conforme corrige issues.&lt;/p&gt;
&lt;h2 id="duas-formas-de-começar"&gt;Duas formas de começar&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Avaliação Recomendada&lt;/strong&gt; — o caminho rápido. Escolha entre domínios curados (Upgrade Java/.NET, Cloud Readiness, Segurança) e obtenha resultados significativos sem mexer em configuração. Ótimo para um primeiro olhar de onde sua aplicação está.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avaliação Personalizada&lt;/strong&gt; — o caminho direcionado. Configure exatamente o que analisar: compute alvo (App Service, AKS, Container Apps), SO alvo, análise de containerização. Escolha múltiplos alvos Azure para comparar abordagens de migração lado a lado.&lt;/p&gt;
&lt;p&gt;Essa visão de comparação é genuinamente útil. Uma app com 3 issues obrigatórios para App Service pode ter 7 para AKS. Ver ambos ajuda a tomar a decisão de hosting antes de se comprometer com um caminho de migração.&lt;/p&gt;
&lt;h2 id="o-detalhamento-de-issues-é-acionável"&gt;O detalhamento de issues é acionável&lt;/h2&gt;
&lt;p&gt;Cada issue vem com um nível de criticidade:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Obrigatório&lt;/strong&gt; — deve ser corrigido ou a migração falha&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Potencial&lt;/strong&gt; — pode impactar a migração, precisa de julgamento humano&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opcional&lt;/strong&gt; — melhorias recomendadas, não bloqueiam a migração&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E cada issue linka para arquivos afetados e números de linha, fornece uma descrição detalhada do que está errado e por que importa para sua plataforma alvo, dá passos concretos de remediação (não apenas &amp;ldquo;corrija isso&amp;rdquo;), e inclui links para documentação oficial.&lt;/p&gt;
&lt;p&gt;Você pode atribuir issues individuais a desenvolvedores e eles têm tudo que precisam para agir. Essa é a diferença entre uma ferramenta que diz &amp;ldquo;tem um problema&amp;rdquo; e uma que diz como resolver.&lt;/p&gt;
&lt;h2 id="os-caminhos-de-upgrade-cobertos"&gt;Os caminhos de upgrade cobertos&lt;/h2&gt;
&lt;p&gt;Para .NET especificamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET Framework → .NET 10&lt;/li&gt;
&lt;li&gt;ASP.NET → ASP.NET Core&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada caminho de upgrade tem regras de detecção que sabem quais APIs foram removidas, quais padrões não têm equivalente direto, e quais issues de segurança precisam de atenção.&lt;/p&gt;
&lt;p&gt;Para times que gerenciam múltiplas aplicações, também há um CLI que suporta avaliações batch multi-repo — clone todos os repos, avalie todos, obtenha relatórios por app mais uma visão agregada do portfólio.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Se você está sentado em cima de aplicações legadas em .NET Framework (e vamos ser honestos, a maioria dos times enterprise está), esta é &lt;em&gt;a&lt;/em&gt; ferramenta para começar. Só o documento de avaliação já vale o tempo — transforma um vago &amp;ldquo;deveríamos modernizar&amp;rdquo; em uma lista concreta e priorizada de itens de trabalho com caminhos claros adiante.&lt;/p&gt;
&lt;p&gt;O fluxo de trabalho colaborativo também é inteligente: exporte avaliações, compartilhe com seu time, importe-as sem re-executar. Revisões de arquitetura onde quem toma decisões não é quem roda as ferramentas? Coberto.&lt;/p&gt;
&lt;h2 id="finalizando"&gt;Finalizando&lt;/h2&gt;
&lt;p&gt;A avaliação de modernização do GitHub Copilot transforma a migração .NET de um projeto assustador e indefinido em um processo estruturado e rastreável. Comece com uma avaliação recomendada para ver onde você está, depois use avaliações personalizadas para comparar alvos Azure e construir seu plano de migração.&lt;/p&gt;
&lt;p&gt;Leia o &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;walkthrough completo&lt;/a&gt; e baixe a &lt;a href="https://aka.ms/ghcp-appmod/vscode-ext"&gt;extensão do VS Code&lt;/a&gt; para testar no seu próprio codebase.&lt;/p&gt;</content:encoded></item></channel></rss>