Similitudes y Diferencias Entre Angie y nginx#

25.08.2023

Cómo el proyecto Angie y el producto Angie PRO se relacionan con su predecesor, nginx, y su versión comercial NGINX Plus.

Angie frente a nginx Angie vs. nginx

Introducción#

Hoy hablaremos de un tema que entusiasma a todos los que están conociendo nuestro proyecto — cómo el proyecto Angie y el producto Angie PRO se relacionan con su predecesor, nginx, y su versión comercial NGINX Plus. Al leer publicaciones en el segmento ruso de Internet, vemos que estas cuestiones todavía se discuten activamente; intentaremos aclarar todo lo que genera particular interés.

TL;DR: no, no nos limitamos a cambiar la etiqueta.

Cómo se Relaciona Angie con nginx#

Desde el principio, Angie se ha posicionado como un fork de nginx. Este concepto (que no debe confundirse con "rama" — una rama de código) es quizás una de las piedras angulares del software de código abierto. Por otro lado, a menudo va acompañado de malentendidos y malas interpretaciones.

Un fork ocurre cuando un nuevo proyecto comienza basándose en un proyecto de código abierto, tomando prestado total o parcialmente el código de su predecesor. El préstamo en sí difícilmente debería plantear dudas: precisamente por eso los creadores inicialmente hacen el código abierto. Como dijo un clásico, "Que florezcan cien flores, que compitan cien escuelas de pensamiento".

El nuevo proyecto a menudo no está directamente relacionado con su predecesor: trabajan en él personas diferentes, y tienen su propia visión de futuro. Naturalmente, los forks son creados a menudo por antiguos participantes del proyecto que han abandonado el equipo. Otro caso típico es el desarrollo de un proyecto abierto con la participación de una empresa comercial: basta pensar en un ejemplo como MariaDB.

Al mismo tiempo, un fork no es una copia estática — si el código del predecesor está evolucionando, las mejoras y adiciones se filtran regularmente al nuevo proyecto también. Esto es exactamente lo que ocurre en Angie: con cada nueva versión, "incorporamos" cambios (a menudo significativos) que han ocurrido en la versión abierta de nginx.

Finalmente, señalamos que Angie no contiene ningún código de NGINX Plus, la versión comercial cerrada de nginx; además, no pretendemos hacer de nuestro servidor web de pago, Angie PRO, una copia funcional al cien por cien de NGINX Plus. Como dijo otro clásico, "Seguiremos un camino diferente".

Cómo Angie Sustituye a nginx#

Angie puede servir como un reemplazo completo para la versión abierta de nginx, proporcionando las mismas capacidades que la versión correspondiente de su predecesor (más sobre nuestras propias capacidades a continuación).

Al mismo tiempo, además de los sistemas operativos y arquitecturas de computación familiares, Angie se dirige conscientemente a plataformas para las que el nginx "oficial" no se compilará durante un tiempo: estas incluyen sistemas operativos certificados en Rusia, como ALT Linux, Astra Linux SE y RED OS, así como procesadores "Baikal" y "Elbrus".

Otra diferencia radica en nuestro enfoque de los módulos de terceros. Una de las ventajas que aseguró la popularidad de nginx fue su arquitectura extensible — cualquiera puede escribir un módulo que implemente nueva funcionalidad útil y publicarlo libremente para acceso abierto.

Con el tiempo, se ha formado en Internet todo un ecosistema de tales módulos de terceros; sin embargo, los usuarios tenían que ensamblarlos ellos mismos. Decidimos simplificar sus vidas y mantener un ensamblaje uniforme de paquetes listos para usar para un número de estos módulos en nuestros repositorios, utilizando nuestra experiencia y conocimiento.

Cómo Angie Mejora nginx#

Según los estándares de la industria del software, el proyecto nginx se creó hace bastante tiempo. Durante este tiempo, los usuarios han acumulado numerosas solicitudes que nos esforzamos por considerar a medida que desarrollamos Angie de acuerdo con las necesidades de la moderna infraestructura de TI dinámica; dicho simplemente, valoramos la velocidad, la facilidad de configuración, y la comodidad de monitoreo. Además, nuestro objetivo es apoyar estándares que son actuales y relevantes para nosotros.

Estándares y Certificación#

Nos adaptamos a las condiciones en las que operamos. Durante la existencia del proyecto, hemos:

  • desarrollo localizado en Rusia y entró en el Registro Unificado de Software Ruso para Máquinas de Computación Electrónica y Bases de Datos;

  • inició un trabajo activo para apoyar el cifrado de acuerdo con GOST;

  • implementado soporte para una serie de estándares de cifrado utilizados en China (y los autores de la biblioteca Tongsuo incluso recomiendan utilizarlo).

Velocidad#

Otro factor al que prestamos atención en nuestro trabajo es acelerar el servidor web eliminando retrasos innecesarios, así como adaptándonos rápidamente a condiciones de trabajo cambiantes. Hemos:

  • añadida una API de configuración dinámica y herramientas de direccionamiento DNS adaptativo, que ayudan a evitar las limitaciones estructurales del predecesor y cambiar la configuración más rápido sin uso excesivo de recursos;

  • implementado un mecanismo para vincular sesiones de usuario al servidor proxy, que amplía la aplicabilidad de Angie para diferentes escenarios de uso y ahorra recursos;

  • introducido comprobaciones activas de salud para servidores proxy, reduciendo la probabilidad de enviar una solicitud real a un servidor que no funciona; esto disminuye los retrasos en el procesamiento de solicitudes y mejora la calidad del servicio para los usuarios finales;

  • creada la capacidad de segmentar la caché del proxy, utilizando así de forma más eficiente todos los recursos del servidor.

Configurabilidad#

Otra área donde buscamos lograr mejoras es la flexibilidad y facilidad de configuración del servidor web. Hemos:

  • añadido la mencionada API de configuración dinámica para grupos de servidores proxy, que simplifica la integración de Angie con la infraestructura de TI moderna, así como configuraciones que permiten la adaptación dinámica a cambios en el direccionamiento DNS;

  • proporcionado una serie de otras configuraciones, menos extensas pero bastante útiles.

Observabilidad#

Finalmente, un aspecto importante del desarrollo de Angie para nosotros es monitorear el estado tanto del servidor web como de los servidores proxy. Hemos:

  • implementado en la API la capacidad de recuperar información básica sobre el servidor web, así como estadísticas de todos los aspectos clave de su operación en formatos modernos y populares;

  • introducido las comprobaciones activas de salud para servidores proxy, que monitorean autónomamente su estado operativo;

  • añadido una familia de configuraciones para recopilar estadísticas sobre sesiones de transferencia de datos y solicitudes de resolución de direcciones.

Conclusión#

Hemos esbozado brevemente qué hace a Angie distintiva y enumerado las principales prioridades para el desarrollo futuro del proyecto; daremos más detalles sobre nuestros planes futuros, así como nuestra versión del Controlador Ingress, por separado. Esperamos que ahora las similitudes y diferencias entre Angie y nginx planteen menos preguntas. ¡Gracias por estar con nosotros!