Mantén caliente el lado caliente y frío el lado frío.
Quizá recuerdes (si tienes edad suficiente; y no, no te preocupes, no te pediré que levantes la mano) una campaña de McDonald’s de hace años que promocionaba unos envases para algunos de sus productos que mantenían «la parte caliente caliente y la parte fría fría».

En realidad, el concepto era bastante sencillo: separar lo caliente de lo frío, pero mantenerlo todo en un único recipiente para facilitar su transporte.
Esa idea de separación dentro del mismo «contenedor» es, en realidad, la base de lo que hace que un proxy de aplicación sea, bueno, un proxy. Mantiene el lado del cliente como cliente y el lado de la aplicación… como aplicación.
Vale, puede que al final eso no quede tan bien traducido como me gustaría.
Aun así, el concepto es válido y es importante para entender qué es un proxy de aplicación.
Fundamentalmente, un proxy es un software que se sitúa lógicamente entre dos participantes en un intercambio de comunicaciones. Un proxy de aplicaciones se sitúa entre una aplicación y un cliente. Ahora bien, no todos los proxies son completos ; un proxy completo requiere una separación interna entre ambos lados; en esencia, un proxy completo contiene dos pilas de red independientes en un único dispositivo: el lado del cliente (el lado caliente) y el lado de la aplicación (el lado frío).

Lo sé, la analogía no está funcionando muy bien, ¿verdad? Sígueme el juego, es lo único que se me ocurre por ahora.
La razón por la que esto es (o debería ser) un requisito para un proxy de aplicaciones es que permite al proxy participar en el intercambio entre el cliente y el servidor. Esto es necesario para ofrecer funcionalidades como la minificación (que mejora el rendimiento de la aplicación), funciones de seguridad (como la depuración de datos) y la multiplexación TCP (optimización), además de una amplia gama de otros servicios.
Es en ese «espacio» interno entre el lado del cliente y el de la aplicación donde ocurre la magia. Ahí es donde todo tipo de servicios —desde el equilibrado de carga básico hasta los cortafuegos de aplicaciones avanzados y el control de acceso a las aplicaciones— desempeñan su función. En la práctica, las solicitudes finalizan en el lado del cliente de un proxy de aplicaciones. A continuación, tiene lugar un proceso muy similar al encadenamiento de servicios, con la diferencia de que todo sucede internamente a la velocidad del bus interno y del procesador (casi siempre superior a la velocidad de la red). Se realizan inspecciones. Se aplican políticas. Se llevan a cabo transformaciones. Se toman decisiones. Se establece una conexión independiente entre el proxy y la aplicación, y la solicitud sigue su curso.
Cuando esa solicitud vuelve al proxy, se produce el proceso inverso. Se lleva a cabo la inspección. Se depuran los datos. Se aplican las políticas. A continuación, vuelve al lado del cliente, desde donde puede transferirse de nuevo al cliente.
Y todo sucede en menos de un segundo porque se procesa íntegramente dentro del proxy.
Dado que la finalidad de un proxy de aplicaciones es ofrecer una amplia gama de servicios de aplicaciones —disponibilidad, seguridad, movilidad, identidad y acceso, y rendimiento—, debería ser un proxy completo. Solo un proxy completo está diseñado para intervenir en todas y cada una de las solicitudes y respuestas. Los proxies simples (que, si queremos entrar en detalles, son en realidad proxies sin estado) solo intervienen en la conversación inicial, cuando se establece la conexión entre el cliente y la aplicación. Su función es seleccionar una instancia de la aplicación y, a continuación, «empalmar» la conexión entre ambos. Después, el proxy deja de intervenir. Ve un «flujo» (una construcción TCP de capa 4 de la que quizá haya oído hablar al tratar sobre SDN, aunque ese es otro tema para otro momento) y se limita a reenviar paquetes en ambos sentidos, mezclando indiscriminadamente lo caliente y lo frío. (¿Lo ve? Sabía que la analogía acabaría funcionando).
Dicho todo esto, un proxy de aplicaciones moderno (y escalable) debería ser un proxy completo y contar con tres características clave: programabilidad, rendimiento y protocolos.
La programabilidad es fundamental en los centros de datos modernos y en la nube para facilitar la automatización, la orquestación y la estandarización. También es clave en la ruta de datos para habilitar funciones de seguridad y servicios que aporten un valor único al negocio y a las operaciones, así como para admitir protocolos personalizados y ampliar los existentes. El rendimiento puede parecer algo sencillo, pero no lo es. Dado que un proxy de aplicaciones interviene en todas y cada una de las solicitudes, no solo debe ser rápido, sino extremadamente rápido. Tiene que hacer lo que debe con rapidez, sin añadir al intercambio una latencia que arruine la experiencia de uso de la aplicación. Esto no es ni mucho menos tan fácil como parece, especialmente cuando existe tanta presión para utilizar recursos informáticos de propósito general como base para la implementación.
Por último, los protocolos son importantes. Lo primero que probablemente nos viene a la mente cuando decimos «aplicación» es HTTP. No es de extrañar: HTTP es el nuevo TCP y la lengua franca de Internet. Pero no es el único protocolo que se utiliza, especialmente en una era de comunicaciones a través de Internet. También están SIP y UDP. Por no hablar de SMTP (todavía envías correos electrónicos, ¿verdad?) y LDAP. ¿Y qué hay de SSL y TLS? Ante el creciente interés (y la urgencia) por implantar SSL Everywhere en todas partes, es aún más imprescindible que un proxy de aplicaciones sea compatible con SSL/TLS y lo domine a la perfección. De lo contrario, podría no cumplirse ese requisito de rendimiento.
Un proxy de aplicaciones puede proporcionar la plataforma que necesitan los centros de datos modernos para afrontar los retos de seguridad y rendimiento, automatizar y orquestar sus procesos con el fin de reducir los costes operativos y garantizar una experiencia óptima con las aplicaciones tanto para los consumidores como para los clientes empresariales. Pero debe ser un proxy de aplicaciones completo, con capacidad de programación, alto rendimiento y compatibilidad con distintos protocolos, para garantizar que ninguna aplicación se quede atrás.
Sobre el autor

Lori MacVittie es ingeniera distinguida y evangelista jefe en la Oficina del CTO de F5, y cuenta con una amplia experiencia en entrega de aplicaciones, estrategia de automatización e infraestructura. Es conocida por convertir la complejidad en claridad, ya sea definiendo mecanismos de protección para agentes de IA, analizando arquitecturas multinube frágiles o explorando los límites de los sistemas escalables. Aporta más de treinta años de experiencia en el sector en desarrollo de aplicaciones, arquitectura de TI y operaciones de redes y sistemas. Antes de incorporarse a F5, fue una galardonada editora de tecnología. MacVittie posee un máster en Informática y es una autora prolífica cuyas publicaciones abarcan la seguridad, la nube y la arquitectura empresarial. También es una apasionada de los juegos de mesa y los videojuegos, y expresa sin complejos sus firmes opiniones sobre el queso.
Más artículos de Lori Mac VittieArtículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.
Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.
Avanzar hacia la optimización digital tras la transformación
Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.
Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.
El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.
Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.