Akamai es uno de los proveedores de redes de distribución de contenido (CDN) líderes en el mundo. A través de Akamai Intelligent Platform, se ofrecen muchos productos para ayudar al rendimiento, la disponibilidad, la seguridad y la generación de información.
Otros CDN incluyen Cloudflare, Fastly, MaxCDN, Incapsula y Rackspace.
Aquí veremos qué es una CDN, luego algunos detalles sobre la implementación de Akamai, que incluyen:
- La plataforma inteligente de Akamai y los servidores perimetrales
- La interfaz de Akamai y el administrador de propiedades
- Rendimiento de enrutamiento
- Almacenamiento en caché
¿Qué es una CDN?
La solicitud de un usuario de contenido en la Internet pública puede parecer simple, conectarse al servidor que contiene el contenido (el 'origen del contenido') y devolverlo al usuario, pero de hecho es muy complejo.

Es posible que la conexión deba pasar por muchos proveedores de servicios de Internet (ISP), puntos de intercambio y centros de datos, a través de redes competidoras, y no tenga rutas disponibles de manera constante.
Se pueden usar muchos tipos de dispositivos y anchos de banda diferentes, desde diferentes ubicaciones globales, con diferentes tipos de contenido solicitados.
Esto puede llevar a una velocidad y disponibilidad fluctuantes, desafíos de seguridad y poca visibilidad de lo que está sucediendo entre el usuario y el origen del contenido.
Una CDN pone más control en manos del proveedor de contenido y ayuda a mejorar la experiencia del usuario final.
Lo hace actuando como una red paralela de alto rendimiento, manteniendo su propia red de servidores altamente distribuidos. Al estar disperso en muchas ubicaciones físicas y de red, pero optimizado como una red, existe más control y confiabilidad para las solicitudes de los usuarios.
A medida que una empresa crece, escalar para satisfacer mayores demandas en el origen del contenido también presenta desafíos. También veremos cómo se pueden usar las herramientas CDN para reducir la carga en el origen, lo que ayuda no solo a mejorar el rendimiento, sino también a reducir los costos al reducir la altura a la que se debe escalar el origen.
Plataforma inteligente de Akamai
Akamai mantiene una red global de más de 240.000 'servidores de borde'. Estos se colocan en el "borde" de Internet, lo más cerca posible de los usuarios finales. Para lograr esto, muchos servidores de borde se encuentran incluso directamente en ISP, o en torres de datos móviles, para reducir aún más la latencia entre la conexión al ISP de un usuario antes de pasar a la red de Akamai.

Cuando un usuario realiza una solicitud, Akamai la asigna dinámicamente al servidor perimetral disponible más cercano. El servidor perimetral aplica las reglas comerciales que ha especificado el proveedor de contenido, antes de utilizar la mejor ruta disponible entre todos los demás servidores perimetrales dentro de la red de Akamai para obtener contenido desde el origen. Las reglas comerciales se replican en cada servidor perimetral.
Cualquier contenido disponible y configurado para ser almacenado en caché se almacena en caché en el servidor perimetral para futuras solicitudes de conexión a ese nodo. Veremos esto con más detalle más adelante.
Se agrega un sitio a Akamai agregando un registro CNAME en DNS que apunta desde el nombre de host, por ejemplo, 'community.akamai.com', a un nombre de host de borde de Akamai, 'community.akamai.com.edgekey.net', donde Akamai controlaba El mapeo del servidor de borde se hace cargo para asignar el mejor servidor de borde disponible. Si 'busca' un nombre de host y ve 'edgekey.net', entonces sabrá que el proveedor de contenido está utilizando Akamai.

Interfaz de Akamai

Akamai proporciona una GUI web denominada 'Luna Control Center', varias API y una CLI.
Como se ve en la pestaña Monitor , muchas herramientas de informes y análisis están disponibles para generar información a nivel de CDN. Los registros de los servidores de borde también están disponibles a pedido.
En la pestaña Configurar nos centraremos en presentar Property Manager, y dejaremos otras opciones para una publicación futura.
Una propiedad , a veces también conocida como configuración , es la forma principal de controlar cómo responden los servidores perimetrales a las solicitudes de los usuarios. Las propiedades aplican una lista de reglas a un conjunto de nombres de host y solo puede aplicar una propiedad a la vez a cualquier nombre de host dado. Las reglas se componen de criterios / condiciones de coincidencia y comportamientos . Un ejemplo adicional de esto se verá más adelante al analizar el almacenamiento en caché. La regla predeterminada de cada propiedad debe especificar un código de proveedor de contenido ( CP) válido para facturar y reportar el servicio. Las reglas son "victorias en el último partido".
Existe una API de Property Manager (y CLI), con un gran glosario de conceptos.
Al realizar cambios en una propiedad, se crea primero una nueva versión, lo que permite realizar cambios y probarlos mientras la propiedad anterior permanece activa. La nueva versión se puede activar primero en la puesta en escena de Akamai, que un desarrollador puede apuntar a su máquina local para ejecutar pruebas, antes de activar en producción. La activación de producción toma aproximadamente diez minutos para implementar globalmente la nueva versión en todos los servidores de borde, con una opción de respaldo rápido que se revierte en minutos.
Rendimiento de ruta
Además de proporcionar una cantidad cada vez mayor de servidores periféricos distribuidos, para poder servir contenido en caché desde lo más cerca posible de cada usuario, se puede optimizar la ruta al origen del contenido. En el caso de Akamai, esto es a través de SureRoute.

La red de servidores de Akamai (un usuario se conecta primero al servidor perimetral y cualquier padre posterior a ese servidor) superpone la ruta predeterminada al origen. La ruta predeterminada puede pasar entre varios ISP y redes diferentes, que no siempre se pueden emparejar bien entre sí. Como se vio anteriormente, un enlace con pérdida (u otra degradación similar) puede significar que una ruta no obvia es la mejor opción.
La mejor ruta se encuentra en dos pasos.
- En primer lugar, los servidores de Akamai ejecutan continuamente sondeos entre sí y, a menor velocidad, contra todos los orígenes de los clientes de Akamai. Estos se utilizan para calcular y distribuir una lista centralizada de rutas candidatas entre cada emparejamiento de servidor de borde / origen.
- En segundo lugar, para reducir estas rutas candidatas sin procesar a una única mejor opción, cada cliente coloca un objeto de prueba SureRoute estático en su origen específico de tamaño similar a su contenido promedio esperado. Las carreras para recuperar este objeto se ejecutan periódicamente entre cada servidor de borde y el origen, de modo que se pueda mantener actualizado un registro del que tiene la latencia más baja y / o la tasa de pérdida de paquetes.
Esto significa que en cada solicitud a un servidor perimetral, se puede utilizar la ruta más rápida y confiable en ese momento para llegar al origen.
Almacenamiento en caché
El almacenamiento en caché en un servidor perimetral puede reducir en gran medida la latencia para el usuario final.
A medida que las organizaciones escalan, el almacenamiento en caché también puede volverse cada vez más importante para reducir la carga en el origen del contenido para mejorar el rendimiento y reducir los costos.
Como se describe en la respuesta dada a "¿Los servidores perimetrales de Akamai comparten contenido en caché", los servidores perimetrales se agrupan en 'regiones' de red. Si el caché de un servidor perimetral específico no está poblado, enviará una solicitud local a los otros servidores perimetrales de su región y, si un par tiene contenido, entregará la respuesta antes de almacenarlo en caché.
Si todas las cachés de los pares locales están vacías (o obsoletas), la solicitud se reenviará al servidor principal del borde, donde se realizará la misma verificación local entre los pares del padre. Si no se almacena en caché ningún contenido a lo largo de toda la ruta, volverá al origen y volverá a llenar el caché con su respuesta.

La clave de caché estándar utilizada está formada por el nombre de host (dominio), la ruta y la cadena de consulta. Esto se puede modificar para reducir la cardinalidad y / o dar más control sobre la purga de caché. Esto puede ser al incluir solo parámetros de consulta específicos, por lo que se excluyen cosas como ID de productos, agregando los valores de ciertas cookies, encabezados o variables definidas por el usuario.
Las condiciones de coincidencia (si existe una cookie ' x ', por ejemplo) se pueden combinar con comportamientos de 'omisión de caché' para crear escenarios avanzados, como almacenar en caché contenido diferente para usuarios con una sesión o para usuarios en diferentes ubicaciones.
Se puede utilizar una extensión de navegador como ModHeader para ver los encabezados Pragma de Akamai para investigar el comportamiento del almacenamiento en caché localmente.
Pensamientos finales
El uso de una CDN proporciona más control a los proveedores de contenido y herramientas como las descritas anteriormente brindan beneficios que son cada vez más importantes cuando se trabaja a escala.
Si bien aquí se han analizado los productos específicos de Akamai, existen conceptos similares de trabajo a escala con otros proveedores de CDN.
Es posible que se cubran otros detalles específicos de Akamai en una publicación futura, no dude en estar atento o leer sobre los siguientes temas sugeridos, como:
- Mejoras de seguridad con administración de certificados y firewalls de aplicaciones web (WAF)
- Administrador de imágenes para una entrega de imágenes optimizada
- Cloudlets para proporcionar un control granular fuera del ciclo de activación de Property Manage con muchos tipos disponibles para diferentes casos de uso
- Gestión de tráfico global (GTM) para equilibrio de carga basado en DNS
- mPulse para utilizar métricas de usuario real (RUM) para monitorear el desempeño
Gracias por leer ?
También puede disfrutar:
- Una guía para principiantes del Elastic Container Service de Amazon
- Cómo agregar Flow de forma incremental a una aplicación React existente
- Mejora progresiva con CSS Grid