<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: santos-edu</title>
    <description>The latest articles on DEV Community by santos-edu (@santosedu).</description>
    <link>https://dev.to/santosedu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2037177%2F81718b88-a08b-4db4-94a1-ca747b9231a5.jpeg</url>
      <title>DEV Community: santos-edu</title>
      <link>https://dev.to/santosedu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/santosedu"/>
    <language>en</language>
    <item>
      <title>Gateway API no EKS: O que muda com o fim do NGINX Ingress Controller</title>
      <dc:creator>santos-edu</dc:creator>
      <pubDate>Mon, 15 Dec 2025 15:45:37 +0000</pubDate>
      <link>https://dev.to/santosedu/gateway-api-no-eks-o-que-muda-com-o-fim-do-nginx-ingress-controller-597a</link>
      <guid>https://dev.to/santosedu/gateway-api-no-eks-o-que-muda-com-o-fim-do-nginx-ingress-controller-597a</guid>
      <description>&lt;p&gt;Se você usa EKS, provavelmente expõe aplicações com NGINX Ingress Controller e/ou AWS Load Balancer Controller usando Ingress tradicional. Mas há uma mudança importante chegando: o Kubernetes SIG-Network anunciou oficialmente a aposentadoria do Ingress NGINX.&lt;/p&gt;

&lt;p&gt;Nesse artigo, meu objetivo é explicar alguns conceitos novos e deixar mais claros quais passos podem ser seguidos, para cuidar bem de seus ambientes de produção.&lt;/p&gt;




&lt;h2&gt;
  
  
  O fim do NGINX Ingress Controller
&lt;/h2&gt;

&lt;p&gt;O Ingress NGINX está sendo oficialmente descontinuado. A manutenção termina em março de 2026 — após essa data, não haverá mais releases, bugfixes ou correções de segurança.&lt;/p&gt;

&lt;p&gt;A API Ingress do Kubernetes não está sendo descontinuada, apenas o NGINX Ingress Controller (a implementação). Você pode continuar usando a API Ingress com outros controllers como AWS Load Balancer Controller, Traefik, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Por que está sendo descontinuado?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dívida técnica insustentável (snippets NGINX que viraram vulnerabilidades)&lt;/li&gt;
&lt;li&gt;Sobrecarga de reload nas configurações do NGINX a cada mudança&lt;/li&gt;
&lt;li&gt;Uso excessivo de annotations específicas do controller&lt;/li&gt;
&lt;li&gt;Falta crítica de mantenedores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O projeto &lt;a href="https://github.com/kubernetes-sigs/ingate" rel="noopener noreferrer"&gt;InGate&lt;/a&gt; foi uma tentativa de resolver esses pontos negativos, mas sem o engajamento suficiente, não atingiu um estado maduro e também será descontinuado em 2026.&lt;/p&gt;

&lt;p&gt;Fonte: &lt;a href="https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/" rel="noopener noreferrer"&gt;Kubernetes Blog - Ingress NGINX Retirement&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Gateway API: A evolução do Ingress
&lt;/h2&gt;

&lt;p&gt;O Gateway API traz conceitos mais claros e separação de responsabilidades:&lt;/p&gt;

&lt;h3&gt;
  
  
  Componentes principais:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GatewayClass&lt;/strong&gt; - Define qual controller gerencia os gateways (similar ao IngressClass)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gateway&lt;/strong&gt; - Define o load balancer (ALB/NLB) e listeners&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTTPRoute&lt;/strong&gt; - Define as rotas HTTP (similar ao Ingress, mas mais poderoso)&lt;/p&gt;

&lt;h3&gt;
  
  
  Vantagens sobre o Ingress:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Separação clara de responsabilidades (infra vs aplicação)&lt;/li&gt;
&lt;li&gt;Suporte nativo a múltiplos namespaces&lt;/li&gt;
&lt;li&gt;Roteamento avançado (header matching, weighted routing, retries)&lt;/li&gt;
&lt;li&gt;Padrão da indústria, não específico do Kubernetes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Importante:&lt;/strong&gt; "Gateway API" aqui se refere ao Kubernetes Gateway API (substituição do Ingress), não ao Amazon API Gateway (produto AWS) nem ao conceito de API Gateway (Kong, Apigee, etc.). São coisas diferentes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Opções no EKS
&lt;/h2&gt;

&lt;p&gt;Assim como o Ingress precisava de um controller (NGINX, Traefik, etc.), o Gateway API também precisa de um GatewayClass instalado. No EKS, não há suporte nativo — você precisa escolher uma implementação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Se você usa ingress-nginx-controller
&lt;/h3&gt;

&lt;p&gt;Das opções de implementações com status GA (General Availability) em &lt;a href="https://gateway-api.sigs.k8s.io/implementations/" rel="noopener noreferrer"&gt;gateway-api.sigs.k8s.io/implementations&lt;/a&gt;, se destacam as opções &lt;a href="https://gateway.envoyproxy.io/" rel="noopener noreferrer"&gt;Envoy Gateway&lt;/a&gt; e &lt;a href="https://traefik.io/" rel="noopener noreferrer"&gt;Traefik Proxy&lt;/a&gt;. Explico:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Maturidade Open Source e amplo uso no mercado.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Aposta segura para longo prazo (Envoy Gateway): Baseado no proxy de facto do ecossistema Cloud Native (o mesmo do Istio) e gerido pela CNCF, garantindo inovação contínua sem vendor lock-in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplicidade Operacional (Traefik): Foca na Experiência do Desenvolvedor. Ele substitui o complexo "emaranhado de annotations" do NGINX por Middlewares (objetos CRDs reutilizáveis), tornando a gestão de regras muito mais limpa e visual.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ambas as opções têm similaridades com a arquitetura do NGINX Ingress Controller:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NLB como serviço gerenciado (L4)&lt;/li&gt;
&lt;li&gt;Proxy como pods no cluster (L7)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;OBS:&lt;/strong&gt; É muito comum usar em conjunto com o Ingress as ferramentas &lt;code&gt;external-dns&lt;/code&gt; e &lt;code&gt;cert-manager&lt;/code&gt;. Felizmente, elas vão continuar funcionando perfeitamente com o Gateway API, será necessário mudar apenas algumas configurações de uso.&lt;/p&gt;

&lt;h3&gt;
  
  
  Se você usa AWS Load Balancer Controller com Ingress hoje
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Continue usando Ingress.&lt;/strong&gt; Não faça a troca agora. O Ingress tradicional com AWS Load Balancer Controller está maduro, estável e pronto para produção.&lt;/p&gt;

&lt;p&gt;O AWS Load Balancer Controller já suporta Gateway API, mas ainda está em beta. Segundo a &lt;a href="https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/gateway/" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt;, o próprio time da AWS afirma:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The team is actively trying to close conformance and support gaps. Using the LBC and Gateway API together is not suggested for production workloads (yet!)"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Funciona?&lt;/strong&gt; Sim. Fiz uma POC funcional em laboratório e funciona bem para testes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Off-topic:&lt;/strong&gt; No GKE (Google Cloud), o Gateway API já está mais maduro e integrado nativamente, facilitando a adoção.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O Gateway API é a evolução natural do Ingress, mas no EKS ainda estamos em transição. Vale a pena se preparar para essa mudança, testando, conhecendo e planejando a parte mais difícil, que é levar as configurações atuais para uma nova família de APIs do Kubernetes. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Referências:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/" rel="noopener noreferrer"&gt;Ingress NGINX Retirement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/#history-and-challenges" rel="noopener noreferrer"&gt;Iniciativa InGate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gateway-api.sigs.k8s.io/" rel="noopener noreferrer"&gt;Gateway API Specification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/gateway/" rel="noopener noreferrer"&gt;AWS Load Balancer Controller - Gateway API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gateway.envoyproxy.io/" rel="noopener noreferrer"&gt;Envoy Gateway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gateway-api.sigs.k8s.io/implementations/" rel="noopener noreferrer"&gt;Gateway API Implementations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nginx</category>
      <category>eks</category>
      <category>kubernetes</category>
      <category>aws</category>
    </item>
    <item>
      <title>Recriando um game clássico com IA</title>
      <dc:creator>santos-edu</dc:creator>
      <pubDate>Thu, 03 Jul 2025 19:40:44 +0000</pubDate>
      <link>https://dev.to/santosedu/recriando-um-game-classico-com-ia-5hi5</link>
      <guid>https://dev.to/santosedu/recriando-um-game-classico-com-ia-5hi5</guid>
      <description>&lt;h2&gt;
  
  
  Este jogo foi desenvolvido para o desafio Build Games Challenge: &lt;a href="https://community.aws/content/2y6egGcPAGQs8EwtQUM9KAONojz/build-games-challenge-build-classics-with-amazon-q-developer-cli" rel="noopener noreferrer"&gt;Build Classics with Amazon Q Developer CLI.&lt;/a&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Jogo escolhido
&lt;/h1&gt;

&lt;p&gt;Escolhi o Gorillas, o primeiro jogo de PC que joguei. Ele envolve duas coisas que eu gostava: matemática e batalhas com explosivos.&lt;/p&gt;

&lt;h1&gt;
  
  
  Como a IA lidou com desafios clássicos
&lt;/h1&gt;

&lt;p&gt;A IA foi rápida e eficiente, basicamente abstraindo toda a complexidade técnica.&lt;/p&gt;

&lt;h1&gt;
  
  
  Técnicas de prompt eficazes
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Focar no resultado esperado foi o que mais me ajudou.&lt;/li&gt;
&lt;li&gt;É mais assertivo usar detalhes funcionais do que técnicos.&lt;/li&gt;
&lt;li&gt;Como não sou desenvolvedor, para mim isso foi muito positivo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/UckBEDFK1hA"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Repositório do código
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/santos-edu/gorillas" rel="noopener noreferrer"&gt;https://github.com/santos-edu/gorillas&lt;/a&gt;&lt;/p&gt;

</description>
      <category>amazonqcli</category>
      <category>buildgameschallenge</category>
      <category>amazonqdevcli</category>
    </item>
  </channel>
</rss>
