لنظام تداول أو AdTech يُعدّ فيه الرد المتأخر ردًا خاطئًا، تعمل الشركة الخارجية المناسبة في النطاق نفسه الذي تقع فيه مهلتك النهائية، وتستطيع أن تُظهر كيف قيست أرقام السرعة لديها. والشركة التي تميل إليها ينبغي أن تقيس نظامك العامل في الإنتاج قبل أن تبني أي شيء.
لا توجد قائمة بشركات تطوير البرمجيات منخفضة زمن الاستجابة تناسب كل مشترٍ، لأن المصطلح يغطي مهلًا نهائية قد يبلغ الفرق بينها مليون ضعف. ففي عتاد التداول قد يعني عشرات النانوثانيات أو مئاتها. أما في تطبيق أو صفحة ويب، فالرد خلال نحو عُشر ثانية يبدو فوريًا بالفعل لمن يستخدمه. لذا فالسؤال الأول هو: أين تقع مهلتك النهائية أنت؟
الجواب القصير: دوّن مهلتك النهائية والنقطتين اللتين تُقاس بينهما، واسأل كل شركة أيٌّ من الأنظمة التي بنتها يعمل بالفعل في هذا النطاق في بيئة الإنتاج. وقبل أن يبني أحد أي شيء، ادفع للشركة التي تميل إليها لتقيس نظامك العامل في الإنتاج، واحتفظ بتقريرها أيًّا كان قرارك.
اقرأ أيضًا
بالنسبة إلى نظامك، زمن الاستجابة المنخفض مهلة نهائية تُقاس بين نقطتين تستطيع أن تسمّيهما. وتقع المهل النهائية في أربعة نطاقات عامة:
قد يضم المنتج الواحد أجزاءً في نطاقات مختلفة. فالمتداول يقرأ الأسعار على شاشة، بينما قد يتعين على الأمر الذي يرسله أن يلتزم بمهلة نهائية أضيق بكثير في طريقه إلى منصة التداول. دوّن كل مهلة نهائية مع النقطتين اللتين تُقاس بينهما. فالنطاق الذي تقع فيه كل منها يخبرك بأي نوع من الشركات تتصل.
هذه المقالة لا تصنّف الشركات. فنوع الشركة المناسب يتوقف على نطاقك وعلى العمل الذي تحتاج إلى إنجازه:
كثير من الشركات ينطبق عليها أكثر من نوع واحد، لذا اسأل أيّ نوع من العمل أنجزه المهندسون المكلَّفون بمشروعك.
تسرد المقالة عن الفرق المخصّصة، المشار إليها أعلاه، ما يجب أن يرافق كل رقم أداء، وتقدّم قائمة تحقق يمكنك لصقها في طلب عروض. أما الأسئلة أدناه فتكشف كيف أُنتجت أرقام الشركة نفسها.
اسأل أين تبدأ الساعة وأين تتوقف. فـ OPRA، التي تنشر بيانات الصفقات وعروض الأسعار الموحّدة من بورصات الخيارات الأمريكية، تبدأ ساعتها حين تكون الرسالة الواردة «قد وصلت إلى مدخل التطبيق في بيئة OPRA»، وتوقفها حين تكون الرسالة الصادرة «قد وصلت إلى مخرج التطبيق من بيئة OPRA». وتعريف الاتحاد الأوروبي المقتبس أعلاه دقيق بالقدر نفسه بشأن النقطتين. والرقم الذي لا تُسمّى فيه نقطتا البداية والنهاية لا يمكن مقارنته بأرقامك.
انظر إلى أبطأ الردود إلى جانب الرد المعتاد. ففي المقاييس التي تنشرها OPRA، بلغ وسيط زمن الاستجابة، أي القيمة التي تقع في المنتصف، 19.5 ميكروثانية في يناير 2024 و20.5 في فبراير. وخلال الشهرين نفسيهما انخفض المئين 99، أي الزمن الذي لم تتجاوزه إلا أبطأ 1 في المئة من الرسائل، من 543.5 ميكروثانية إلى 57.5. والتقرير الذي لا يذكر إلا الوسيط ما كان ليُظهر أي تغيير تقريبًا.
والمتوسطات أيضًا تخفي الردود البطيئة. فكتاب Site Reliability Engineering من Google، الذي نشرته O'Reilly عام 2016، يصف خدمة ويب متوسط زمن استجابتها 100 مللي ثانية عند 1,000 طلب في الثانية، «قد يستغرق فيها 1% من الطلبات 5 ثوانٍ بسهولة». اطلب المئين 99 لكل مسار، وإن كان نظامك يعالج من الطلبات ما يكفي لقياسه، فاطلب أيضًا المئين 99.9، الذي لا يتجاوزه إلا 1 من كل 1,000 رد.
تحقّق من الحمل الذي يقف وراء كل رقم. ففي النظرة العامة التي نشرتها STAC عام 2020، يرسل STAC-T0 حركة الاختبار بثلاثة معدلات. أدناها «مصمَّم لمعرفة كيف تتصرف الأنظمة حين تكون خاملة في الغالب»، وأعلاها، الذي يكون عادةً قريبًا من أقصى ما يستطيع النظام المختبَر تحمّله، موجود «لمعرفة كيف تتصرف الأنظمة حين تكون مشغولة جدًا». اطلب أرقامًا من أكثر دقائقك ازدحامًا، أو من اختبار يعيد إنتاجها.
اسأل كيف أُجري اختبار الحمل. فكثير من أدوات اختبار الحمل ترسل طلبًا، وتنتظر الرد، ولا ترسل الطلب التالي إلا بعد ذلك. وحين يتوقف النظام مؤقتًا، تتوقف هذه الأداة عن الإرسال، فلا يُقاس أبدًا زمن الطلبات التي كانت ستصل أثناء التوقف.
يسمّي Gil Tene، مؤلف أداة اختبار الحمل wrk2، هذا الأثر coordinated omission. وفي توثيق الأداة، الذي عُدّل آخر مرة في سبتمبر 2019، يكتب أن «الردود ذات زمن الاستجابة المرتفع تؤدي إلى أن ينسّق مولّد الحمل مع الخادم بحيث يتجنب القياس خلال فترات زمن الاستجابة المرتفع». وترسل أداته الطلبات بمعدل ثابت، وتقيس زمن كل رد «من اللحظة التي كان ينبغي أن يحدث فيها الإرسال». اسأل هل تعمل أداة الشركة بهذه الطريقة، أو كيف صُحّحت نتائجها.
اسأل أين التُقط كل طابع زمني. فبالنسبة إلى أزمنة الاستجابة بالميكروثوانٍ، تصف النظرة العامة من STAC الاختبار المعياري بطوابع زمنية برمجية بأنه «الخيار الأفضل». لكنها تحذّر أيضًا من أن التأخيرات الصغيرة غير المنتظمة في الطوابع الزمنية البرمجية «قد تمثّل خطأً كبيرًا عند قياس أزمنة استجابة بعشرات النانوثانيات أو مئاتها»، أما STAC-T0 فيلتقط طوابعه الزمنية بالعتاد. والشركة التي تذكر أرقامًا بالنانوثانيات ينبغي أن تستطيع أن تُظهر أين التُقطت طوابعها الزمنية العتادية.
إن كنت لا تعرف بعد ما الخلل، ولا تعرف إلا أن النظام يبدو أبطأ أو يكلّف أكثر مما ينبغي، فابدأ من هنا. ادفع للشركة التي تميل إليها مقابل قياس محدد النطاق لنظامك العامل في الإنتاج، مع تقرير يبقى ملكك أيًّا كان قرارك التالي. واتفق كتابةً على ما يجوز للشركة تثبيته أو تغييره لتُجري قياساتها، وعلى كيفية إزالة أدواتها بعد ذلك.
ينبغي أن يُظهر التقرير:
بالنسبة إلى أنظمة التداول، تسرد المقالة عن بطء تنفيذ الأوامر، المشار إليها أعلاه، الطوابع الزمنية الأربعة التي ينبغي تسجيلها على كل أمر. وفي AdTech، تتناول المقالتان عن قفزات الحركة وعن انتهاء المهلة في منصات DSP ما يجب قياسه في الذروة ولكل اتصال بمنصة تبادل.
احكم على الشركة من تقريرها. فإن كان مهندسوك يستطيعون العمل بموجبه من دون الشركة، استطعت أن تختار من ينفّذ العمل التالي بناءً على أرقام حقيقية، سواء كانت هذه الشركة أو غيرها.
إن اقترحت شركة لغة جديدة، فالمقالة المشار إليها أدناه تبيّن كيف يتحقق المهندسون مما إذا كانت اللغة هي السبب.
تشخّص amBrain الأنظمة البطيئة في التداول وAdTech: تُقاس المنصة أثناء تشغيلها من طرف إلى طرف، ويسمّي التقرير أين يذهب الوقت. ويشمل عملها في التداول تطوير طرفيات التداول، وأنظمة إدارة الأوامر، وتكامل البورصات عبر بروتوكول FIX.
في مجال AdTech، تعمل amBrain على تطوير DSP ومنصات المزايدة الفورية وهندسة منصات تبادل الإعلانات.
تعمل amBrain بثلاث صيغ: تسليم كامل، أو فريق مخصص، أو مهندسون مدمجون في فريقك. ويحتفظ العميل بالملكية الكاملة للمنتج وللكود، باستثناء مكوّنات amBrain القابلة لإعادة الاستخدام.
تبني amBrain البرمجيات منذ عام 2019.
هذه المقالة ليست دراسة حالة، ولا تصف أي عمل لعميل. ولا تذكر أي رقم لزمن الاستجابة لأي نظام بنته amBrain، ولا أي أسعار أو جداول زمنية.
اسأل amBrain، أو أي شركة أخرى في قائمتك، عمّا ستقيسه أولًا في نظامك، وأخضِع كل الشركات للفحوص نفسها.
أحضر بنيتك الحالية وسيناريو الفشل الذي يقلقك، وسنراجعه معًا خلال نصف ساعة.