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

به مسابقه «ورودی بوت‌کمپ کداستار - DevOps» خوش آمدی!

هرگونه ارتباط با سایر شرکت‌کنندگان و یا استفاده از ابزارهای تولید کد، مثل ChatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید.

می‌توانید سوال‌ها و مشکلات خود را از بخش «سوال بپرسید» با ما در میان بگذارید.

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

اسکرپر فرهادیان


اسکواد کوئرا (Quera's Squad) که سردسته آن‌ها علیشا (AliSha) می‌باشد، علاقه خاصی به رصد رفتار و تعاملات کاربران در محصولات مختلف کوئرا دارد. او همواره از ابزار‌های مختلفی برای انجام این رصد و سنجیدن کیفیت کالج‌ها و مسابقات کوئرا استفاده می‌کند. در این بین اما، فعالیت‌های متعدد یک کاربر یعنی آقای فرهادیان (Mr. Farhadian) در بسیاری از کالج‌ها و مسابقات کوئرا باعث شده است تا ابزار‌هایی که اسکواد از آن‌ها برای تحلیل رفتار کاربران استفاده می‌کند، با توجه به حجم بسیار زیاد اطلاعات فعالیت‌های این کاربر، از ارائه گزارش در مورد عملکرد‌های او ناتوان شده و از دسترس خارج شوند!

تصویر سوال ششم

با توجه به نیاز علیشا برای تحلیل و بررسی عملکرد کاربران خاصی مانند آقای فرهادیان – که از فعال‌ترین کاربران در پلتفرم کوئرا به شمار می‌رود – به‌منظور ارتقای کیفیت خدمات و محصولات ارائه‌شده و با در نظر گرفتن این‌که ابزارهای متداول در حال حاضر در دسترس نیستند، او از شما می‌خواهد تا با استفاده از یک فایل داکر کامپوز (Docker Compose)، یک Selenium Grid اختصاصی راه‌اندازی کنید.

این Grid شامل یک Selenium Hub و چندین Selenium Node خواهد بود که امکان جمع‌آوری (Scraping) داده‌ها و تحلیل عملکرد کاربران فعال کوئرا را فراهم می‌سازد. این زیرساخت به علیشا کمک خواهد کرد تا اطلاعات لازم برای بهبود هر چه بیشتر تجربه کاربران را به‌دست آورد و تصمیمات مبتنی بر داده اتخاذ کند.

پروژه اولیه🔗

برای دانلود پروژه‌ی اولیه روی این لینک کلیک کنید.

برای راه‌اندازی یک Selenium Grid برای جمع‌آوری داده‌های کاربران، از یک فایل docker-compose.yml استفاده خواهیم کرد. شما باید در فایل docker-compose.yml سرویس‌های زیر را تعریف کنید:

سرویس سلنیوم هاب (Selenium Hub)🔗

  • با استفاده از ایمیج زیر، یک سرویس با نام selenium-hub ایجاد کنید.
registry.gitlab.com/qio/standard/selenium/hub:4.10.0
Plain text
  • نام کانتینر را selenium-hub قرار دهید.

  • پورت 4444 را به صورت 4444:4444 به میزبان متصل کنید.

سرویس‌های نود‌های سلنیومی (Selenium Nodes)🔗

سرویس Chrome Node🔗

با استفاده از ایمیج زیر، یک سرویس با نام chrome ایجاد کنید:

registry.gitlab.com/qio/standard/selenium/node-chrome:4.10.0
Plain text
  • نام کانتینر باید chrome-node باشد.

سرویس Firefox Node🔗

با استفاده از ایمیج زیر، یک سرویس با نام firefox ایجاد کنید:

registry.gitlab.com/qio/standard/selenium/node-firefox:4.10.0
Plain text
  • نام کانتینر باید firefox-node باشد.

سرویس Nginx🔗

علاوه بر راه‌اندازی یک Selenium Grid، علیشا که پیش‌تر با ابزار سلنیوم کار نکرده است، از شما می‌خواهد تا یک سرویس با نام nginx نیز با استفاده از ایمیج زیر ایجاد کنید تا او بتواند با ابزاری که برای Selenium Grid راه‌اندازی کرده‌اید را روی آن تست کند:

registry.gitlab.com/qio/standard/nginx:1.20.2-alpine
Plain text
  • نام کانتینر باید nginx-server باشد.
  • پورت ۸۰ باید به صورت 8081:80 به میزبان متصل شود.
  • مسیر محلی ./nginx/html باید به مسیر /usr/share/nginx/html درون کانتینر متصل (Mount) شود.

آن‌چه باید آپلود کنید🔗

  • توجه: شما باید موارد خواسته شده در سوال را تنها در قالب فایل docker-compose.yml پیاده‌سازی کرده و ارسال کنید. همچنین شما باید حتما تنها از ایمیج‌های معرفی شده در متن سوال استفاده کنید. استفاده از سایر ایمیج‌ها باعث عدم داوری ارسال شما خواهد شد.

  • توجه: شما اجازه‌ی build کردن یک ایمیج جدید نخواهید داشت و باید از ایمیج‌های استاندارد کوئرا استفاده کنید.

  • توجه: نام کانتینر‌ها و سرویس‌ها باید دقیقا عبارات گفته شده در متن سوال باشند.

  • توجه: سیستم داوری کوئرا به‌صورت خودکار فایل docker-compose.yml را با کامند up اجرا می‌کند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید.

  • توجه: ورژن docker-compose.yml باید 3.3 باشد.

extensionFromNamedocker-compose.yml
version: "3.3"

# Do not forget that the only available 
# selenium hub image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/hub:4.10.0

# Do not forget that the only available 
# selenium node-chrome image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/node-chrome:4.10.0

# Do not forget that the only available 
# selenium node-firefox image is accessible with the following url:
# registry.gitlab.com/qio/standard/selenium/node-firefox:4.10.0

# Do not forget that the only available 
# nginx image is accessible with the following url:
# registry.gitlab.com/qio/standard/nginx:1.20.2-alpine
YAML
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.