Escalar contenedores implica mucho más que limitarse a colocar un proxy delante de un servicio y olvidarse. La escalabilidad no consiste únicamente en la distribución y, en el vertiginoso mundo de los contenedores, se requieren cinco capacidades específicas para garantizarla: reintentos, disyuntores, descubrimiento, distribución y supervisión.
En este artículo sobre el arte de escalar contenedores, profundizaremos en la distribución.
Distribución
El secreto para escalar cualquier cosa siempre ha dependido, en parte, de cómo se distribuyen las solicitudes entre un conjunto finito de recursos. Ni siquiera la nube y su aparentemente infinita capacidad de computación cambian esa fórmula. En el momento en que se recibe una solicitud, la lista de recursos que pueden aceptarla y procesarla es finita. Y punto.
Por tanto, la decisión de adónde dirigir una solicitud cobra bastante importancia. Si se envía al recurso equivocado, el rendimiento puede verse afectado. Si se envía al recurso adecuado, el consumidor o empleado quedará encantado con el resultado.
En los primeros tiempos del escalado, esas decisiones se basaban exclusivamente en algoritmos: turno rotatorio, menor número de conexiones y respuesta más rápida. Estos mecanismos de eficacia probada siguen existiendo hoy en día, pero poco a poco se han convertido en un factor más del proceso de toma de decisiones, en lugar de ser el único.
Esto se debe a que ya no dependemos únicamente de procesos de toma de decisiones basados en conexiones (es decir, el «balanceo de carga tradicional»). Cuando el balanceo de carga consistía principalmente en gestionar conexiones TCP, los esquemas de distribución basados en conexiones tenían sentido. Sin embargo, ahora la escalabilidad depende tanto de la arquitectura como de los algoritmos, y la distribución de solicitudes puede requerir un cálculo complejo que tenga en cuenta numerosas variables situadas, literalmente, por encima de los protocolos de capa 4 y más allá de estos.
La distribución se complica por el hecho de que las arquitecturas actuales están cada vez más distribuidas. No solo entre distintas nubes, sino también entre contenedores. Puede haber varias versiones de una misma aplicación (o API) en servicio al mismo tiempo. El sistema responsable de distribuir la solicitud debe conocerlas, ser capaz de distinguirlas y garantizar que se entregue al punto de conexión adecuado .
Hoy en día, las decisiones no se toman únicamente en función de la capacidad de conexión, sino cada vez más en función de parámetros de la capa 7 (HTTP): nombres de host, métodos de API (es decir, el URI), claves de API, encabezados HTTP personalizados con números de versión integrados, ubicación, dispositivo y usuario. Las solicitudes se evalúan en el contexto en el que se realizan y las decisiones se toman en microsegundos.

Hoy en día, la distribución requiere un enfoque arquitectónico por niveles. Cuanto más se profundiza en la arquitectura de la aplicación, menor es la granularidad. Cuando un proxy toma una decisión de balanceo de carga entre X clones del mismo microservicio, es muy posible que no utilice más que ecuaciones tradicionales basadas en algoritmos. Mientras tanto, en los límites exteriores del entorno, los controladores de entrada toman decisiones, a veces complejas, basadas en variables de la capa HTTP.
En el exterior, la distribución viene determinada por la arquitectura. En el interior, por los algoritmos.
Ambos son componentes fundamentales —quizá los más importantes— para escalar contenedores.
Ambos dependen de información precisa y en tiempo real sobre el estado (salud) de los recursos entre los que podrían distribuir las solicitudes. Abordaremos la monitorización en las próximas entradas de esta serie.
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.