En el principio era el monolito. Fue útil para los desarrolladores de software durante mucho tiempo y todavía lo es para algunos casos de uso. Pero a medida que las aplicações crecieron, los monolitos se volvieron difíciles de desarrollar, proteger y mantener. Los microservicios aparecieron como una alternativa: el monolito se divide en servicios pequeños y autónomos que realizan una única función comercial y se comunican a través de una red para proporcionar la funcionalidad completa de la aplicação. Inicialmente, los desarrolladores web utilizaban SOAP como protocolo de comunicación y XML para codificar datos, pero muchos consideraban que la combinación era engorrosa y lenta. Esto inspiró un cambio hacia arquitecturas basadas en REST y la adopción generalizada de HTTP y JSON como protocolo y método de serialización de datos, respectivamente.
Pero como suele suceder con la tecnología, los desarrolladores siguieron buscando formas aún mejores de diseñar aplicações, por ejemplo para superar las limitaciones inherentes a la orientación basada en texto de SOAP y REST. Uno de estos sistemas es gRPC , que Google desarrolló para conectar su amplia gama de servicios independientes y autónomos. gRPC utiliza buffers de protocolo (protobufs) como mecanismo neutral en cuanto a plataforma y lenguaje para serializar datos estructurados, y HTTP/2 como protocolo de comunicación.
Entre las ventajas de gRPC sobre otros marcos de API se encuentran su rendimiento de baja latencia, compatibilidad con múltiples idiomas, representación compacta de datos y transmisión en tiempo real, todo lo cual lo hace especialmente adecuado para la comunicación entre microservicios y en redes de bajo consumo y bajo ancho de banda. La popularidad de gRPC ha aumentado significativamente en los últimos años porque facilita la creación de nuevos servicios de forma más rápida y eficiente, con mayor confiabilidad y escalabilidad, y con independencia del lenguaje tanto para los clientes como para los servidores.
Un ejemplo destacado de los beneficios de gRPC es la banca abierta , que utiliza tecnologías de código abierto para crear y entregar API, lo que permite a los desarrolladores externos ofrecer servicios adicionales a los clientes de un banco u otra institución financiera. Toda la base de la banca abierta se basa en el ideal de entregar información financiera de manera más efectiva y eficiente. gRPC ayuda a lograr este objetivo porque el formato compacto de los buffers de protocolo y la multiplexación en HTTP/2 hacen que la transferencia de una carga útil determinada sea mucho más rápida que con las API REST: aproximadamente 7 veces más rápido al recibir datos y 10 veces más rápido al enviar datos. Como resultado, las instituciones financieras están adoptando gRPC para sus comunicaciones entre servicios para brindar servicios más rápido y con mayor eficacia, confiabilidad y escala.
Un caso de uso específico en el que la velocidad de gRPC es una gran ventaja es el proceso de onboarding de clientes, que en la banca abierta es primordial para el éxito. Con otros marcos de API, crear una nueva cuenta puede resultar complicado y llevar mucho tiempo tanto para las instituciones financieras como para los clientes. Con gRPC, la transferencia rápida de datos significa que los clientes pueden crear una nueva cuenta en minutos. Esto aumenta enormemente la satisfacción del cliente y al mismo tiempo reduce sustancialmente los costos para la institución financiera.
El estándar gRPC y el formato de buffers de protocolo se implementan como una biblioteca de código abierto. Se considera que los buffers de protocolo son más seguros contra ciberataques que otras representaciones de datos, ya que el analizador de la biblioteca rechaza solicitudes malformadas y examina con más atención cómo se comporta la biblioteca.
Pero aún persisten algunas oportunidades desconcertantes de ataques contra gRPC. Por ejemplo, el analizador:
stream
uno de
los tipos compuestos y permite que haya más de un campo presenteUn atacante puede aprovechar estas brechas en el protocolo gRPC para comprometer una aplicação. Los buffers de protocolo también permiten la creación de campos que no están definidos en las definiciones de mensajes. Esto garantiza la extensibilidad del diseño, lo que permite la compatibilidad con futuras versiones extendidas de un mensaje, pero también puede hacer que las aplicações sean vulnerables a ataques de contrabando, en los que los atacantes incorporan campos en sus solicitudes que no están codificados explícitamente como permitidos en la aplicação.
NGINX App Protect está diseñado para proteger las aplicações modernas basadas en gRPC más cerca de la aplicação de servicio. Esto permite a los equipos de AppDev, DevOps y DevSecOps gestionar la seguridad de las aplicação como código y aprovechar las herramientas nativas.
Por ejemplo, NGINX App Protect garantiza que las instituciones financieras y sus servicios cumplan con los estándares de banca abierta al implementar gRPC para sus comunicaciones entre servicios. El motor de NGINX App Protect ejecuta una inspección profunda de los mensajes gRPC en las solicitudes de cable, analiza los mensajes del búfer de protocolo y detecta datos maliciosos en los encabezados y cargas útiles de los mensajes, incluso en todas las estructuras de datos anidadas y complejas. La inspección se realiza ante cualquier solicitud y aplica un mecanismo de detección de ataques para cada parámetro de llamada API.
Con las API de gRPC, se utiliza la interfaz de gRPC para establecer la política de seguridad en el archivo de biblioteca de tipos (archivo IDL) y los archivos de definición de prototipo para los buffers de protocolo. Cuando se cargan los archivos actualizados, NGINX App Protect comienza a aplicar inmediatamente las nuevas políticas de seguridad sin necesidad de realizar cambios en su configuración. Los archivos de protocolo gRPC se actualizan con frecuencia como parte de las canalizaciones de CI/CD, por lo que actualizar las políticas de seguridad no interrumpe ni agrega sobrecarga a sus procesos, y sus aplicações siempre están protegidas por la política más reciente y actualizada .
Además de proteger el tráfico de este a oeste entre microservicios basados en gRPC, NGINX App Protect protege el tráfico de norte a sur entre sus activos expuestos públicamente.
Si bien gRPC mejora la velocidad, la eficiencia y la escala de las comunicaciones de servicio a servicio , es fundamental proteger y asegurar los datos de API (URL, encabezados y cargas útiles) y los servicios de aplicação que exponen las API de gRPC. Es por eso que NGINX App Protect es vital para la arquitectura de su aplicação moderna.
Para obtener más información sobre gRPC con NGINX App Protect, mira nuestro video de lightboard:
Para obtener más información sobre la compatibilidad de gRPC en NGINX App Protect, consulte la documentación .
Para probar NGINX Plus y NGINX App Protect con sus API de gRPC, comience una prueba gratuita de 30 días o contáctenos para analizar sus casos de uso .
"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.