¿Cuáles son los mejores recursos educativos (libros, videos, etc.) sobre la escala de un servicio web y una API?

Mi recomendación habitual para leer sobre esto es: Reglas de escalabilidad: 50 principios para sitios web de escalamiento

50 Principios para escalar sitios web: Amazon.es: Martin L. Abbott, Michael T. Fisher: 9780321753885: Libros

Proporciona un conjunto de pautas para escalar una arquitectura en escalas enormes.

Además, puedes ver la mayoría de los videos de la Conferencia O’Reilly Velocity en youtube o el sitio web de Velocity para obtener información sobre cómo lo hacen los grandes en el juego (Google, Amazon, Netflix, Yahoo, Etsy, etc.)

También hay blogs de tecnología / ingeniería de la mayoría de los grandes jugadores que explican cómo han hecho muchas cosas:

Código como Craft (Etsy)

El Blog de Netflix Tech

Blog | Ingeniería de LinkedIn

Blog de Ingeniería (Facebook)

Blog de ingeniería cuadrangular

Ingeniería GitHub

Blog (Pinterest)

Hay muchos otros por ahí, solo tienes que buscar en Google …

Si tiene alguna pregunta específica, puede hacerme una pregunta directa e intentaré indicarle la dirección correcta.

Encontrará algunos buenos antecedentes sobre posibles problemas si lee algunos de los documentos técnicos de las compañías de administración de API. (Puede encontrar una lista aquí: http: //management.apievangelist …; si tiene poco tiempo, consulte 3scale y Apigee, tampoco estoy afiliado a). Si desea o no necesita usar un servicio de administración de API es un asunto completamente diferente, pero eso lo ayudará a ponerse al día.

Si su API en es relativamente sencilla, puede encontrar que sus preocupaciones de escalamiento son realmente muy cercanas a las preocupaciones de escalamiento de un sitio web (aunque sea una con un perfil de uso particular: los comentarios de Paul Bissex sobre el perfil de su carga de trabajo son muy útiles). Sobre esa base, no restrinja su investigación a solo escalar las API, pero eche un vistazo a algunos recursos sobre la escala de aplicaciones web en general.

Es probable que se trate en gran parte del uso inteligente del almacenamiento en caché. Ya que estás usando Rails, asumo que es una API REST, lo que es una buena noticia porque HTTP tiene muchas soluciones de almacenamiento en caché. Para solicitudes GET, incluso puedes usar un CDN como Akamai.

Asegúrese de que la configuración de su base de datos sea sana (por ejemplo, los índices necesarios están en su lugar) también.

También sería inteligente crear scripts de prueba de carga que lleguen a su API con un conjunto de solicitudes optimizable a una velocidad ajustable, de modo que pueda crear un perfil. De hecho, le insto a que realice este perfil antes de embarcarse en el trabajo de “escalado” , para tener una idea precisa de cuáles son sus puntos críticos y qué nivel de tráfico es problemático para su configuración actual.