ShareThis ' experiencia construyendo aplicaciones Meteor en escala
Por Vijay Annapureddy
ShareThis utiliza Meteor para construir aplicaciones Web. METEOR es una plataforma de pila completa para la creación de aplicaciones web y móviles en JavaScript puro. Una aplicación Meteor incluye un componente cliente-lado que se ejecutará en el cliente (el navegador), lo que permite a Meteor hacer lo que llama la base de datos en todas partes. Meteor tomará un subconjunto de la base de datos y lo copiará al cliente. En lugar de enviar código HTML al cliente, una aplicación Meteor enviará los datos reales, RAW y dejar que el cliente tratar con él.
Puesto que el 65% de la infraestructura de ShareThis es dockerized y funcionando en Kubernetes y para utilizar Meteor con eficacia, necesitamos construir aplicaciones de Meteor a escala con la capacidad de manejar millones de peticiones por mes. Para ello, primera carga probamos nuestras aplicaciones Meteor y observamos el rendimiento frente al número de solicitudes por segundo cuando hay un gran número de solicitudes simultáneas. Con el fin de procesar los datos desde el backend de la IU de MongoDB, los servidores Meteor publicaron conjuntos de registros. Los tiempos de respuesta de nuestra aplicación que se ejecuta en Meteor, además de MongoDB, fueron insatisfactorios. Tardó 1,5 segundos para que Meteor actualice 5.000 documentos Mongo cuando se probó con 185 peticiones por segundo a nivel de simultaneidad de 125. Los tiempos de respuesta ideales deben estar por debajo de 1 segundo.
Las cosas importantes que observamos con Meteor en escala en Kubernetes son:
El editor y la suscripción por defecto de Meteor no pueden hacer un gran número de actualizaciones MongoDB en tiempo real
Calcetín de meteoro. js y Sticky Sessions requisito hacer la UI escamosa cuando hay múltiples instancias de Meteor que se ejecutan en paralelo detrás de un balanceador de carga
Lea más acerca de nuestro enfoque para escalar Meteor y los cambios que hicimos a nuestra arquitectura de meteoritos aquí: