BLOG | NGINX

Um guia para escolher um controlador Ingress, parte 3: Código aberto vs. Padrão vs. Comercial

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Jenn Gile
Jenn Gile
Publicado em 20 de setembro de 2021

Editor – Este post faz parte de uma série de 10 partes:

  1. Reduza a complexidade com o Kubernetes de nível de produção
  2. Como melhorar a resiliência no Kubernetes com gerenciamento avançado de tráfego
  3. Como melhorar a visibilidade no Kubernetes
  4. Seis maneiras de proteger o Kubernetes usando ferramentas de gerenciamento de tráfego
  5. Um guia para escolher um controlador Ingress, parte 1: Identifique seus requisitos
  6. Um guia para escolher um controlador Ingress, parte 2: Riscos e preparação para o futuro
  7. Um guia para escolher um controlador Ingress, parte 3: Código aberto vs. Padrão vs. Comercial (este post)
  8. Um guia para escolher um controlador Ingress, parte 4: Opções do controlador de entrada NGINX
  9. Como escolher uma malha de serviço
  10. Teste de desempenho de controladores de entrada NGINX em um ambiente de nuvem Kubernetes dinâmico

Você também pode baixar o conjunto completo de blogs como um e-book gratuito – Levando o Kubernetes do teste à produção .

Parabéns! Depois de ler as duas primeiras partes do nosso guia para escolher um controlador Ingress , você está quase pronto para selecionar um. Vamos recapitular onde estivemos até agora:

  • Na Parte 1 , discutiremos como identificar seus requisitos, incluindo desempenho, orçamento, casos de uso, arquitetura e propriedade.
  • Na Parte 2 , falamos sobre os riscos que você pode introduzir ao selecionar o controlador Ingress errado e destacamos as principais áreas onde você pode proteger sua seleção para o futuro.

Os controladores de entrada se dividem em três categorias: código aberto, padrão e comercial. Cada um tem seus casos de uso, e é importante ter clareza sobre suas necessidades de curto e longo prazo antes de fazer uma seleção. Neste blog, abordamos os prós e contras de cada categoria.

Controladores de entrada de código aberto

Muitos controladores Ingress de código aberto são mantidos por uma comunidade de usuários e desenvolvedores voluntários, embora alguns também tenham equipes de engenharia dedicadas. Dois dos controladores Ingress de código aberto mais populares são baseados no NGINX – um é mantido pela comunidade Kubernetes e o outro é liderado pela equipe de engenharia central do NGINX e de código aberto. Para mais comparações de controladores de entrada baseados em NGINX, consulte a Parte 4 da nossa série.

  • Prós:
    • Gratuito e orientado pela comunidade – Muitas pessoas e organizações escolhem projetos de código aberto não apenas pelo preço imbatível (grátis!), mas também porque preferem tecnologia desenvolvida pela comunidade.
    • Velocidade do recurso – Esses controladores Ingress têm maior probabilidade de estar na vanguarda da inovação de recursos.
  • Contras (compartilhado com projetos de código aberto em geral) :
    • Custo (tempo) – Eles não têm ferramentas prontas para uso para fácil configuração e escalabilidade, então você acaba gastando tempo em personalizações e soluções alternativas para suas necessidades específicas.
    • Arriscado – Pode haver problemas com estabilidade, segurança e confiabilidade (devido à ênfase na velocidade dos recursos e à natureza voluntária dos colaboradores). Patches para Vulnerabilidades e Exposições Comuns (CVEs) podem nunca chegar, ou podem chegar meses após o CVE ser divulgado publicamente, dando aos hackers bastante tempo para atacar seu controlador Ingress.
    • Suporte mínimo ou nenhum – A maioria é “auto-resolvida”… é só você e os médicos. Se você tiver problemas que não consegue resolver sozinho, pode ser difícil (ou impossível) obter ajuda. Sua única opção é postar seu problema em fóruns da comunidade e esperar que outros membros da comunidade (a) se preocupem em responder e (b) saibam de uma solução.
  • RESUMO: Quando as organizações começam a experimentar o Kubernetes, elas geralmente escolhem um controlador Ingress de código aberto, por conveniência ou porque a documentação promete que você pode começar a usar o Kubernetes rapidamente e de graça. Isso pode funcionar perfeitamente quando você está começando, em testes ou executando uma produção de baixo volume.

Controladores de entrada padrão

Embora muitos controladores Ingress padrão sejam baseados em tecnologia de código aberto, nós os categorizamos separadamente porque eles são desenvolvidos e mantidos por uma empresa que fornece uma plataforma Kubernetes completa (e geralmente oferece suporte para gerenciá-la). Exemplos desta categoria incluem controladores Ingress de nuvem pública, Rancher e roteador Red Hat OpenShift.

  • Prós:
    • Gratuito ou de baixo custo – O preço baixo é um motivo convincente para usar esses produtos. Eles já estão integrados à plataforma, o que certamente economiza tempo quando você está começando.
    • Confiáveis e com suporte – Como são mantidos por uma equipe de engenharia dedicada, eles podem ser mais confiáveis do que os controladores Ingress mantidos pela comunidade. O suporte comercial normalmente está incluído ou disponível por um custo extra.
  • Contras:
    • Bloqueio de infraestrutura – Os controladores de entrada padrão não são independentes de infraestrutura, então você não pode levá-los ou suas configurações de uma nuvem para outra. Isso significa que você precisa de diferentes controladores Ingress para cada ambiente de implantação, o que causa proliferação de ferramentas, aumenta a curva de aprendizado para suas equipes e torna o controlador Ingress mais difícil de proteger.
    • Recursos básicos – Geralmente não possuem os recursos avançados de gerenciamento de tráfego e segurança necessários para implantações em larga escala.
    • Custos imprevisíveis (tempo e dinheiro) – Embora os custos iniciais sejam nulos ou baixos, eles podem aumentar drasticamente e de forma imprevisível à medida que seu aplicativo cresce. Isso pode assumir a forma de tempo necessário para construir funcionalidades em seu aplicativo que estão faltando no conjunto mínimo de recursos do controlador Ingress – e, claro, você tem que fazer testes de regressão dessa funcionalidade toda vez que atualiza o aplicativo. Outra desvantagem de algumas ferramentas padrão são grandes saltos em sua conta de nuvem à medida que seu aplicativo se torna mais popular, devido a cobranças de throughput que parecem inócuas a princípio.
  • RESUMO: Um controlador Ingress padrão é uma escolha popular para equipes que são novas no Kubernetes e usam uma plataforma gerenciada, como Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Rancher e Red Hat OpenShift Container Platform . À medida que seus aplicativos amadurecem e as equipes crescem, as organizações geralmente optam por adicionar um controlador Ingress de nível empresarial à sua pilha, em vez de substituir a ferramenta padrão.

Controladores de entrada comerciais

Esses controladores Ingress são produtos licenciados projetados para oferecer suporte a grandes implantações de produção. Um exemplo é a versão baseada no NGINX Plus do F5 NGINX Ingress Controller , que discutiremos mais na Parte 4.

  • Prós:
    • Grande conjunto de recursos – Os controladores de entrada comercial incluem conjuntos de recursos robustos que oferecem suporte ao gerenciamento avançado de tráfego e escalabilidade para grandes implantações. Pode haver integrações com outros produtos de nível de produção, como um WAF ou malha de serviço.
    • Escalável – As organizações geralmente consideram essas opções uma economia de tempo, pois tendem a ter mais recursos prontos para uso que não exigem personalização ou soluções alternativas. Eles podem ser facilmente adicionados aos pipelines de automação para permitir que sua infraestrutura cresça conforme necessário.
    • Confiável e com suporte – Um dos principais benefícios dos produtos comerciais é que eles são estáveis, o que significa que são amplamente testados em cada lançamento, com atualizações regulares de software e patches de segurança conforme necessário. O suporte comercial completo geralmente está disponível em vários níveis, então você pode obter ajuda confidencial em minutos ou horas após encontrar um problema crítico.
  • Contras:
    • Desenvolvimento mais lento – Como a estabilidade é importante para controladores Ingress comerciais, sua velocidade de recursos pode ficar um pouco atrás de suas contrapartes de código aberto.
    • Custo (dinheiro) – A realidade dos produtos comerciais é que eles custam dinheiro. Para organizações que têm mais ciclos de desenvolvimento do que dinheiro, o custo pode ser um fator decisivo até que a situação mude.
  • RESUMO: À medida que as organizações crescem, a escolha do controlador Ingress se torna mais importante com base na complexidade de suas equipes e aplicativos. Quando uma organização atinge um alto grau de complexidade, um controlador Ingress comercial faz sentido porque pode reduzir a complexidade do gerenciamento e acelerar o tempo de colocação de novos recursos do produto no mercado.

Próximo passo: Avalie as opções

Nesta fase da sua jornada, você está pronto para escolher alguns controladores Ingress para testar, eliminando opções que não atendem às suas necessidades. Um ótimo lugar para começar sua comparação de recursos de alto nível é o learnk8s , que fornece uma tabela de comparação gratuita dos controladores Ingress que eles avaliaram.

Ao pesquisar controladores Ingress, você provavelmente notará que muitas opções são baseadas em NGINX. Para uma visão geral das escolhas baseadas em NGINX, confira o blog final desta série, Um guia para escolher um controlador Ingress, Parte 4: Opções do controlador NGINX Ingress , em breve.


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."