O tempo voa quando estamos nos divertindo. Por isso, é difícil acreditar que o NGINX já tenha 18 anos. Olhando para trás, a comunidade e a empresa conquistaram muita coisa juntas. Recentemente, alcançamos um marco enorme — no momento em que este texto foi escrito, 55,6% de todos os sites usam NGINX (seja nosso próprio software ou produtos desenvolvidos com base no NGINX). Também somos o servidor web número um em participação de mercado. Temos muito orgulho disso e agradecemos a vocês, da comunidade NGINX, por esse voto de confiança tão expressivo.
Também reconhecemos, cada vez mais, que o software de código aberto continua transformando o mundo. Uma parcela cada vez maior dos aplicativos é desenvolvida com código aberto. Dos terminais e notícias da Bloomberg ao Washington Post, passando por Slack, Airbnb, Instagram e Spotify, milhares das marcas e plataformas mais conhecidas do mundo dependem do NGINX Open Source para manter seus sites em funcionamento. Na minha própria vida – entre o Zoom para reuniões de trabalho e a Netflix à noite –, provavelmente passo 80% do meu dia usando aplicativos desenvolvidos com base no NGINX.

O NGINX é apenas um dos elementos da história de sucesso do código aberto. Não seríamos capazes de construir o mundo digital — e, cada vez mais, de controlar e gerenciar o mundo físico — sem todos os incríveis projetos de código aberto, desde Kubernetes e contêineres até Python e PyTorch, passando por WordPress, Postgres e Node.js. O código aberto mudou a forma como trabalhamos. Há mais de 73 milhões de desenvolvedores no GitHub que, juntos, já fizeram merge de mais de 170 milhões de pull requests (PRs). Uma enorme porcentagem desses PRs foi feita em repositórios de código com licenças de código aberto.
Estamos muito felizes por a NGINX ter desempenhado um papel tão fundamental no crescimento e no sucesso do código aberto — e pretendemos não apenas dar continuidade a esse trabalho, mas também retribuir à comunidade. Ao mesmo tempo, precisamos refletir sobre nosso trabalho com código aberto e nos adaptar à evolução contínua do movimento. Os modelos de negócios de empresas que lucram com código aberto às vezes geram controvérsias. É por isso que a NGINX sempre procurou deixar muito claro o que é código aberto e o que é comercial. Acima de tudo, isso significa jamais tentar cobrar por funcionalidades ou recursos que já havíamos incluído nas versões de código aberto do nosso software.
O código aberto está evoluindo rapidamente. O NGINX também.
Agora percebemos que precisamos refletir seriamente sobre nosso compromisso com o código aberto, oferecer mais valor e recursos em nossos produtos de código aberto e, sim, elevar nosso nível também no âmbito comercial. Não podemos simplesmente continuar cobrando pelas mesmas coisas de antes, porque o mundo mudou – alguns recursos incluídos apenas em nossos produtos comerciais agora são requisitos básicos para desenvolvedores de código aberto. Também sabemos que a segurança do código aberto é uma das principais preocupações dos desenvolvedores. Por isso, nossos projetos de código aberto precisam ser tão seguros quanto nossos produtos comerciais.
Também precisamos reconhecer a realidade. Internamente, tínhamos o hábito de dizer que o software de código aberto não estava realmente pronto para uso em produção por não contar com determinados recursos ou escalabilidade. Há algum tempo, o mundo vem provando que estávamos errados nesse aspecto: milhares de organizações estão executando o software de código aberto NGINX em ambientes de produção. E isso é algo positivo, pois demonstra o quanto elas confiam em nossas versões de código aberto. Podemos aproveitar essa base.
Na verdade, fazemos isso constantemente com nossos principais produtos. Àqueles que dizem que a família original de produtos NGINX está ultrapassada, digo que vocês não têm acompanhado nosso trabalho de perto:
- Para o software principal NGINX Open Source, continuamos adicionando novos recursos e funcionalidades, além de oferecer suporte a mais plataformas de sistemas operacionais. Dois recursos essenciais para a segurança e a escalabilidade de aplicações e do tráfego da Web, HTTP3 e QUIC, estarão disponíveis na próxima versão que lançarmos.
- Um segmento discreto, mas incrivelmente inovador, do universo NGINX é o NGINX JavaScript (njs), que permite aos desenvolvedores integrar código JavaScript ao modelo de processamento de eventos dos módulos HTTP e TCP/UDP (Stream) do NGINX e ampliar a sintaxe de configuração do NGINX para implementar recursos sofisticados. Nossos usuários fizeram coisas realmente incríveis, desde soluções inovadoras para limpeza de cache e manipulação de cabeçalhos até o suporte a protocolos mais avançados, como o MQTTv5.
- Nosso servidor universal de aplicações web, NGINX Unit, foi concebido pelo autor original do NGINX Open Source, Igor Sysoev, e continua evoluindo. O Unit ocupa um lugar importante em nossa visão de aplicações modernas e de uma pilha de aplicações moderna que vai muito além do nosso foco principal no plano de dados e na segurança. À medida que desenvolvemos o Unit, estamos repensando como as aplicações devem ser arquitetadas para a Web em constante evolução, com mais recursos nativos da nuvem e projetados para aplicações distribuídas e altamente dinâmicas.
A arquitetura de referência para aplicações modernas
Queremos continuar experimentando e avançando na busca por maneiras de ajudar nossa principal comunidade de desenvolvedores a implantar aplicações modernas com mais eficiência e facilidade. No ano passado, no Sprint 2.0, anunciamos a Arquitetura de Referência para Aplicações Modernas da NGINX (MARA), e tenho a satisfação de dizer que ela recentemente passou a ter disponibilidade geral na versão 1.0.0. MARA é um conjunto selecionado de ferramentas com uma abordagem bem definida, incluindo o Kubernetes, que integramos para facilitar a implantação da infraestrutura e da arquitetura de aplicações como código. Com apenas alguns cliques, você pode configurar e implantar uma arquitetura de referência MARA integrada a tudo o que é necessário para criar um ambiente nativo da nuvem e pronto para produção: segurança, geração de logs, redes, servidor de aplicações, gerenciamento de configurações e YAML, entre outros recursos.

A MARA é uma arquitetura modular por definição. Você pode escolher seu próprio caminho e criar, a partir dos módulos existentes, uma arquitetura de referência personalizada capaz de executar aplicações de fato. A comunidade apoiou nossa ideia, e firmamos parcerias com diversas empresas de tecnologia inovadoras para desenvolver a MARA. A Sumo Logic agregou à MARA sua experiência em geração de logs, e a Pulumi contribuiu com módulos de automação e orquestração de fluxos de trabalho. Esperamos que, com a MARA, qualquer desenvolvedor consiga colocar um ambiente Kubernetes completo em funcionamento em questão de minutos, com todos os componentes de suporte, seguro e pronto para a implantação de aplicações. Este é apenas um exemplo de como acredito que todos podemos unir esforços para impulsionar uma grande iniciativa no setor.
O futuro do NGINX: modernizar, otimizar e ampliar
Todos os anos, no NGINX Sprint, nossa conferência virtual de usuários, assumimos novos compromissos para o ano seguinte. Este ano não é diferente. Nossas promessas para os próximos doze meses podem ser resumidas em três palavras: modernizar, otimizar e ampliar. Queremos garantir que elas não sejam apenas jargões corporativos; temos programas robustos para cada uma delas e queremos que vocês nos cobrem o cumprimento dessas promessas.
Promessa nº 1: modernizar nossa abordagem, presença e gestão da comunidade
Obviamente, estamos modernizando rapidamente nosso código e lançando novos produtos e projetos. Mas a modernização não se resume apenas ao código — ela abrange o gerenciamento do código, a transparência na tomada de decisões e a forma como nos apresentamos à comunidade. Embora, historicamente, a base de código do NGINX Open Source tenha usado o sistema de controle de versão Mercurial, reconhecemos que o mundo do código aberto agora está no GitHub. Daqui em diante, todos os projetos do NGINX serão criados e hospedados no GitHub, pois é lá que as comunidades de desenvolvedores e de código aberto trabalham.
Também vamos modernizar a forma como governamos e gerenciamos os projetos do NGINX. Comprometemo-nos a estar mais abertos a contribuições, ser mais transparentes em nossa gestão e mais acessíveis à comunidade. Seguiremos todas as convenções esperadas para projetos modernos de código aberto, reformularemos nossa presença no GitHub, adicionaremos Códigos de Conduta a todos os nossos projetos e prestaremos muita atenção ao feedback da comunidade. Como parte desse compromisso com a modernização, estamos adicionando um canal da Comunidade NGINX no Slack. Contaremos com nossos próprios especialistas no canal para responder às suas perguntas. E vocês, membros da comunidade, também estarão lá para ajudar uns aos outros – na ferramenta de mensagens que já usam no dia a dia profissional.
Promessa nº 2: otimizar a experiência dos desenvolvedores
Os desenvolvedores são nossos principais usuários. Eles desenvolvem e criam os aplicativos que fizeram de nós o que somos hoje. Nosso princípio sempre foi que o NGINX é fácil de usar. E isso é basicamente verdade: não são necessários vários dias para instalar, iniciar e configurar o NGINX. Ainda assim, podemos fazer melhor. Podemos acelerar o “tempo para geração de valor” que os desenvolvedores vivenciam com nossos produtos, reduzindo a curva de aprendizado e facilitando o processo de configuração. Por “valor”, quero dizer implantar em produção um código que faça algo realmente útil, ponto final. Vamos reformular nossa experiência do desenvolvedor, simplificando o processo de instalação, aprimorando nossa documentação e ampliando a abrangência e a relevância dos fóruns da nossa comunidade.
Também vamos lançar uma nova oferta de SaaS com integração nativa ao NGINX Open Source, que ajudará você a torná-lo útil e valioso em questão de segundos. Não será necessário se cadastrar, não haverá restrições de acesso nem paywall. Esse SaaS será gratuito para sempre.
Além disso, reconhecemos que muitos recursos essenciais, que os desenvolvedores hoje consideram indispensáveis, estão do lado errado da barreira de pagamento do NGINX Open Source e do NGINX Plus. Por exemplo, a descoberta de serviços DNS é essencial para aplicações modernas. Nosso compromisso é disponibilizar gratuitamente esses recursos essenciais, adicionando-os ao NGINX Open Source. Ainda não decidimos quais recursos serão transferidos e queremos ouvir sua opinião. Conte-nos como podemos otimizar sua experiência como desenvolvedor. Estamos ouvindo.
Compromisso nº 3: ampliar o poder e os recursos do NGINX
Por mais popular que o NGINX seja hoje, sabemos que precisamos continuar evoluindo se quisermos manter a mesma relevância daqui a dez anos. Nosso objetivo ambicioso é o seguinte: queremos criar uma stack completa de aplicações NGINX e recursos de suporte para gerenciar e operar aplicações modernas em escala.
Até o momento, o NGINX tem sido usado principalmente como um plano de dados de camada 7. No entanto, os desenvolvedores precisam criar muita infraestrutura de apoio em torno do NGINX para fazê-lo funcionar. É necessário integrar recursos de automação e CI/CD, configurar o registro adequado de logs, adicionar autenticação e gerenciamento de certificados, entre outras coisas. Queremos criar uma extensão muito melhor do NGINX, na qual todos os principais requisitos para testar e implantar um aplicativo sejam atendidos por um ou mais componentes de código aberto de alta qualidade que se integrem perfeitamente ao NGINX. Em resumo, queremos agregar valor a todas as camadas da stack e disponibilizar tudo gratuitamente. Por exemplo, se você usa o NGINX Open Source ou o NGINX Plus como gateway de API, queremos garantir que tenha tudo o que precisa para gerenciar e escalar esse caso de uso — importação de APIs, descoberta de serviços, firewall, regras de políticas e segurança —, tudo disponível como opções de código aberto de alta qualidade.
Em resumo, nosso sonho é criar um ecossistema em torno do NGINX que abranja todos os aspectos do gerenciamento e da implantação de aplicações. MARA é o primeiro passo para a criação desse ecossistema, e queremos continuar atraindo parceiros. Minha meta é que, até o final de 2022, uma aplicação totalmente pré-configurada possa ser iniciada e executada em questão de minutos em um ambiente NGINX, equipada com um conjunto completo de recursos – rastreamento distribuído, geração de logs, escalabilidade automática, segurança e integrações de CI/CD – todos prontos para cumprir suas funções.
Apresentamos o Kubernetes API Gateway, o novo Amplify e o NGINX Agent
Estamos comprometidos com tudo isso. E aqui estão três primeiros passos concretos para cumprir minhas três promessas.
- No início deste ano, lançamos o NGINX Kubernetes Gateway<.htmla>, baseado na arquitetura de referência do SIG da API Gateway do Kubernetes. Isso moderniza nossa família de produtos e nos mantém alinhados à evolução contínua das tecnologias nativas da nuvem. O NGINX Kubernetes Gateway também é uma espécie de gesto de conciliação que estamos fazendo à comunidade. Reconhecemos que complicamos as coisas ao criar um controlador Ingress comercial e outro de código aberto para Kubernetes, ambos diferentes da solução Ingress da comunidade (também desenvolvida com base no NGINX). A variedade de opções confundiu a comunidade e nos colocou em uma posição desfavorável. Está bastante claro que a API Gateway substituirá o controlador Ingress na arquitetura do Kubernetes. Por isso, estamos mudando nossa abordagem e faremos do NGINX Kubernetes Gateway – que será oferecido exclusivamente como um produto de código aberto – o foco de nossos esforços de rede para Kubernetes (em sintonia com a evolução do padrão). Ele será integrado a outros produtos NGINX, ampliará seus recursos e otimizará a experiência dos desenvolvedores no Kubernetes.
- Há alguns anos, lançamos o NGINX Amplify, uma oferta de SaaS de monitoramento e telemetria para frotas do NGINX. Não fizemos muita divulgação, mas milhares de desenvolvedores a encontraram e continuam usando-a até hoje. O Amplify sempre foi e continua sendo gratuito. Como parte do nosso compromisso com a modernização, estamos adicionando uma série de novos recursos ao Amplify. Nosso objetivo é torná-lo seu copiloto de confiança para implantar, monitorar e gerenciar produtos NGINX em escala e em tempo real. O Amplify não apenas monitorará suas instâncias do NGINX, mas também ajudará você a configurar, aplicar scripts e solucionar problemas em implantações do NGINX.
- Estamos lançando o NGINX Agent, um aplicativo leve que você implanta junto às instâncias do NGINX Open Source. Ele incluirá recursos que antes eram oferecidos apenas em produtos comerciais, como a API de configuração dinâmica. Com o NGINX Agent, você poderá usar o NGINX Open Source em muito mais casos de uso e com uma flexibilidade muito maior. Ele também incluirá controles muito mais granulares, que você poderá usar para ampliar seus aplicativos e sua infraestrutura. O Agent ajuda você a tomar decisões mais inteligentes sobre o gerenciamento, a implantação e a configuração do NGINX. Estamos trabalhando intensamente no NGINX Agent — fique de olho em nosso blog nos próximos meses para saber quando ele estará disponível!
Olhando para o futuro
Daqui a um ano, espero que vocês me perguntem sobre essas promessas. Se eu não puder relatar avanços concretos em todas as três, por favor, cobrem-me. E entendam: estamos comprometidos e prontos para conversar com todos vocês. Vocês são o nosso melhor roteiro de produto. Respondam à nossa pesquisa anual. Entrem no Slack da comunidade NGINX e digam o que pensam. Comentem e enviem PRs para os projetos em nosso repositório no GitHub.
Este será um ótimo ano, o melhor de todos. Esperamos ouvir mais de vocês, e podem contar que também terão mais notícias nossas. Ajudem-nos a ajudar vocês. Este será um ótimo ano, o melhor de todos. Esperamos ouvir mais de vocês, e podem contar que também terão mais notícias nossas.
Sobre o autor

Publicações relacionadas no blog

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
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
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
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
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
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.