# 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 vs. nginx](../../_images/news/shodstva-i-razlichiya-angie-i-nginx.png)![Angie vs. nginx](../../_images/news/shodstva-i-razlichiya-angie-i-nginx.png)

## **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](https://angie.software/angie/docs/), 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](https://angie.software/angie/docs/installation/oss_packages/#install-dynamicmodules-oss/) 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:

- localizado el desarrollo en Rusia y entrado en el Registro Unificado de Software Ruso
  para Máquinas de Computación Electrónica y Bases de Datos;
- iniciado 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](https://github.com/Tongsuo-Project/Tongsuo/) incluso nos [recomiendan](https://github.com/Tongsuo-Project/Tongsuo#典型应用/)).

## 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ñadido 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;
- creado 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 mencionadas 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!
