BLOG | NGINX

Tutorial: Alta disponibilidad para API Gateways en entornos multicloud e híbridos

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Akash Ananthanarayanan
Akash Ananthanarayanan
Publicado el 20 de diciembre de 2022

Las implementaciones multicloud llegaron para quedarse. Según el informe Estado de la estrategia de aplicação en 2022 de F5, el 77 % de las empresas operan aplicações en múltiples nubes. La adopción de arquitecturas híbridas y de múltiples nubes genera importantes beneficios, como mayor eficiencia, menor riesgo de interrupciones y la posibilidad de evitar la dependencia de un solo proveedor. Pero estas arquitecturas complejas también presentan desafíos únicos.

Los líderes de software y TI encuestados por F5 nombraron estos como sus principales desafíos multicloud:

  • Visibilidad (45% de los encuestados)
  • Seguridad (44%)
  • Migración de aplicaciones (41%)
  • Optimización del rendimiento (40%)

La gestión de API para microservicios en entornos multicloud es especialmente compleja. Sin una estrategia de API holística, las API proliferan en entornos de nube pública, locales y perimetrales más rápido de lo que los equipos de operaciones de plataforma pueden protegerlas y administrarlas. A este problema lo llamamos proliferación de API y en una publicación anterior explicamos por qué es una amenaza tan importante.

Necesita una estrategia de API multicloud para poder implementar un enfoque inteligente para unificar sus microservicios (ahora distribuidos en múltiples nubes) y así garantizar la conectividad de extremo a extremo . Dos de los escenarios comunes para implementaciones híbridas y de múltiples nubes son:

  • Diferentes servicios en entornos multicloud/híbridos : es necesario operar diferentes aplicações y API en diferentes ubicaciones, tal vez por razones de rentabilidad o porque los distintos servicios son relevantes para distintos grupos de usuarios.
  • Los mismos servicios en entornos multicloud/híbridos : debe garantizar una alta disponibilidad para las mismas aplicações implementadas en diferentes ubicaciones.

En el siguiente tutorial mostramos paso a paso cómo utilizar API Connectivity Manager , parte de F5 NGINX Management Suite , en el segundo escenario: implementar los mismos servicios en múltiples entornos para alta disponibilidad. Esto elimina un único punto de falla en su entorno de producción híbrido o de múltiples nubes: si una instancia de puerta de enlace falla, otra instancia de puerta de enlace toma el control y sus clientes no experimentan una interrupción, incluso si una nube falla.

API Connectivity Manager es una solución nativa de la nube e independiente del tiempo de ejecución para implementar, administrar y proteger API. Desde un único panel, puede administrar todas sus operaciones de API para las puertas de enlace de API y los portales para desarrolladores de NGINX Plus implementados en entornos de nube pública, locales y perimetrales. Esto brinda a sus equipos de Platform Ops visibilidad completa del tráfico de API y facilita la aplicación de políticas de seguridad y gobernanza consistentes para cada entorno.

Habilitación de alta disponibilidad para API Gateways en una implementación multicloud

Como se mencionó en la introducción, en este tutorial configuramos API Connectivity Manager para lograr una alta disponibilidad de servicios que se ejecutan en múltiples entornos de implementación. En concreto, estamos implementando NGINX Plus como una puerta de enlace API que enruta el tráfico a dos servicios, Servicio A y Servicio B , que se ejecutan en dos nubes públicas, Google Cloud Platform (GCP) y Amazon Web Services (AWS). (La configuración se aplica igualmente a cualquier combinación de entornos de implementación, incluidos Microsoft Azure y centros de datos locales).

La figura 1 muestra la topología utilizada en el tutorial.

Topología con clientes que acceden a puertas de enlace API de alta disponibilidad implementadas en dos nubes
Figura 1: API Connectivity Manager permite la implementación de alta disponibilidad (HA) en múltiples nubes de puertas de enlace y servicios de API

Siga los pasos de estas secciones para completar el tutorial:

Instalar y configurar el Administrador de conectividad API

  1. Obtenga una suscripción de prueba o paga para NGINX Management Suite, que incluye Instance Manager y API Connectivity Manager junto con NGINX Plus como puerta de enlace de API y NGINX App Protect para proteger sus API. Comience una prueba gratuita de 30 días de NGINX Management Suite para comenzar .
  2. Instalar NGINX Management Suite . En la sección Módulos de Install Management Suite , siga las instrucciones para API Connectivity Manager (y opcionalmente otros módulos).
  3. Agregue la licencia para cada módulo instalado.
  4. (Opcional.) Configure la terminación TLS y mTLS para proteger las conexiones de los clientes a NGINX Management Suite y el tráfico entre las instancias de API Connectivity Manager y NGINX Plus en el plano de datos, respectivamente.

Implementar instancias de NGINX Plus como puertas de enlace de API

Seleccione los entornos que conforman su infraestructura multicloud o híbrida. Para el tutorial, elegimos AWS y GCP y estamos instalando una instancia de NGINX Plus en cada nube. En cada entorno, realice estos pasos en cada host del plano de datos que actuará como puerta de enlace de API:

  1. Instale NGINX Plus en un sistema operativo compatible .
  2. Instalar el módulo JavaScript de NGINX (njs).
  3. Agregue las siguientes directivas en el contexto principal (de nivel superior) en /etc/nginx/nginx.conf :

    módulo_de_carga módulos/ngx_http_js_module.so;módulo_de_carga módulos/ngx_stream_js_module.so;
    
  4. Reinicie NGINX Plus, por ejemplo ejecutando este comando:

    $ nginx -s recargar
    

Configurar un espacio de trabajo de infraestructura

Puede crear varios espacios de trabajo de infraestructura (hasta 10 al momento de escribir este artículo) en API Connectivity Manager. Con espacios de trabajo segregados puedes aplicar políticas y requisitos de autenticación/autorización específicos para diferentes líneas de negocio, equipos de desarrolladores, socios externos, nubes, etc.

Trabajando en la GUI de API Connectivity Manager, cree un nuevo espacio de trabajo:

  1. Haga clic en Infraestructura en la columna de navegación izquierda.
  2. Haga clic en el botón + Crear para crear un nuevo espacio de trabajo, como se muestra en la Figura 2.

    Figura 2: Creación de un nuevo espacio de trabajo de infraestructura
  3. En el panel Crear espacio de trabajo que se abre, complete el campo Nombre ( demostración en la Figura 3). Opcionalmente, complete el campo Descripción y los campos de la sección Información de contacto del espacio de trabajo . El administrador de infraestructura (su equipo de operaciones de plataforma, por ejemplo) puede usar la información de contacto para proporcionar actualizaciones sobre el estado o los problemas a los usuarios del espacio de trabajo.

    Figura 3: Nombrar un nuevo espacio de trabajo de infraestructura y agregar información de contacto
  4. Haga clic en el botón Crear .

Crear un entorno y clústeres de API Gateway

En API Connectivity Manager, un entorno es una agrupación lógica de recursos dedicados (como puertas de enlace de API o portales para desarrolladores de API). Puede crear varios entornos por espacio de trabajo (hasta 25 al momento de escribir este artículo); generalmente corresponden a diferentes etapas de desarrollo e implementación de aplicaciones, como codificación, prueba y producción, pero pueden cumplir cualquier propósito que desee.

Dentro de un entorno, un clúster de API Gateway es una agrupación lógica de instancias de NGINX Plus que actúan como puertas de enlace de API. Un solo entorno puede tener varios clústeres de API Gateway que comparten el mismo nombre de host (por ejemplo, api.nginx.com , como en este tutorial). Las instancias NGINX Plus en un clúster API Gateway pueden ubicarse en más de un tipo de infraestructura, por ejemplo, en múltiples nubes.

Hay dos formas de configurar un entorno en API Connectivity Manager para la alta disponibilidad activa-activa de las puertas de enlace de API:

El motivo principal para implementar varios clústeres de API Gateway es poder aplicar un conjunto diferente de políticas de seguridad a cada clúster.

En Implementar instancias de NGINX Plus como puertas de enlace de API , implementamos dos instancias de NGINX Plus: una en AWS y la otra en GCP. El tutorial utiliza las mismas instancias para ilustrar ambos tipos de entornos (con un solo clúster de API Gateway o con múltiples clústeres de API Gateway); si desea implementar ambos tipos de entornos en un solo espacio de trabajo, deberá crear instancias NGINX Plus adicionales para el segundo entorno.

Implementar un entorno con un clúster de API Gateway

Para un entorno con un clúster de API Gateway, las mismas políticas de seguridad se aplican a todas las instancias de API Gateway de NGINX Plus, como se muestra en la Figura 4.

Diagrama que muestra cómo se aplican las mismas políticas de seguridad a las puertas de enlace de API implementadas en un clúster de puerta de enlace de API en API Connectivity Manager
Figura 4: Las mismas políticas de seguridad se aplican a las API Gateways implementadas en un clúster de API Gateway
Crear un entorno y un clúster de API Gateway
  1. Navegue a su espacio de trabajo y haga clic en el botón Crear entorno , como se muestra en la Figura 5.

    Figura 5: Creación de un nuevo entorno en un espacio de trabajo de infraestructura
  2. En el panel Crear entorno que se abre, complete el campo Nombre ( prod en la Figura 6) y, opcionalmente, el campo Descripción , y seleccione el tipo de Entorno (aquí elegimos Prod ).

    Figura 6: Nombrar un nuevo entorno y asignarle un clúster de API Gateway
  3. En la sección Clústeres de API Gateway , complete los campos Nombre y Nombre de host ( api-cluster y api.nginx.com en la Figura 6).
  4. Haga clic en el botón Crear .

    Se abre el panel Entorno creado para mostrar el comando que debe ejecutar en cada instancia de NGINX Plus para asignarla al clúster de API Gateway. Para mayor comodidad, mostramos los comandos en el paso 7 a continuación.

Asignar instancias de API Gateway a un clúster de API Gateway

Repita en cada instancia de NGINX Plus:

  1. Utilice ssh para conectarse e iniciar sesión en la instancia.
  2. Si el agente NGINX ya se está ejecutando, deténgalo:

    $ systemctl detener nginx-agent
    
  3. Ejecute el comando de su elección ( curl o wget ) para descargar e instalar el paquete del Agente NGINX:

    • Si no habilitó mTLS en Instalar y configurar el Administrador de conectividad de API , agregue:

      • La bandera -k del comando curl
      • El indicador --no-check-certificate del comando wget
    • Para <FQDN de NMS>sustituya la dirección IP o el nombre de dominio completo de su servidor NGINX Management Suite.
    • Para <nombre_del_clúster>, sustituya el nombre del clúster de API Gateway (clúster de API en este tutorial).
    $ rizo [-k] https://<FQDN de NMS>/install/nginx-agent > install.sh && sudo sh -install.sh -g <nombre_del_clúster> && sudo systemctl start nginx-agent
    

    o

    $ wget [--certificado sin comprobación] https://<FQDN de NMS>/install/nginx-agent --no-check-certificate -O install.sh && sudo sh install.sh -g <nombre_del_clúster> && sudo systemctl start nginx-agent
    

    Las instancias de NGINX Plus ahora aparecen en la sección Instancias de la ventana Clúster para api-cluster , como se muestra en la Figura 7.

    Figura 7: Un único clúster de API Gateway agrupa instancias de NGINX Plus implementadas en múltiples nubes
  4. Proceder a aplicar políticas globales .

Implementar un entorno con varios clústeres de API Gateway

Para un entorno con varios clústeres de API Gateway, se pueden aplicar diferentes políticas de seguridad a diferentes instancias de API Gateway de NGINX Plus, como se muestra en la Figura 8.

Diagrama que muestra cómo se pueden aplicar diferentes políticas de seguridad a las puertas de enlace de API implementadas en clústeres de puertas de enlace de API separados en API Connectivity Manager
Figura 8: Se pueden aplicar diferentes políticas de seguridad a las API Gateways implementadas en
Clústeres de API Gateway separados
Crear un entorno y un clúster de API Gateway
  1. Navegue a su espacio de trabajo y haga clic en el botón Crear entorno , como se muestra en la Figura 9.

    Figura 9: Creación de un nuevo entorno en un espacio de trabajo de infraestructura
  2. En el panel Crear entorno que se abre, complete el campo Nombre ( prod en la Figura 10) y, opcionalmente, el campo Descripción , y seleccione el tipo de Entorno (aquí elegimos Prod ).

    Figura 10: Nombrar un nuevo entorno y asignarle el primer clúster de API Gateway
  3. En la sección Clústeres de API Gateway , complete los campos Nombre y Nombre de host (en la Figura 10, son aws-cluster y api.nginx.com ).
  4. Haga clic en el botón Crear .

    Se abre el panel Entorno creado para mostrar el comando que debe ejecutar en cada instancia de NGINX Plus para asignarla al clúster de API Gateway. Para su comodidad, mostramos los comandos en el paso 10 a continuación.

  5. Regrese a la pestaña Entorno y haga clic en el botón + Agregar en la esquina superior derecha de la sección Clústeres de API Gateway , como se muestra en la Figura 11.

    Figura 11: Cómo agregar otro clúster de API Gateway a un entorno
  6. En el panel Crear clúster de API Gateway , complete el campo Nombre con el nombre del segundo clúster ( gcp-cluster en la Figura 12) y el campo Nombre de host con el mismo nombre de host que para el primer clúster ( api.nginx.com ).

    Figura 12: Agregar el segundo clúster de API Gateway a un entorno

Los dos clústeres de API Gateway ahora aparecen en los clústeres de API Gateway para el entorno de producción , como se muestra en la Figura 13.

Figura 13: Lista de instancias de NGINX Plus implementadas en múltiples nubes y clústeres de API Gateway separados
Asignar instancias de API Gateway a un clúster de API Gateway

Repita en cada instancia de NGINX Plus:

  1. Utilice ssh para conectarse e iniciar sesión en la instancia.
  2. Si el agente NGINX ya se está ejecutando, deténgalo:

    $ systemctl detener nginx-agent
    
  3. Ejecute el comando de su elección ( curl o wget ) para descargar e instalar el paquete del Agente NGINX:

    • Si no habilitó mTLS en Instalar y configurar el Administrador de conectividad de API , agregue:

      • La bandera -k del comando curl
      • El indicador --no-check-certificate del comando wget
    • Para <FQDN de NMS>sustituya la dirección IP o el nombre de dominio completo de su servidor NGINX Management Suite.
    • Para <nombre_del_clúster>, sustituya el nombre del clúster de API Gateway apropiado (en este tutorial, clúster de AWS para la instancia implementada en AWS y clúster gcp para la instancia implementada en GCP).
    $ rizo [-k] https://<FQDN de NMS>/install/nginx-agent > install.sh && sudo sh -install.sh -g <nombre_del_clúster> && sudo systemctl start nginx-agent
    

    o

    $ wget [--certificado sin comprobación] https://<FQDN de NMS>/install/nginx-agent --no-check-certificate -O install.sh && sudo sh install.sh -g <nombre_del_clúster> && sudo systemctl start nginx-agent
    

    La instancia NGINX Plus apropiada ahora aparece en la sección Instancias de las ventanas Clúster para aws-cluster (Figura 14) y gcp-cluster (Figura 15).

    Figura 14: El primero de dos clústeres de API Gateway en un entorno que abarca varias nubes
    Figura 15: El segundo de dos clústeres de API Gateway en un entorno que abarca varias nubes

    Aplicar políticas globales

    Ahora puede agregar políticas globales que se apliquen a todas las instancias de NGINX Plus en un clúster de API Gateway. Por ejemplo, para proteger el acceso de los clientes a sus API, puede aplicar la política de parte autenticada de OpenID Connect o TLS Inbound . Para proteger la conexión entre una puerta de enlace API y el servicio backend que expone la API, aplique la política TLS Backend . Para obtener más información sobre las políticas TLS, consulte la documentación de API Connectivity Manager .

    1. Vaya a la pestaña Clúster de la API Gateway donde desea aplicar una política ( api-cluster en la Figura 16). Haga clic en el botón Administrar que se encuentra sobre la esquina derecha de la tabla Políticas .

      Figura 16: Administración de políticas para un clúster de API Gateway
    2. Haga clic en Políticas globales en la columna de navegación izquierda y, luego, en el ícono en la columna más a la derecha de la fila de la política ( TLS Backend en la Figura 17). Seleccione + Agregar política en el menú desplegable.

      Figura 17: Cómo agregar una política global a un clúster de API Gateway

    CONCLUSIÓN

    Gestionar arquitecturas híbridas y multicloud no es una tarea fácil. Son entornos complejos con aplicações que cambian rápidamente y que a menudo son difíciles de observar y proteger.

    Sin embargo, con las herramientas adecuadas, puede evitar quedarse atrapado en un solo proveedor y, al mismo tiempo, conservar la agilidad y la flexibilidad que necesita para ofrecer nuevas capacidades al mercado más rápidamente. Como herramienta nativa de la nube, API Connectivity Manager de NGINX le brinda la escalabilidad, visibilidad, gobernanza y seguridad que necesita para administrar las API en entornos híbridos y de múltiples nubes.

    Comience una prueba gratuita de 30 días de NGINX Management Suite , que incluye acceso a API Connectivity Manager , NGINX Plus como puerta de enlace de API y NGINX App Protect para proteger sus API.


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.