سلام دوست عزیز😃👋

به مسابقه «مسابقه کداستار ۱۴۰۳ - DevOps» خوش آمدی!

نکات مفید برای شرکت در مسابقه:

  • هرگونه استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید.
  • هر گونه ارتباط با سایر شرکت‌کنندگان ممنوع است.
  • می‌توانید سوال‌ها و مشکلات خود را از بخش «سوال بپرسید» با ما در میان بگذارید.
  • در این مسابقه تلاش شده تا مهارت شما هم در سطح توسعه دهنده یا همان developer و هم در سطح operation سنجیده شود. برای همین شما در برخی سوالات مجبور به توسعه و پیاده‌سازی هستید.

موفق باشید و بهتون خوش بگذره 😉✌

لاگ‌های پرماجرا


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

شرلوک که حالا به استفاده از APIهای مختلف برای اتصال به سازمان‌ها عادت کرده، در هنگام اتصال به APIهای اسکاتلند یارد دچار مشکل می‌شود. او که فرصت کمی برای بررسی مشکل دارد، از واتسون می‌خواهد با بررسی لاگ‌های سرویس‌های اسکاتلند یارد سرویس‌های دچار مشکل را پیدا کرده و مشکل آن‌ها را گزارش کند.

معماری داخلی سرویس‌های اسکاتلند یارد میکروسرویس است، در این معماری سرویس‌های متعددی وجود دارند که هر یک وظیفه مشخصی دارند و ممکن است برای پاسخ به درخواست کاربر،‌ گروهی از آن‌ها با یکدیگر ارتباط برقرار کرده تا پاسخ درخواست را آماده کنند.

در این معماری برای عیب یابی و دنبال کردن مسیر درخواست کاربرها در سرویس‌ها، به هر درخواست یک آیدی منحصر به فرد اختصاص داده شده و با استفاده از این آیدی، اعمالی که هر سرویس در مسیر شروع تا پاسخگویی به درخواست انجام داده ثبت می‌شود. اگر دقت کنیم، متوجه می‌شویم که می‌توان هر یک از این اعمال (ارتباط با یک سرویس دیگر) را به شکل یک درخواست و پاسخ مستقل نگاه کرد. با توجه به این مسئله هر یک از این اعمال را به عنوان یک واحد مستقل به نام Span می‌شناسیم. با این تعریف هر Span می‌تواند شامل Span های متفاوتی شود. برای مثال اگر معماری زیر را داشته باشیم: معماری میکروسرویس مثال مسیر یک درخواست می‌تواند به شکل زیر باشد (خطوط افقی همان Span ها هستند): درخواست نمونه همچنین ممکن است که یک درخواست دچار مشکل شود. در اینصورت، Span آن و تمامی Span های والد آن نیز دچار مشکل می‌شوند. برای مثال می‌توانید مسیر درخواستی که با خطا مواجه شده را در تصویر زیر مشاهده کنید: درخواست نمونه با خطا اسکاتلند یارد، داده‌های درخواست‌های خود را به صورت فایل‌های JSON در اختیار دارد اما ابزاری برای تحلیل آن‌ها ندارد. به واتسون کمک کنید ابزاری توسعه دهد که با استفاده از این اطلاعات مشکل را پیدا کرده و در صورتی که درخواست با خطا مواجه شده، اطلاعات آن خطا و سرویسی که باعث آن خطا بوده را پیدا کرده و چاپ کند و در غیر اینصورت، بگوید که مشکلی در درخواست وجود نداشته. در قدم اول برای آشنایی شما با روند حل این مسئله، می‌توانید با دریافت فایل لاگ نمونه و مشاهده ورودی و خروجی مورد انتظار، رابطه بین آن‌ها را کشف کنید. سپس از شما انتظار می‌رود که برنامه‌ای بنویسید که لاگ‌ها را از stdin دریافت و به صورت اتوماتیک با توجه به ورودی، خروجی مورد انتظار را پیدا کرده و چاپ کند.

ورودی نمونه🔗

فایل درخواست سالم

فایل درخواست با خطا

خروجی نمونه🔗

برای درخواست اول باید برنامه شما عبارت Provided request has no errors را چاپ و برای درخواست دوم اطلاعات زیر را به همین شکل چاپ کند:

Service: CIA
Address: 127.0.0.1:41251
Route: /getCriminalData
Message: Network error
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.