أسئلة مقابلة الخدمات المصغرة

بقلم Aaron Cao · آخر تحديث

أسئلة مقابلة الخدمات المصغرة
مقابلات الخدمات المصغرة تختبر حدود الخدمات، وخيارات التواصل، واتساق البيانات، والتعامل مع الأعطال، وليس تفاصيل الأطر البرمجية الصغيرة. توقع أن تحتاج إلى تقسيم بنية متجانسة، والدفاع عن الاستدعاءات المتزامنة مقابل المراسلة غير المتزامنة، وشرح كيف تحافظ على صحة البيانات عبر الخدمات، وتتبع طلب واحد من البداية إلى النهاية.

مقابلات الخدمات المصغرة تختبر حدود الخدمات، وخيارات التواصل، واتساق البيانات، والتعامل مع الأعطال، وليس تفاصيل الأطر البرمجية الصغيرة. توقع أن تحتاج إلى تقسيم بنية متجانسة، والدفاع عن الاستدعاءات المتزامنة مقابل المراسلة غير المتزامنة، وشرح كيف تحافظ على صحة البيانات عبر الخدمات، وتتبع طلب واحد من البداية إلى النهاية.

ما الذي تختبره مقابلات الخدمات المصغرة فعلاً؟

لقد قرأت أسماء الأنماط، وتستطيع تلاوة ما يفعله circuit breaker، ومع ذلك لا تعرف ما الذي تستمع إليه اللجنة. يحدد هذا القسم المجالات الأربعة التي يقيّمها القائمون على المقابلة، بالترتيب الذي يستكشفونها به عادة. كل مجال هو سؤال حكمي متنكر في صورة سؤال مفردات.

  • التجزئة. أين تقطع، ولماذا هناك بالتحديد؟ يريد القائمون على المقابلة حدوداً مرسومة وفق القدرة التجارية أو ملكية البيانات، لا وفق الطبقات التقنية.
  • التواصل. طلب/استجابة متزامن أم أحداث غير متزامنة، وما الذي يتعطل في كل حالة. الإجابة المطلوبة هي مفاضلة، لا تفضيل شخصي.
  • البيانات. قاعدة بيانات واحدة لكل خدمة تعني عدم وجود joins بين الخدمات وعدم وجود معاملة موزعة. كيف تحافظ على صحة النظام رغم ذلك؟
  • العمليات. النشر، وإدارة الإصدارات، والتتبع، وما يحدث في الثالثة صباحاً عندما تكون خدمة ما بطيئة بدلاً من متعطلة.

لاحظ أن لا شيء من هذا يتعلق بإطار برمجي. المرشح الذي يشرح سبب فصله بين checkout وinventory يتفوق دائماً على من يكتفي بسرد annotations.

ما أكثر أسئلة التجزئة والتواصل شيوعاً؟

هذه هي الأسئلة التي تفتتح بها معظم جولات الخدمات المصغرة، مع ما يتحقق منه القائم على المقابلة فعلياً خلف كل سؤال.

  • كيف كنت ستقسّم هذه البنية المتجانسة إلى خدمات؟ يتحقق مما إذا كنت تقطع وفق القدرات التجارية وملكية البيانات، أم وفق طبقات controller وservice وrepository. الإجابة الثانية تُنتج بنية متجانسة موزعة.
  • كيف تتحدث خدمتان مع بعضهما؟ يتحقق مما إذا كنت تستطيع تسمية تكلفة كل خيار: الاستدعاءات المتزامنة تمنحك نموذجاً ذهنياً بسيطاً لكنها تربط التوافر، والأحداث غير المتزامنة تفصل التوافر وتمنحك eventual consistency يجب أن تشرحها لمالك المنتج.
  • ما هي البنية المتجانسة الموزعة وكيف تتجنبها؟ يتحقق مما إذا كنت تعرف أن الخدمات التي يجب نشرها معاً ليست منفصلة حقاً.
  • ما الحجم الذي يجب أن تكون عليه الخدمة؟ يتحقق من مقاومتك لإعطاء رقم محدد. الحجم يتبع الحد الفاصل والفريق المالك له.
  • هل تحتاج إلى API gateway، وماذا يفعل؟ يتحقق مما إذا كنت تستطيع فصل التوجيه والمصادقة وrate limiting عن منطق العمل.
  • كيف تجد الخدمات بعضها بعضاً؟ يتحقق من الإلمام الأساسي بـservice discovery ولماذا تفشل المضيفات المُرمّزة بشكل ثابت في بيئة موسّعة.

قل المفاضلة بصوت مسموع في كل إجابة. لا يمكن للجنة أن تمنح نقاطاً لمقارنة أجريتها بصمت في ذهنك.

كيف تجيب عن أسئلة البيانات والأعطال؟

هنا تُكسب المقابلات أو تُخسر، لأن هذه الأسئلة ليس لها إجابة نظيفة ويلجأ المرشحون إلى إجابة محفوظة عن ظهر قلب.

  • كيف تحافظ على اتساق البيانات عبر الخدمات؟ اذكر القيد أولاً: لا توجد معاملة بين الخدمات. ثم صف saga، سواء كانت منسقة عبر الأحداث أو منظمة عبر منسّق، وقل بوضوح إن النظام eventually consistent وما الذي يراه المستخدم خلال تلك الفترة.
  • ماذا يحدث عندما تكون خدمة downstream بطيئة؟ مهلات زمنية، وإعادة محاولات مع backoff، وcircuit breaker حتى لا تستنزف تبعية بطيئة thread pool الخاص بك. البطء أسوأ من التعطل، وقول ذلك يشير إلى خبرة إنتاجية.
  • كيف تجعل إعادة المحاولة آمنة؟ Idempotency. مفتاح idempotency على مسار الكتابة، بحيث لا تُحصّل دفعة معادة إلا مرة واحدة.
  • كيف تتعامل مع عطل جزئي في تدفق متعدد الخطوات؟ إجراءات تعويضية، لا rollback. اشرح كيف يبدو استرداد المبلغ أو تحرير حجز ما.
  • كيف تصحح خللاً في طلب لمس ست خدمات؟ Distributed tracing مع correlation ID ينتشر عبر كل hop، بالإضافة إلى سجلات ومقاييس مُهيكلة.

مهندس backend كان يقابَل لدور platform من مستوى L5 لدى مزود سحابة عام، تلقى سؤال saga وأجاب عليه دفعة واحدة، بمفردات الأنماط، دون أن يذكر مرة واحدة ما سيراه العميل. السؤال التالي، ماذا تعرض صفحة الطلب خلال نافذة عدم الاتساق، هو السؤال الذي يحسم الجولة فعلياً. جهّز الإجابة الثانية، لا الأولى فقط.

مزيد من بنوك الأسئلة حسب الدور والموضوع مجمّعة تحت أسئلة المقابلة حسب الدور.

كيف تتدرب على هذا بصوت مسموع؟

قراءة هذه القائمة تولّد إحساساً بالتعرف، وهذا الإحساس يتلاشى بمجرد أن يطرح شخص غريب السؤال وينتظر. الفجوة بين معرفة نمط ما وشرحه تحت ضغط خفيف هي كل صعوبة جولة system design، ولا تُسد إلا بالتحدث.

اختر تدفقاً واحداً تعرفه جيداً، كوضع طلب أو تسجيل حساب، واسرد بصوت مسموع التجزئة كاملة: الحد الفاصل، وخيار التواصل، وقصة الاتساق، وقصة العطل. افعل ذلك حتى تتوقف عن إعادة بدء الجمل. يمكنك تجربة هذه الأسئلة أمام محاور AI يطرح أسئلة متابعة ويتيح لك الإجابة بصوتك في وضع المقابلة التجريبية، وهو أقرب إلى الواقع من إعادة قراءة الملاحظات.

Aaron Cao، مؤسس SubcueAI، بنى وضع التدريب حول تلك الفجوة، لا حول تقديم المحتوى. قوائم الأسئلة متاحة مجاناً في كل مكان؛ ما ينقص المرشحين هو تكرار قول الإجابة بينما ينتظر شخص ما. أثناء مقابلة حقيقية، يمكن لتطبيق سطح المكتب وSide Panel الخاص بامتداد المتصفح عرض أسئلة مُهيكلة أثناء حديث القائم على المقابلة، رغم أن شرحاً متمرَّناً عليه يتفوق دائماً على شرح تقرؤه لأول مرة. ما يفعله المساعد وما لا يفعله موصوف في نظرة عامة على المنتج.

الأسئلة الشائعة

كم عدد أسئلة الخدمات المصغرة التي يجب أن أستعد لها؟

التحضير العميق لتدفق واحد أفضل من حفظ ثلاثين سؤالاً. إذا استطعت تجزئة نظام واحد، والدفاع عن خيار التواصل، وشرح نموذج الاتساق، ووصف ما يتعطل عند عطل جزئي، يمكنك الإجابة عن معظم صيغ الأسئلة التي تطرحها اللجنة.

هل أحتاج إلى معرفة Kubernetes لمقابلة عن الخدمات المصغرة؟

بالنسبة لمعظم أدوار backend تحتاج إلى شرح ما يجب أن يوفره النشر والتوسع، لا تشغيل cluster. أدوار platform وSRE مختلفة وتتعمق فعلاً في orchestration وservice mesh واستراتيجية rollout.

ما أكثر الأخطاء شيوعاً في هذه المقابلات؟

التقسيم وفق الطبقات التقنية بدلاً من القدرات التجارية، مما ينتج خدمات يجب نشرها معاً. الخطأ الثاني الأكثر شيوعاً هو وصف saga دون أن تقول مرة واحدة إن النظام يصبح eventually consistent.

هل تُطرح أسئلة الخدمات المصغرة في جولات البرمجة أم جولات التصميم؟

غالباً في جولات التصميم وجولة السلوك للمستوى المتقدم، حيث يسأل القائمون على المقابلة عن نظام امتلكته. جولات البرمجة تبقى ضمن الخوارزميات وطلاقة اللغة، رغم أن مهمة منزلية قد تطلب منك إضافة خدمة واحدة إلى مجموعة قائمة.

هل يستطيع مساعد AI الإجابة عن هذه الأسئلة نيابة عني مباشرة؟

يستطيع إظهار البنية أثناء حديث القائم على المقابلة، وهذا يساعد أكثر عندما تكون تعرف المادة أصلاً. لا يحل محل التدريب، ومشاركة الشاشة، والجلسات المسجّلة، والاختبارات المراقَبة، وأجهزة الحاسوب المحمولة التي تديرها الشركة تبقى جميعها خارج النطاق.

أسئلة ذات صلة

← المزيد عن أسئلة المقابلات حسب الدور والموضوع