Nuevo lanzamiento de NGINX Unit 1.0

El pasado 12 de abril supuso un hito muy importante en el desarrollo de NGINX Unit, el nuevo y dinámico servidor de aplicaciones de NGINX. Es para nosotros un placer anunciar que, aproximadamente seis meses después de su primera versión pública, NGINX Unit está ya disponible y listo para su uso. NGINX Unit es la nueva iniciativa Open Source, liderada por Igor Sysoev, creador del software Open Source NGINX, utilizado en más de 409 millones de websites a nivel mundial. 

Me propuse crear un servidor de aplicaciones que se configurara de manera remota y dinámica, pudiendo cambiar de idioma o de una versión de aplicación a otra, de manera dinámica“, explica Igor. “Definí el cambio de configuración como el principal problema. La gente quiere reconfigurar los servidores sin interrumpir el procesamiento de negocio“.

NGINX Unit se configura dinámicamente utilizando un API REST; no hay un fichero de configuración estático. Todos los cambios de configuración ocurren directamente en memoria. Los cambios de configuración toman efecto sin necesitar recargas de procesos o interrupción del servicio.

NGINX Unit ejecuta múltiples lenguajes de manera simultánea

El cambio dinámico posibilita que podamos ejecutar varios lenguajes y versiones del mismo lenguaje, en un único servidor“, continúa Igor.

En la versión 1.0, NGINX Unit soporta Go, Perl, PHP, Python y Ruby en el mismo servidor. También se soportan múltiples versiones del mismo lenguaje, para que se pueda, por ejemplo, ejecutar aplicaciones escritas para PHP 5 y PHP 7 en el mismo servidor. El soporte de otros lenguajes adicionales está previsto para futuras versiones de NGINX Unit.

Igor estudió en la Universidad Técnica Estatal de Moscú, pionera en el programa espacial Ruso, y el 12 de abril tiene para él un significado especial. “Es el aniversario del primer vuelo espacial tripulado en la historia, realizado por Yuri Gagarin. La primera versión pública de NGINX[0.1.0], fue liberada el 4 de octubre de 2004, el aniversario del lanzamiento del Sputnik, y NGINX 1.0 fue publicado el 12 de abril de 2011.”

¿Qué es NGINX Unit?

NGINX Unit es servidor web y de aplicaciones dinámico, adecuado tanto para aplicaciones monolíticas como para arquitecturas de aplicaciones distribuidas y basadas en microservicios. Se ocupa de lanzar y escalar procesos de aplicación bajo demanda, ejecutando cada instancia de aplicación en su propia “sandbox” securizada.

NGINX Unit gestiona y enruta todas las transacciones de red hacia la aplicación mediante un proceso separado de enrutado, de tal manera que pueda implementar rápidamente cambios en la configuración sin interrumpir el servicio.

La configuración se define en formato JSON, de modo que los usuarios puedan editarla manualmente, y está especialmente indicada para scripting. Esperamos añadir capacidades a NGINX Controller y NGINX Amplify para que puedan también trabajar con la configuración de Unit“, explica Igor.

Ahora Unit puede ejecutar Python, PHP, Ruby, Perl y Go – cinco lenguajes. Por ejemplo, durante nuestra beta, uno de nuestros usuarios utilizó Unit para ejecutar un conjunto de diferentes versiones de plataformas PHP en un único host.” comenta Igor.

La capacidad de NGINX Unit para ejecutar varios runtime de diferentes lenguajes está basada en la separación interna entre los procesos de enrutado, que terminan las peticiones entrantes HTTP y los grupos de procesos de aplicación, los cuales implementan el runtime de la aplicación y ejecutan el código de la aplicación.

Arquitectura de NGINX Unit

El proceso de enrutado es persistente – nunca se reinicia – lo que significa que las actualizaciones de configuración pueden ser implementadas sin problemas, sin ninguna interrupción del servicio. Cada proceso de aplicación se despliega en su propio sandbox (con soporte para grupos de control Linux [cgroups], en desarrollo activo), así que NGINX Unit proporciona aislamiento seguro para el código de usuario.

¿Qué es lo próximo de NGINX Unit?

El siguiente hito para el equipo de desarrollo de NGINX Unit tras la liberación de la versión 1.0 está relacionado con la madurez de HTTP, el servicio de contenido estático y soporte de lenguajes adicionales.

Planeamos añadir SSL y capacidades HTTP/2 en Unit”, afirma Igor. “También, planeamos soportar enrutado en las configuraciones; actualmente tenemos un mapeo directo desde un puerto de escucha a una aplicación. Planeamos añadir enrutado utilizando URIs y nombres de host, etc…

Además, queremos añadir soporte a Unit para un número mayor de lenguajes. Estamos finalizando la implementación de Ruby, y después consideraremos añadir Node.js y Java. Java se añadirá en modo compatible con Tomcat“.

El objetivo final de NGINX Unit es crear una plataforma Open Source para aplicaciones distribuídas y políglotas que pudieran ejecutar código de aplicación de manera segura, robusta y con el mejor rendimiento posible. La plataforma se auto-gestionará con capacidades como autoescalado para cumplir SLAs con recursos restringidos, descubrimiento de servicios y balanceo interno de carga para hacer más fácil la creación de un “service mesh“.

NGINX Unit y NGINX Application Platform

Las plataformas NGINX Unit habitualmente contarán con una capa frontal de proxys inversos NGINX Open Source o NGINX Plus para proporcional ingress control, balanceo y seguridad. La plataforma completa (NGINX Unit y NGINX o NGINX Plus) pueden ser gestionadas por completo utilizando NGINX Controller para monitorizar, configurar y controlar la plataforma en su conjunto.

NGINX Application Platform es la visión de NGINX para construir microservicios

Estos tres componentes juntos – NGINX Plus, NGINX Unit, y NGINX Controller – configuran la NGINX Application Platform. Éste es un conjunto de productos que proporcionan balanceo de carga, cacheo, gestión de APIs, un WAF y servicio de aplicaciones, con paneles de control y gestión avanzados que simplifican las tareas de operación de aplicaciones monolíticas, basadas en microservicios y transicionales.

Cómo empezar con NGINX Unit

NGINX Unit es gratis y open source. Por favor, revise las instrucciones de instalación para comenzar a trabajar con este software. NGINX ha construido paquetes para la mayor parte de sistemas operativos, incluyendo Ubuntu y Red Hat Enterprise Linux. También está disponible una imagen de contenedor Docker en Docker Hub.

El código fuente está disponible en el repositorio Mercurial de NGINX y replicado en GitHub. El código está disponible bajo la licencia Apache 2.0. Se puede compilar NGINX Unit en los sistemas Linux y Unix más populares.

Si tiene alguna consulta que realizar, por favor, utilice el panel de dudas de GitHub o la lista de correo de NGINX Unit. A NGINX le encantará conocer cómo está utilizando NGINX Unit y también recibirá con agrado cualquier contribución.

NGINX extenderá el soporte de NGINX Unit a clientes de NGINX Plus con contratos Professional o Enterprise. El catálogo completo de servicios que podemos ofrecerle desde Hopla Software alrededor de productos NGINX están a su disposición en la página de NGINX.

Webinar: Optimize Application Execution with NGINX Unit

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.