تدير SmugMug منصتين كبيرتين جدًا للصور عبر الإنترنت، Smugmug و و فليكر، مما يتيح لأكثر من 100 مليون عميل تخزين عشرات المليارات من الصور والبحث عنها ومشاركتها وبيعها بأمان. ساعد العملاء الذين يقومون بتحميل الصور والبحث فيها على مدار عقود من الزمن في تحويل البحث إلى بنية تحتية مهمة، وهو ما شهد نموًا مطردًا منذ استخدام SmugMug لأول مرة أمازون كلاود سيرش في 2012 ، متبوعًا بـ خدمة Amazon OpenSearch منذ عام 2018، بعد الوصول إلى مليارات المستندات والتيرابايت من سعة تخزين البحث.
هنا، يشارك Lee Shepherd، مهندس طاقم SmugMug، بنية بحث SmugMug المستخدمة لنشر حركة المرور المباشرة وإعادة ملئها وعكسها إلى مجموعات متعددة. يستخدم SmugMug هذه المسارات لقياس التكوينات الجديدة والتحقق من صحتها والانتقال إليها، بما في ذلك مثيلات r6gd.2xlarge القائمة على Graviton من i3.2xlarge، إلى جانب الاختبار أمازون أوبن سيرش سيرفرليس. نحن نغطي ثلاثة خطوط أنابيب تستخدم للنشر والتعبئة والاستعلام دون تقديم أنماط حركة غير واقعية شائكة، ودون أي تأثير على خدمات الإنتاج.
هناك نوعان من القطع المعمارية الرئيسية الهامة لهذه العملية:
- مصدر دائم للحقيقة لبيانات الفهرس. إنها أفضل الممارسات وجزء من إستراتيجيتنا للنسخ الاحتياطي للحصول على متجر دائم يتجاوز فهرس OpenSearch، و الأمازون DynamoDB يوفر قابلية التوسع والتكامل مع AWS لامدا الذي يبسط الكثير من العملية. نحن نستخدم DynamoDB للخدمات الأخرى غير المتعلقة بالبحث، لذلك كان هذا مناسبًا بشكل طبيعي.
- وظيفة Lambda لنشر البيانات من مصدر الحقيقة إلى OpenSearch. استخدام الأسماء المستعارة للوظيفة يساعد في تشغيل تكوينات متعددة لنفس وظيفة Lambda في نفس الوقت، وهو أمر أساسي للحفاظ على مزامنة البيانات.
نشر
يتم توجيه مسار النشر من أحداث مثل إدخال المستخدم للكلمات الرئيسية أو التسميات التوضيحية أو التحميلات الجديدة أو اكتشاف التصنيفات من خلالها الأمازون إعادة الاعتراف. تتم معالجة هذه الأحداث من خلال دمج البيانات من عدد قليل من مخازن الأصول الأخرى مثل الإصدار المتوافق مع Amazon Aurora MySQL و خدمة Amazon Simple Storage (Amazon S3)، قبل كتابة عنصر واحد في DynamoDB.
تستدعي الكتابة إلى DynamoDB وظيفة نشر Lambda، من خلال محول DynamoDB Streams Kinesis، الذي يأخذ مجموعة من العناصر المحدثة من DynamoDB ويقوم بفهرستها في OpenSearch. هناك فوائد أخرى لاستخدام محول DynamoDB Streams Kinesis مثل تقليل عدد أجهزة Lambdas المتزامنة المطلوبة.
تستخدم وظيفة Lambda للنشر متغيرات البيئة لتحديد مجال OpenSearch والفهرس الذي سيتم النشر إليه. تم تكوين اسم مستعار للإنتاج للكتابة في مجال OpenSearch للإنتاج، خارج جدول DynamoDB أو Kinesis Stream
عند اختبار التكوينات الجديدة أو الترحيل، يتم تكوين الاسم المستعار للترحيل للكتابة إلى مجال OpenSearch الجديد ولكن يستخدم نفس المشغل مثل الاسم المستعار للإنتاج. يتيح ذلك فهرسة مزدوجة للبيانات لكلا نطاقي خدمة OpenSearch في وقت واحد.
فيما يلي مثال لمخطط جدول DynamoDB:
يتم استخدام قيمة "LastUpdated" كإصدار المستند عند الفهرسة، مما يسمح لـ OpenSearch برفض أي تحديثات خارج الترتيب.
ردم
الآن بعد أن تم نشر التغييرات على كلا النطاقين، يجب ملء النطاق الجديد (الفهرس) بالبيانات التاريخية. لإعادة ملء فهرس تم إنشاؤه حديثًا، استخدم مجموعة من خدمة Amazon Simple Queue Service (Amazon SQS) ويتم استخدام DynamoDB. يقوم البرنامج النصي بملء قائمة انتظار SQS بالرسائل التي تحتوي على تعليمات المسح الموازي جزء من جدول DynamoDB.
تقوم قائمة انتظار SQS بتشغيل وظيفة Lambda التي تقرأ تعليمات الرسالة، وتجلب مجموعة من العناصر من الجزء المقابل من جدول DynamoDB، وتكتبها في فهرس OpenSearch. تتم كتابة الرسائل الجديدة إلى قائمة انتظار SQS لتتبع التقدم خلال المقطع. بعد اكتمال المقطع، لن تتم كتابة المزيد من الرسائل في قائمة انتظار SQS وتتوقف العملية من تلقاء نفسها.
يتم تحديد التزامن حسب عدد المقاطع، مع توفير عناصر تحكم إضافية بواسطة مقياس التزامن Lambda. SmugMug قادر على فهرسة أكثر من مليار مستند في الساعة على تكوين OpenSearch الخاص به دون إحداث أي تأثير على مجال الإنتاج.
يتم استخدام البرنامج النصي المستند إلى NodeJS AWS-SDK لبذر قائمة انتظار SQS. فيما يلي مقتطف من خيارات البرنامج النصي لتكوين SQS:
بالإضافة إلى تنسيق رسالة SQS الناتجة:
المتطابق
أخيرًا، لدينا استعلام بحث معكوس يتم تشغيل النتائج عن طريق إرسال استعلام OpenSearch إلى قائمة انتظار SQS، بالإضافة إلى مجال الإنتاج الخاص بنا. تقوم قائمة انتظار SQS بتشغيل وظيفة Lambda التي تعيد تشغيل الاستعلام إلى مجال النسخة المتماثلة. لا يتم إرسال نتائج البحث من هذه الطلبات إلى أي مستخدم ولكنها تسمح بتكرار حمل الإنتاج على خدمة OpenSearch قيد الاختبار دون التأثير على أنظمة الإنتاج أو العملاء.
وفي الختام
عند تقييم مجال أو تكوين OpenSearch جديد، فإن المقاييس الرئيسية التي نهتم بها هي أداء زمن استجابة الاستعلام، أي زمن الاستجابة المستغرق (زمن الاستجابة في كل مرة)، والأهم من ذلك زمن الاستجابة للبحث. في انتقالنا إلى Graviton R6gd، شهدنا انخفاضًا بنسبة 40 بالمائة في زمن الاستجابة P50-P99، إلى جانب مكاسب مماثلة في استخدام وحدة المعالجة المركزية مقارنةً بـ i3 (تجاهل تكاليف Graviton المنخفضة). من المزايا الأخرى المرحب بها هي ضغط ذاكرة JVM الأكثر قابلية للتنبؤ والمراقبة مع تغييرات مجموعة البيانات المهملة من إضافة G1GC إلى R6gd ومثيلات جديدة أخرى.
باستخدام هذا المسار، نقوم أيضًا باختبار OpenSearch Serverless وإيجاد أفضل حالات الاستخدام. نحن متحمسون لهذه الخدمة ونعتزم تمامًا الحصول على بنية بدون خادم تمامًا في الوقت المناسب. ترقبوا النتائج.
حول المؤلف
لي شيبرد هو مهندس برمجيات للموظفين في SmugMug
ايدن بكيروف هو مدير الحساب الفني الرئيسي لشركة Amazon Web Services
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/big-data/smugmugs-durable-search-pipelines-for-amazon-opensearch-service/
- :يكون
- :ليس
- 1
- 100
- 12
- 14
- 20
- 2012
- 2018
- 40
- 7
- 9
- a
- ماهرون
- من نحن
- حسابي
- وأضاف
- إضافة
- إضافي
- بعد
- السماح
- السماح
- على طول
- أيضا
- أمازون
- أمازون ويب سيرفيسز
- an
- و
- آخر
- أي وقت
- معماري
- هندسة معمارية
- هي
- AS
- الأصول
- At
- فجر
- AWS
- دعم
- على أساس
- BE
- قبل
- يجري
- مؤشر
- تستفيد
- الفوائد
- أفضل
- Beyond
- مليار
- المليارات
- على حد سواء
- لكن
- by
- تعليق
- التغييرات
- مجموعة شتاء XNUMX
- مجموعة
- الجمع بين
- مقارنة
- متوافق
- يكمل
- منافس
- الاعداد
- تكوين
- تحتوي على
- ضوابط
- المقابلة
- التكاليف
- بهيكل
- وحدة المعالجة المركزية:
- خلق
- حرج
- بنية تحتية حرجة
- العملاء
- البيانات
- عقود
- كشف
- حدد
- مصمم
- وثيقة
- وثائق
- نطاق
- المجالات
- مدفوع
- كل
- تمكن
- تمكين
- نقطة النهاية
- مهندس
- الدخول
- تماما
- البيئة
- الأثير (ETH)
- تقييم
- أحداث
- مثال
- متحمس
- قليل
- مجال
- العثور على
- الاسم الأول
- تناسب
- يتبع
- في حالة
- شكل
- تبدأ من
- تماما
- وظيفة
- الرأس مالية
- متزايد
- يملك
- ارتفاع
- ساعد
- يساعد
- تاريخي
- ساعة
- HTML
- HTTP
- HTTPS
- i
- i3
- ID
- التأثير
- الأهم
- in
- بما فيه
- مؤشر
- الفهارس
- البنية التحتية
- حالات
- تعليمات
- التكامل
- تعتزم
- يستفد
- إلى
- إدخال
- يتضرع
- العناصر
- تكرير
- انها
- نفسها
- JPG
- احتفظ
- حفظ
- القفل
- الكلمات المفتاحية
- تُشير
- كبير
- كمون
- تطلق
- لي
- مثل
- حي
- تحميل
- الكثير
- خفض
- الرئيسية
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- الرسالة
- رسائل
- المقاييس
- الهجرة
- المهاجرة
- هجرة
- مليون
- مليون عميل
- مرآة
- الأكثر من ذلك
- أكثر
- خطوة
- متعدد
- MySQL
- الاسم
- أي
- طبيعي
- إحتياجات
- جديد
- حديثا
- التالي
- لا
- عدد
- of
- خصم
- on
- online
- تعمل
- مزيد من الخيارات
- يختار
- or
- أخرى
- لنا
- موازية
- جزء
- أنماط
- إلى
- فى المائة
- أداء
- صور
- الصور
- قطعة
- خط أنابيب
- منصات التداول
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- قابل للتنبؤ
- الضغط
- سابق
- رئيسي
- عملية المعالجة
- معالجة
- الإنتــاج
- التقدّم
- المقدمة
- ويوفر
- نشر
- نشرت
- نشر
- الوصول إلى
- تقليص
- رد
- طلبات
- مطلوب
- مما أدى
- النتائج
- يجري
- بسلام
- نفسه
- رأى
- التدرجية
- التحجيم
- سيناريو
- بحث
- البحث
- بذرة
- قطعة
- شرائح
- بيع
- إرسال
- أرسلت
- Serverless
- الخدمة
- خدماتنا
- مشاركة
- مشاركة
- مماثل
- الاشارات
- معا
- منذ
- عزباء
- قصاصة
- So
- تطبيقات الكمبيوتر
- مصدر
- فريق العمل
- إقامة
- بثبات
- توقف
- تخزين
- متجر
- فروعنا
- الإستراتيجيات
- تيارات
- هذه
- أنظمة
- جدول
- يأخذ
- تقني
- عشرات
- تجربه بالعربي
- الاختبار
- من
- أن
- •
- المصدر
- من مشاركة
- منهم
- هناك.
- تشبه
- ثلاثة
- عبر
- الوقت
- إلى
- استغرق
- مسار
- حركة المرور
- يثير
- حقيقة
- منعطف أو دور
- اثنان
- مع
- تحديث
- آخر التحديثات
- تحميل
- URL
- الأستعمال
- تستخدم
- استخدم حالات
- مستعمل
- مستخدم
- يستخدم
- استخدام
- التحقق من صحة
- قيمنا
- الإصدار
- جدا
- وكان
- we
- الويب
- خدمات ويب
- ترحيب
- ابحث عن
- متى
- في حين
- مع
- بدون
- اكتب
- جاري الكتابة
- مكتوب
- زفيرنت
- صفر