El futuro de NGINX: volvemos a nuestras raíces de código abierto

NGINX | 23 de agosto de 2022

El tiempo vuela cuando uno se divierte. Por eso cuesta creer que NGINX ya tenga 18 años. Al echar la vista atrás, vemos que la comunidad y la empresa han logrado mucho juntas. Recientemente alcanzamos un hito muy importante: en el momento de escribir estas líneas, el 55,6 % de todos los sitios web utilizan NGINX (ya sea nuestro propio software o productos desarrollados sobre NGINX). También somos el servidor web número uno por cuota de mercado. Estamos muy orgullosos de ello y agradecidos de que vosotros, la comunidad de NGINX, nos hayáis dado este rotundo voto de confianza.

También somos cada vez más conscientes de que el software de código abierto sigue cambiando el mundo. Un porcentaje cada vez mayor de aplicaciones se crea utilizando código abierto. Desde los terminales y las noticias de Bloomberg hasta el Washington Post, pasando por Slack, Airbnb, Instagram y Spotify, miles de las marcas y plataformas más reconocidas del mundo confían en NGINX Open Source para hacer funcionar sus sitios web. En mi día a día —entre Zoom para las reuniones de trabajo y Netflix por la noche—, probablemente pase el 80 % del tiempo utilizando aplicaciones creadas sobre NGINX.

Imagen con el texto «El software de código abierto cambió el mundo» y los logotipos de destacados proyectos de código abierto

NGINX es solo una parte de la historia de éxito del código abierto. No podríamos construir el mundo digital —y, cada vez más, controlar y gestionar el mundo físico— sin todos esos increíbles proyectos de código abierto, desde Kubernetes y los contenedores hasta Python y PyTorch, y desde WordPress hasta Postgres y Node.js. El código abierto ha cambiado nuestra forma de trabajar. Hay más de 73 millones de desarrolladores en GitHub que, en conjunto, han fusionado más de 170 millones de solicitudes de incorporación de cambios (PR). Un enorme porcentaje de esas PR se ha realizado en repositorios de código con licencias de código abierto.

Nos entusiasma que NGINX haya desempeñado un papel tan fundamental en el auge y el éxito del código abierto, y tenemos la intención tanto de seguir impulsándolo como de devolver a la comunidad lo que nos ha aportado. Al mismo tiempo, debemos reflexionar sobre nuestro trabajo en el ámbito del código abierto y adaptarnos a la evolución constante del movimiento. Los modelos de negocio de las empresas que obtienen beneficios del código abierto han generado controversia en ocasiones. Por eso, NGINX siempre ha procurado dejar muy claro qué es de código abierto y qué es comercial. Ante todo, esto ha significado no intentar jamás cobrar por funcionalidades o prestaciones que ya hubiéramos incluido en las versiones de código abierto de nuestro software.

El código abierto evoluciona rápidamente. NGINX también.

Ahora somos conscientes de que debemos reflexionar seriamente sobre nuestro compromiso con el código abierto, aportar más valor y funcionalidades a nuestros productos de código abierto y, sí, mejorar también nuestra oferta comercial. No podemos seguir cobrando por lo mismo que antes, porque el mundo ha cambiado: algunas funcionalidades que solo incluíamos en nuestros productos comerciales son ahora requisitos básicos para los desarrolladores de código abierto. También sabemos que la seguridad del código abierto es una de las principales preocupaciones de los desarrolladores. Por ese motivo, nuestros proyectos de código abierto deben ser tan seguros como nuestros productos comerciales.

También tenemos que reconocer la realidad. Internamente, solíamos decir que el código abierto no estaba realmente preparado para entornos de producción porque carecía de funcionalidades o escalabilidad. Sin embargo, desde hace tiempo el mundo nos está demostrando que nos equivocábamos: miles de organizaciones utilizan el software de código abierto de NGINX en entornos de producción. Y eso es positivo, porque demuestra hasta qué punto confían en nuestras versiones de código abierto. Podemos aprovechar esa confianza.

De hecho, eso es precisamente lo que hacemos de forma constante con nuestros productos principales. A quienes dicen que la familia original de productos NGINX se ha quedado anticuada, les diría que no han seguido de cerca nuestra evolución:

  • En cuanto al software principal NGINX Open Source, seguimos añadiendo nuevas características y funcionalidades, así como compatibilidad con más plataformas de sistemas operativos. Dos capacidades fundamentales para la seguridad y la escalabilidad de las aplicaciones web y el tráfico, HTTP3 y QUIC, estarán disponibles en la próxima versión que lancemos.
  • Un rincón discreto pero increíblemente innovador del universo NGINX es NGINX JavaScript (njs), que permite a los desarrolladores integrar código JavaScript en el modelo de procesamiento de eventos de los módulos HTTP y TCP/UDP (Stream) de NGINX, así como ampliar la sintaxis de configuración de NGINX para implementar funcionalidades sofisticadas. Nuestros usuarios han hecho cosas realmente sorprendentes, desde innovadoras técnicas de purga de caché y manipulación de cabeceras hasta la compatibilidad con protocolos más avanzados como MQTTv5.
  • Nuestro servidor universal de aplicaciones web, NGINX Unit, fue concebido por el autor original de NGINX Open Source, Igor Sysoev, y continúa evolucionando. Unit ocupa un lugar importante en nuestra visión de las aplicaciones modernas y de una pila de aplicaciones moderna que va mucho más allá de nuestro enfoque principal en el plano de datos y la seguridad. A medida que desarrollamos Unit, estamos replanteándonos cómo deben diseñarse las aplicaciones para una web en constante evolución, con más funcionalidades nativas de la nube y concebidas para aplicaciones distribuidas y altamente dinámicas.

La arquitectura de referencia para aplicaciones modernas

Queremos seguir experimentando y avanzando en nuevas formas de ayudar a nuestra comunidad principal de desarrolladores a implementar aplicaciones modernas de manera más fácil y eficiente. El año pasado, en Sprint 2.0, anunciamos la arquitectura de referencia para aplicaciones modernas de NGINX (MARA), y me complace decir que recientemente alcanzó la disponibilidad general con la versión 1.0.0. MARA es un conjunto de herramientas cuidadosamente seleccionado y con un enfoque definido, que incluye Kubernetes y cuyos componentes hemos integrado para facilitar la implementación de la infraestructura y la arquitectura de aplicaciones como código. Con unos pocos clics, puede configurar e implementar una arquitectura de referencia MARA integrada con todo lo necesario para crear un entorno nativo de la nube y apto para producción: seguridad, registro, redes, servidor de aplicaciones, gestión de la configuración y de YAML, y mucho más.

Diagrama que muestra la topología de la arquitectura de referencia de aplicaciones modernas de NGINX

MARA es una arquitectura modular por diseño. Puede elegir su propia aventura y crear, a partir de los módulos existentes, una arquitectura de referencia personalizada capaz de ejecutar aplicaciones. La comunidad ha respaldado nuestra idea y hemos colaborado con varias empresas tecnológicas innovadoras en MARA. Sumo Logic ha aportado a MARA su experiencia en gestión de registros, mientras que Pulumi ha contribuido con módulos de automatización y orquestación de flujos de trabajo. Esperamos que, con MARA, cualquier desarrollador pueda poner en marcha en cuestión de minutos un entorno de Kubernetes completo, con todos los componentes auxiliares, seguro y listo para desplegar aplicaciones. Este es solo un ejemplo de cómo creo que todos podemos aunar esfuerzos para impulsar una gran iniciativa en el sector.

El futuro de NGINX: modernizar, optimizar y ampliar

Cada año, en NGINX Sprint, nuestra conferencia virtual de usuarios, asumimos nuevos compromisos para el año siguiente. Este año no es una excepción. Nuestras promesas para los próximos doce meses se resumen en tres palabras: modernizar, optimizar y ampliar. Queremos asegurarnos de que no sean meras palabras de moda en el mundo empresarial; contamos con programas sólidos para cada una de ellas y queremos que nos exijáis cumplir nuestras promesas.

Compromiso n.º 1: modernizar nuestro enfoque, nuestra presencia y la gestión de la comunidad

Evidentemente, estamos modernizando rápidamente nuestro código e introduciendo nuevos productos y proyectos. Pero la modernización no se limita al código: también abarca la gestión del código, la transparencia en la toma de decisiones y nuestra forma de participar en la comunidad. Aunque históricamente el código base de NGINX Open Source se ha gestionado mediante el sistema de control de versiones Mercurial, reconocemos que el mundo del código abierto se encuentra ahora en GitHub. De ahora en adelante, todos los proyectos de NGINX nacerán y se alojarán en GitHub, porque es allí donde trabajan las comunidades de desarrolladores y de código abierto.

También vamos a modernizar la forma en que gobernamos y gestionamos los proyectos de NGINX. Nos comprometemos a estar más abiertos a las contribuciones, ser más transparentes en nuestra gestión y mostrarnos más accesibles para la comunidad. Seguiremos todas las convenciones habituales del trabajo moderno con código abierto, renovaremos nuestra presencia en GitHub, añadiremos códigos de conducta a todos nuestros proyectos y prestaremos especial atención a los comentarios de la comunidad. Como parte de este compromiso con la modernización, vamos a añadir un canal de la comunidad de NGINX en Slack. Contaremos en el canal con nuestros propios expertos para responder a vuestras preguntas. Y vosotros, la comunidad, también estaréis allí para ayudaros mutuamente, en la herramienta de mensajería que ya utilizáis en vuestro trabajo diario.

Compromiso n.º 2: optimizar la experiencia de nuestros desarrolladores

Los desarrolladores son nuestros principales usuarios. Son quienes crean y desarrollan las aplicaciones que nos han convertido en lo que somos. Uno de nuestros principios siempre ha sido que NGINX es fácil de usar. Y, en esencia, es cierto: instalar, poner en marcha y configurar NGINX no lleva días. Dicho esto, podemos hacerlo mejor. Podemos acelerar el «tiempo de obtención de valor» que experimentan los desarrolladores con nuestros productos reduciendo la curva de aprendizaje y simplificando el proceso de configuración. Por «valor» me refiero a desplegar en producción código que aporte un valor real, sin más. Vamos a renovar nuestra experiencia para desarrolladores agilizando el proceso de instalación, mejorando nuestra documentación y ampliando y reforzando nuestros foros de la comunidad.

También vamos a lanzar una nueva oferta de SaaS que se integra de forma nativa con NGINX Open Source y que le permitirá sacarle partido y obtener valor en cuestión de segundos. No habrá que registrarse ni superar ningún tipo de barrera, y tampoco habrá muros de pago. Este SaaS será gratuito para siempre.

Además, reconocemos que muchas funciones esenciales que los desarrolladores consideran hoy en día imprescindibles se encuentran tras el muro de pago de NGINX Open Source y NGINX Plus. Por ejemplo, el descubrimiento de servicios DNS es fundamental para las aplicaciones modernas. Nuestro compromiso es ofrecer gratuitamente esas funciones esenciales incorporándolas a NGINX Open Source. Aún no hemos decidido todas las funciones que trasladaremos y queremos conocer vuestra opinión. Decidnos cómo podemos optimizar vuestra experiencia como desarrolladores. Os escuchamos.

Compromiso n.º 3: ampliar la potencia y las capacidades de NGINX

Por muy popular que sea NGINX hoy en día, sabemos que debemos seguir mejorando si queremos mantener la misma relevancia dentro de diez años. Nuestro ambicioso objetivo es crear una pila completa de aplicaciones NGINX y funcionalidades complementarias para gestionar y operar aplicaciones modernas a gran escala.

Hasta la fecha, NGINX se ha utilizado principalmente como plano de datos de capa 7. Sin embargo, para que funcione, los desarrolladores tienen que crear una gran cantidad de infraestructura auxiliar en torno a NGINX. Es necesario integrar funciones de automatización y CI/CD, configurar un registro adecuado, añadir autenticación y gestión de certificados, entre otras cosas. Queremos crear una extensión de NGINX mucho mejor, en la que todos los requisitos principales para probar e implementar una aplicación estén cubiertos por uno o varios componentes de código abierto de alta calidad que se integren perfectamente con NGINX. En resumen, queremos aportar valor en todas las capas de la pila y ofrecerlo de forma gratuita. Por ejemplo, si utiliza NGINX Open Source o NGINX Plus como puerta de enlace de API, queremos asegurarnos de que disponga de todo lo necesario para gestionar y escalar ese caso de uso: importación de API, descubrimiento de servicios, cortafuegos, reglas de políticas y seguridad; todo ello disponible como opciones de código abierto de alta calidad.

En resumen, nuestro sueño es crear un ecosistema en torno a NGINX que abarque todos los aspectos de la gestión y el despliegue de aplicaciones. MARA es el primer paso para crear ese ecosistema y queremos seguir atrayendo socios. Mi objetivo es que, para finales de 2022, una aplicación completamente preconfigurada pueda iniciarse y ejecutarse en cuestión de minutos en un entorno NGINX, equipada con un conjunto completo de funcionalidades —rastreo distribuido, registro, escalado automático, seguridad e integraciones de CI/CD— listas para desempeñar su función.

Presentamos Kubernetes API Gateway, un Amplify totalmente nuevo y NGINX Agent

Estamos comprometidos con todo esto. Y aquí tienen tres primeros pasos para cumplir mis tres promesas.

  1. A principios de este año lanzamos NGINX Kubernetes Gateway<.htmla>, basado en la arquitectura de referencia del SIG de la API Gateway de Kubernetes. Esto moderniza nuestra familia de productos y nos permite seguir el ritmo de la evolución constante de las tecnologías nativas de la nube. NGINX Kubernetes Gateway también es una especie de rama de olivo que tendemos a la comunidad. Reconocemos que complicamos las cosas al crear un controlador Ingress comercial y otro de código abierto para Kubernetes, ambos distintos de la solución Ingress de la comunidad (también basada en NGINX). La variedad de opciones confundió a la comunidad y nos dejó en una posición desfavorable. Está bastante claro que la API Gateway sustituirá al controlador Ingress en la arquitectura de Kubernetes. Por eso, estamos cambiando nuestro enfoque y convertiremos NGINX Kubernetes Gateway —que se ofrecerá únicamente como producto de código abierto— en el eje central de nuestros esfuerzos de redes para Kubernetes (en consonancia con la evolución del estándar). Además de integrarse con otros productos de NGINX y ampliar sus capacidades, optimizará la experiencia de los desarrolladores en Kubernetes.
  2. Hace unos años, lanzamos NGINX Amplify, una solución SaaS de monitorización y telemetría para flotas de NGINX. No le dimos mucha publicidad, pero miles de desarrolladores la descubrieron y siguen utilizándola hoy en día. Amplify era y sigue siendo gratuito. Como parte de nuestro compromiso con la modernización, estamos incorporando numerosas funciones nuevas a Amplify. Nuestro objetivo es convertirlo en su copiloto de confianza para desplegar, supervisar y gestionar productos NGINX a escala y en tiempo real. Amplify no solo monitorizará sus instancias de NGINX, sino que también le ayudará a configurar las implementaciones de NGINX, aplicarles scripts y solucionar problemas.
  3. Lanzamos NGINX Agent, una aplicación ligera que se implementa junto con las instancias de NGINX Open Source. Incluirá funciones que antes solo se ofrecían en productos comerciales, como la API de configuración dinámica. Con NGINX Agent, podrás utilizar NGINX Open Source en muchos más casos de uso y con mucha más flexibilidad. También incluirá controles mucho más detallados que podrás utilizar para ampliar tus aplicaciones e infraestructura. Agent te ayuda a tomar mejores decisiones sobre la gestión, la implementación y la configuración de NGINX. Estamos trabajando intensamente en NGINX Agent; permanece atento a nuestro blog, ya que en los próximos meses anunciaremos su disponibilidad.

De cara al futuro

Dentro de un año, espero que me preguntéis por estas promesas. Si no puedo informar de avances reales en las tres, exigidme que rinda cuentas. Y, por favor, tened en cuenta que estamos implicados y dispuestos a hablar con todos vosotros. Sois nuestra mejor hoja de ruta de producto. Os invitamos a responder a nuestra encuesta anual. Uníos al Slack de la comunidad de NGINX y contadnos qué opináis. Dejad comentarios y enviad solicitudes de incorporación de cambios (PR) en los proyectos de nuestro repositorio de GitHub.

Va a ser un año fantástico, el mejor de todos. Esperamos recibir más noticias vuestras y podéis contar con que también tendréis más noticias nuestras. Ayudadnos a ayudaros. Va a ser un año fantástico, el mejor de todos. Esperamos recibir más noticias vuestras y podéis contar con que también tendréis más noticias nuestras.


Compartir

Sobre el autor

Rob Whiteley
Rob WhiteleyDirector general del grupo de productos NGINX

Más artículos de Rob Whiteley

Artículos relacionados del blog

Únete a F5 NGINX en AppWorld 2024
NGINX | 04/01/2024

Únete a F5 NGINX en AppWorld 2024

Descubre las numerosas razones para asistir al evento insignia de F5, que incluirá un emocionante anuncio sobre la cartera de productos NGINX.

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source
NGINX | 26/09/2023

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source

La función de diccionario compartido permite configurar NGINX sin necesidad de reiniciarlo al renovar los certificados SSL/TLS.

Exposición de APIs en Kubernetes
NGINX | 10/03/2022

Exposición de APIs en Kubernetes

La unidad 2 de Microservices March 2022 se centra en cómo exponer tus API en Kubernetes. Aquí tienes enlaces a los recursos que necesitas: la retransmisión en directo del 14 de marzo, artículos de blog y otros recursos de preparación, y el laboratorio práctico «Protege las API de Kubernetes mediante la limitación de solicitudes».

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto
NGINX | 23/08/2021

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto

Hoy, en NGINX Sprint 2.0, anunciamos cómo respaldaremos nuestra visión del futuro de las aplicaciones modernas con una mayor presencia en la comunidad de código abierto, incluida la participación en el proyecto comunitario Kubernetes, nuevos proyectos de software de código abierto y la arquitectura de referencia para aplicaciones modernas.

Presentamos NGINX Plus R22
NGINX | 09/06/2020

Presentamos NGINX Plus R22

NGINX Plus R22 incorpora nuevas funcionalidades, como la compatibilidad con OCSP para verificar la revocación de certificados en TLS mutuo, el uso de varios proveedores de identidad OIDC en una configuración, el seguimiento en tiempo real de la limitación de solicitudes y conexiones en el panel de NGINX Plus y mejoras en NGINX JavaScript.

Presentamos NGINX Plus R17
NGINX | 11/12/2018

Presentamos NGINX Plus R17

NGINX Plus R17 incorpora compatibilidad con la limitación de velocidad en dos fases y con TLS 1.3, la versión más reciente del protocolo Transport Layer Security. La configuración de OpenID Connect es más sencilla y NGINX ModSecurity WAF es el doble de rápido que antes. También se ha actualizado el módulo JavaScript de NGINX.