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:
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:
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.
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.
Siga los pasos de estas secciones para completar el tutorial:
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:
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;
Reinicie NGINX Plus, por ejemplo ejecutando este comando:
$ nginx -s recargar
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:
Haga clic en el botón + Crear para crear un nuevo espacio de trabajo, como se muestra en la Figura 2.
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.
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.
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.
Navegue a su espacio de trabajo y haga clic en el botón Crear entorno , como se muestra en la Figura 5.
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 ).
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.
Repita en cada instancia de NGINX Plus:
ssh
para conectarse e iniciar sesión en la instancia.Si el agente NGINX ya se está ejecutando, deténgalo:
$ systemctl detener nginx-agent
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:
-k
del comando curl
--no-check-certificate
del comando wget
<FQDN de NMS>
sustituya la dirección IP o el nombre de dominio completo de su servidor NGINX Management Suite.<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.
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.
Navegue a su espacio de trabajo y haga clic en el botón Crear entorno , como se muestra en la Figura 9.
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 ).
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.
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.
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 ).
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.
Repita en cada instancia de NGINX Plus:
ssh
para conectarse e iniciar sesión en la instancia.Si el agente NGINX ya se está ejecutando, deténgalo:
$ systemctl detener nginx-agent
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:
-k
del comando curl
--no-check-certificate
del comando wget
<FQDN de NMS>
sustituya la dirección IP o el nombre de dominio completo de su servidor NGINX Management Suite.<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).
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 .
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 .
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.
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.