SmugMug opera dos plataformas fotográficas en línea muy grandes, SmugMug y Flickr, lo que permite a más de 100 millones de clientes almacenar, buscar, compartir y vender de forma segura decenas de miles de millones de fotografías. Los clientes que subieron y buscaron a través de décadas de fotos ayudaron a convertir la búsqueda en una infraestructura crítica, creciendo de manera constante desde que se usó SmugMug por primera vez. Búsqueda en la nube de Amazon en 2012, seguido de Servicio Amazon OpenSearch desde 2018, después de alcanzar miles de millones de documentos y terabytes de almacenamiento de búsqueda.
Aquí, Lee Shepherd, ingeniero de personal de SmugMug, comparte la arquitectura de búsqueda de SmugMug utilizada para publicar, rellenar y reflejar el tráfico en vivo en múltiples clústeres. SmugMug utiliza estos canales para comparar, validar y migrar a nuevas configuraciones, incluidas instancias r6gd.2xlarge basadas en Graviton de i3.2xlarge, junto con pruebas. Amazon OpenSearch sin servidor. Cubrimos tres canales utilizados para publicar, rellenar y realizar consultas sin introducir patrones de tráfico puntiagudos y poco realistas y sin ningún impacto en los servicios de producción.
Hay dos piezas arquitectónicas principales fundamentales para el proceso:
- Una fuente duradera de verdad para los datos indexados. es la mejor practica y parte de nuestra estrategia de respaldo para tener un almacenamiento duradero más allá del índice OpenSearch, y Amazon DynamoDB proporciona escalabilidad e integración con AWS Lambda eso simplifica mucho el proceso. Usamos DynamoDB para otros servicios que no son de búsqueda, por lo que fue una opción natural.
- Una función Lambda para publicar datos de la fuente de la verdad en OpenSearch. Usando alias de funciones ayuda a ejecutar múltiples configuraciones de la misma función Lambda al mismo tiempo y es clave para mantener los datos sincronizados.
DTP
El proceso de publicación se genera a partir de eventos como que un usuario ingrese palabras clave o subtítulos, nuevas cargas o detección de etiquetas a través de Reconocimiento de amazonas. Estos eventos se procesan, combinando datos de algunas otras tiendas de activos como Edición compatible con Amazon Aurora MySQL y Servicio de almacenamiento simple de Amazon (Amazon S3), antes de escribir un solo elemento en DynamoDB.
Escribir en DynamoDB invoca una función de publicación de Lambda, a través del Adaptador Kinesis de transmisiones de DynamoDB, que toma un lote de elementos actualizados de DynamoDB y los indexa en OpenSearch. Existen otros beneficios al utilizar el adaptador DynamoDB Streams Kinesis, como reducir la cantidad de Lambdas simultáneas necesarias.
La función Lambda de publicación utiliza variables de entorno para determinar en qué dominio e índice de OpenSearch publicar. Se configura un alias de producción para escribir en el dominio OpenSearch de producción, fuera de la tabla de DynamoDB o Kinesis Stream.
Al probar nuevas configuraciones o migrar, se configura un alias de migración para escribir en el nuevo dominio OpenSearch pero usar el mismo activador que el alias de producción. Esto permite la indexación dual de datos en ambos dominios del servicio OpenSearch simultáneamente.
A continuación se muestra un ejemplo del esquema de tabla de DynamoDB:
El valor 'LastUpdated' se utiliza como versión del documento al indexar, lo que permite a OpenSearch rechazar cualquier actualización desordenada.
Relleno
Ahora que se están publicando cambios en ambos dominios, es necesario completar el nuevo dominio (índice) con datos históricos. Para rellenar un índice recién creado, se utiliza una combinación de Servicio de cola simple de Amazon (Amazon SQS) y se utiliza DynamoDB. Un script llena una cola SQS con mensajes que contienen instrucciones para escaneo paralelo un segmento de la tabla de DynamoDB.
La cola SQS inicia una función Lambda que lee las instrucciones del mensaje, recupera un lote de elementos del segmento correspondiente de la tabla de DynamoDB y los escribe en un índice de OpenSearch. Los mensajes nuevos se escriben en la cola SQS para realizar un seguimiento del progreso del segmento. Una vez que se completa el segmento, no se escriben más mensajes en la cola SQS y el proceso se detiene por sí solo.
La simultaneidad está determinada por la cantidad de segmentos, con controles adicionales proporcionados por el escalado de simultaneidad de Lambda. SmugMug puede indexar más de mil millones de documentos por hora en su configuración OpenSearch sin tener ningún impacto en el dominio de producción.
Se utiliza un script basado en NodeJS AWS-SDK para inicializar la cola SQS. Aquí hay un fragmento de las opciones del script de configuración de SQS:
Junto con el formato del mensaje SQS resultante:
Reflejando
Por último, nuestro consulta de búsqueda reflejada Los resultados se ejecutan enviando una consulta OpenSearch a una cola SQS, además de nuestro dominio de producción. La cola SQS inicia una función Lambda que reproduce la consulta en el dominio de réplica. Los resultados de búsqueda de estas solicitudes no se envían a ningún usuario, pero permiten replicar la carga de producción en el servicio OpenSearch bajo prueba sin impacto para los sistemas de producción o los clientes.
Conclusión
Al evaluar un nuevo dominio o configuración de OpenSearch, las principales métricas que nos interesan son el rendimiento de la latencia de consulta, es decir, las latencias tomadas (latencias por tiempo) y, lo más importante, las latencias para la búsqueda. En nuestro cambio a Graviton R6gd, vimos latencias P40-P50 aproximadamente un 99 por ciento más bajas, junto con ganancias similares en el uso de CPU en comparación con el i3 (ignorando los costos más bajos de Graviton). Otro beneficio bienvenido fue la presión de la memoria JVM más predecible y monitoreable con los cambios en la recolección de basura debido a la incorporación de G1GC en R6gd y otras instancias nuevas.
Utilizando este canal, también estamos probando OpenSearch Serverless y encontrando sus mejores casos de uso. Estamos entusiasmados con ese servicio y tenemos la firme intención de tener con el tiempo una arquitectura completamente sin servidor. Estén atentos a los resultados.
Acerca de los autores
Lee pastor es un ingeniero de software del personal de SmugMug
Aydn Bekirov es gerente técnico principal de cuentas de Amazon Web Services
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/big-data/smugmugs-durable-search-pipelines-for-amazon-opensearch-service/
- :es
- :no
- 1
- 100
- 12
- 14
- 20
- 2012
- 2018
- 40
- 7
- 9
- a
- Poder
- Nuestra Empresa
- Mi Cuenta
- adicional
- adición
- Adicionales
- Después
- permitir
- Permitir
- a lo largo de
- también
- Amazon
- Amazon Web Services
- an
- y
- Otra
- cualquier
- arquitectónico
- arquitectura
- somos
- AS
- activo
- At
- Aurora
- AWS
- Backup
- basado
- BE
- antes
- "Ser"
- es el beneficio
- beneficios
- MEJOR
- Más allá de
- mil millones
- miles de millones
- ambas
- pero
- by
- subtítulos
- Cambios
- --
- combinación
- combinar
- en comparación con
- compatible
- ultima
- competidor
- Configuración
- configurado
- que no contengo
- controles
- Correspondiente
- Precio
- Protectora
- CPU
- creado
- crítico
- Infraestructura crítica
- Clientes
- datos
- décadas
- Detección
- Determinar
- determina
- documento
- documentos
- dominio
- dominios
- impulsados
- cada una
- permite
- permitiendo
- Punto final
- ingeniero
- que entran a los
- enteramente
- Entorno
- Éter (ETH)
- evaluación
- Eventos
- ejemplo
- excitado
- pocos
- Terrenos
- la búsqueda de
- Nombre
- cómodo
- seguido
- formato
- Desde
- completamente
- función
- Ganancias
- Creciendo
- Tienen
- altura
- ayudado
- ayuda
- histórico
- horas.
- HTML
- http
- HTTPS
- i
- i3
- ID
- Impacto
- en tono rimbombante
- in
- Incluye
- índice
- índices
- EN LA MINA
- instancias
- Instrucciones
- integración
- la intención de
- interesado
- dentro
- Presentamos
- invoca
- artículos
- iteración
- SUS
- sí mismo
- jpg
- Guardar
- acuerdo
- Clave
- las palabras claves
- Label
- large
- Estado latente
- pone en marcha
- Lee
- como
- para vivir
- carga
- Lote
- inferior
- Inicio
- Salud Cerebral
- mensaje
- la vida
- Métrica
- migrado
- migrar
- migración
- millones
- millones de clientes
- espejo
- más,
- MEJOR DE TU
- movimiento
- múltiples
- MySQL
- nombre
- a saber
- Natural
- Nuevo
- recién
- Next
- no
- número
- of
- off
- on
- en línea
- opera
- Opciones
- Opta
- or
- Otro
- nuestros
- Paralelo
- parte
- .
- para
- por ciento
- actuación
- Fotos
- piezas
- industrial
- Plataformas
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- Previsible
- presión
- anterior
- Director de la escuela
- procesado
- Producción
- Progreso
- previsto
- proporciona un
- publicar
- publicado
- DTP
- alcanzando
- la reducción de
- responder
- solicitudes
- Requisitos
- resultante
- Resultados
- Ejecutar
- de manera segura
- mismo
- Sierra
- Escalabilidad
- la ampliación
- guión
- Buscar
- búsqueda
- dispersores
- segmento
- segmentos
- venta
- enviando
- expedido
- Sin servidor
- de coches
- Servicios
- Compartir
- Acciones
- similares
- sencillos
- simultáneamente
- desde
- soltero
- retazo
- So
- Software
- Fuente
- Staff
- quedarse
- continuamente
- Paradas
- STORAGE
- tienda
- tiendas
- Estrategia
- corrientes
- tal
- Todas las funciones a su disposición
- mesa
- toma
- Técnico
- tener
- test
- Pruebas
- que
- esa
- La
- La Fuente
- su
- Les
- Ahí.
- Estas
- así
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- a
- se
- seguir
- tráfico
- detonante
- verdad
- GIRO
- dos
- bajo
- actualizado
- Actualizaciones
- ¿Cómo subir tu libro?
- Enlance
- Uso
- utilizan el
- casos de uso
- usado
- Usuario
- usos
- usando
- VALIDAR
- propuesta de
- versión
- muy
- fue
- we
- web
- servicios web
- bienvenido
- ¿
- cuando
- mientras
- sin
- escribir
- la escritura
- escrito
- zephyrnet
- cero