Um guia para escolher um controlador de Ingress, parte 3: código aberto vs. padrão vs. comercial

NGINX | 20 de setembro de 2021

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

  1. Reduza a complexidade com Kubernetes pronto para produção
  2. Como melhorar a resiliência no Kubernetes com o 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. Guia para escolher um controlador de Ingress, Parte 1: identifique seus requisitos
  6. Guia para escolher um controlador de Ingress, Parte 2: Riscos e preparação para o futuro
  7. Um guia para escolher um controlador de Ingress, parte 3: código aberto vs. padrão vs. comercial (este post)
  8. Guia para escolher um controlador de Ingress, Parte 4: opções de controladores de Ingress da NGINX
  9. Como escolher uma malha de serviços
  10. Teste de desempenho de controladores de Ingress NGINX em um ambiente de nuvem Kubernetes dinâmico

Você também pode baixar a coleção completa de artigos 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 de Ingress, você está quase pronto para fazer sua escolha. Vamos recapitular o que vimos até agora:

  • Na Parte 1, discutimos como identificar seus requisitos, incluindo desempenho, orçamento, casos de uso, arquitetura e responsabilidade.
  • Na Parte 2, falamos sobre os riscos que você pode introduzir ao escolher o controlador de Ingress errado e destacamos as principais áreas em que você pode preparar sua escolha para o futuro.

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

Controladores de Ingress 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 contem com equipes de engenharia dedicadas. Dois dos controladores Ingress de código aberto mais populares são baseados no NGINX – um é mantido pela comunidade do Kubernetes, enquanto o outro é liderado pela equipe principal de engenharia do NGINX e disponibilizado como código aberto. Para uma comparação mais detalhada dos controladores Ingress baseados no NGINX, consulte a Parte 4 da nossa série.

  • Prós:
    • Gratuito e impulsionado 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 tecnologias desenvolvidas pela comunidade.
    • Velocidade de desenvolvimento de recursos – Esses controladores de Ingress têm maior probabilidade de estar na vanguarda da inovação em recursos.
  • Desvantagens (comuns a projetos de código aberto em geral):
    • Custo (tempo) – Elas não contam com ferramentas prontas para uso que facilitem a configuração e a escalabilidade, então você acaba gastando tempo com personalizações e soluções alternativas para atender às suas necessidades específicas.
    • Arriscado – Pode haver problemas de estabilidade, segurança e confiabilidade (devido à ênfase na rapidez de lançamento de recursos e à natureza voluntária dos colaboradores). As correções para Vulnerabilidades e Exposições Comuns (CVEs) podem nunca chegar ou podem levar meses para chegar após a divulgação pública da CVE, dando aos hackers tempo de sobra para atacar seu controlador de Ingress.
    • Suporte mínimo ou inexistente – Na maioria dos casos, você precisa resolver tudo por conta própria… é só você e a documentação. Se você tiver problemas que não consegue resolver sozinho, pode ser difícil (ou impossível) obter ajuda – praticamente sua única opção é publicar o problema em fóruns da comunidade e torcer para que outros membros (a) se disponham a responder e (b) conheçam uma solução.
  • Resumo: Quando as organizações começam a experimentar o Kubernetes, muitas vezes escolhem um controlador de Ingress de código aberto por conveniência ou porque a documentação promete que é possível começar a usá-lo rapidamente e de graça. Isso pode funcionar muito bem na fase inicial, em testes ou em ambientes de produção com baixo volume.

Controladores de Ingress padrão

Embora muitos controladores Ingress padrão sejam baseados em tecnologia de código aberto, nós os classificamos separadamente porque são desenvolvidos e mantidos por uma empresa que oferece uma plataforma Kubernetes completa (e, muitas vezes, suporte para gerenciá-la). Alguns exemplos dessa categoria são os controladores Ingress de nuvens públicas, o Rancher e o roteador do Red Hat OpenShift.

  • Prós:
    • Grátis ou de baixo custo – O preço baixo é um motivo convincente para usar esses produtos. Eles já vêm 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 de Ingress mantidos pela comunidade. O suporte comercial geralmente está incluído ou disponível por um custo adicional.
  • Desvantagens:
    • Dependência de infraestrutura – Os controladores de Ingress padrão não são independentes de infraestrutura, portanto, não é possível transferi-los nem transferir suas configurações de uma nuvem para outra. Isso significa que você precisa de controladores de Ingress diferentes para cada ambiente de implantação, o que leva à proliferação de ferramentas, aumenta a curva de aprendizado das suas equipes e dificulta a proteção do controlador de Ingress.
    • Recursos básicos – Geralmente, eles não contam com 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 de forma drástica e imprevisível à medida que sua aplicação cresce. Isso pode se traduzir no tempo necessário para implementar em sua aplicação funcionalidades que não fazem parte do conjunto mínimo de recursos do controlador Ingress – e, é claro, você precisa realizar testes de regressão nessas funcionalidades sempre que atualizar a aplicação. Outra desvantagem de algumas ferramentas padrão são os enormes aumentos na sua fatura de serviços de nuvem à medida que sua aplicação se torna mais popular, devido a cobranças por taxa de transferência que, a princípio, parecem inofensivas.
  • Resumo: Um controlador de Ingress padrão é uma escolha popular para equipes que estão começando a usar o Kubernetes e utilizam uma plataforma gerenciada, como o Amazon Elastic Kubernetes Service (EKS), o Google Kubernetes Engine (GKE), o Microsoft Azure Kubernetes Service (AKS), o Rancher e o Red Hat OpenShift Container Platform. À medida que seus aplicativos amadurecem e as equipes crescem, as organizações geralmente optam por adicionar um controlador de Ingress de nível empresarial à sua stack, em vez de substituir a ferramenta padrão.

Controladores de Ingress comerciais

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

  • Prós:
    • Amplo conjunto de recursos – Os controladores de Ingress comerciais incluem conjuntos robustos de recursos que oferecem suporte ao gerenciamento avançado de tráfego e à escalabilidade para implantações de grande porte. Também pode haver integrações com outros produtos de nível de produção, como um WAF ou uma malha de serviços.
    • Escalável – As organizações geralmente consideram essas opções uma forma de economizar tempo, pois elas costumam oferecer mais recursos prontos para uso, que não exigem personalização nem soluções alternativas. Elas podem ser facilmente adicionadas a pipelines de automação, permitindo que sua infraestrutura cresça conforme necessário.
    • Confiáveis e com suporte – Um dos principais benefícios dos produtos comerciais é sua estabilidade, o que significa que eles são amplamente testados a cada versão e recebem atualizações regulares de software e correções de segurança conforme necessário. O suporte comercial completo geralmente está disponível em vários níveis, permitindo que você receba ajuda confidencial poucos minutos ou horas após se deparar com um problema crítico.
  • Desvantagens:
    • Desenvolvimento mais lento – Como a estabilidade é importante para controladores de Ingress comerciais, o ritmo de lançamento de novos recursos pode ser um pouco mais lento do que o de seus equivalentes de código aberto.
    • Custo (dinheiro) – A realidade dos produtos comerciais é que eles custam dinheiro. Para organizações que têm mais tempo de desenvolvimento do que recursos financeiros, o custo pode ser um fator decisivo até que essa situação mude.
  • Resumo: À medida que as organizações crescem, a escolha do controlador de Ingress se torna mais importante, dependendo da complexidade de suas equipes e aplicações. Quando uma organização atinge um alto grau de complexidade, faz sentido adotar um controlador de Ingress comercial, pois ele pode reduzir a complexidade do gerenciamento e acelerar o lançamento de novos recursos de produto no mercado.

Próxima etapa: avalie as opções

Nesta etapa da sua jornada, você já pode selecionar alguns controladores Ingress para testar, eliminando as opções que não atendem às suas necessidades. Um ótimo ponto de partida para uma comparação geral dos recursos é o learnk8s, que disponibiliza uma tabela comparativa gratuita dos controladores Ingress que eles avaliaram.

Ao pesquisar sobre controladores Ingress, você provavelmente perceberá que muitas opções são baseadas no NGINX. Para ter uma visão geral das alternativas baseadas no NGINX, confira o último artigo desta série, Guia para escolher um controlador Ingress, Parte 4: opções de controladores Ingress do NGINX, que será publicado em breve.


Compartilhar

Sobre o autor

Jenn Gile
Jenn GileDiretor de Marketing de Produto, NGINX

Mais publicações de Jenn Gile

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
NGINX | 10/10/2024

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade

Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
NGINX | 17/06/2024

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa

Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
NGINX | 14/07/2021

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor

Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
NGINX | 02/04/2019

Distribuição segura de chaves privadas SSL com o NGINX

Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
NGINX | 24/05/2018

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX

O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
NGINX | 19/04/2016

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus

Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.