چالش های تولیدی که توسط توسعه دهندگان پس زمینه (با راه حل) روبرو هستند

به عنوان یک توسعه دهنده باطن که با یک پشته فنی کار می کند که شامل Java ، Spring Boot ، Mariadb ، MySQL ، MongoDB ، Redis ، Kafka ، Docker ، Ansible و غیره است ، اغلب در مصاحبه ها از شما سؤال می شود: “آیا در طول یا در تولید با چالش هایی روبرو شده اید بعد از استقرار؟ “
در زیر لیست کاملی از موضوعات تولید مشترک ، همراه با راه حل های آنها آورده شده است. این به عنوان یک راهنمای مرجع سریع برای تهیه مصاحبه است:
1. شکست های استقرار
سناریو:
در حین استقرار صفر به پایین با استفاده از Docker ، ترافیک قبل از اولیه سازی به ظروف منتقل شد و باعث 502 خطا شد.
راه حل:
- بررسی های بهداشتی اضافه شده در Docker.
- استفاده از استراتژی استقرار به روزرسانی های نورد.
- قلاب های خاموش کننده برازنده در Boot Spring.
2. فرسودگی استخر اتصال پایگاه داده
سناریو:
رویداد پر ترافیک منجر به خستگی استخر اتصال شد و باعث خرابی اتصال DB شد.
راه حل:
- تنظیمات استخر اتصال Hikaricp تنظیم شده.
- شاخص های اضافه شده برای بهینه سازی نمایش داده های آهسته.
- منطق آزمایش مجدد را با پشتوانه نمایی اجرا کرد.
- معیارهای اتصال نظارت شده از طریق پرومتئوس.
3. تخریب عملکرد پس از استقرار
سناریو:
یک پرس و جو جدید باعث ایجاد سنبله زمان پاسخ به دلیل اسکن کامل جدول شد.
راه حل:
- از محرک های بوت بهار برای نظارت بر عملکرد استفاده شده است.
- ذخیره سازی Redis اضافه شده است.
- نمایش داده شدگان با استفاده از برنامه توضیح و شاخص های اضافه شده.
- از صفحه بندی برای مجموعه داده های بزرگ استفاده شده است.
4. redis از حافظه
سناریو:
Redis از حافظه فرار کرد و منجر به اخراج کلیدی شد.
راه حل:
- پیکربندی TTL برای کلیدهای حافظه پنهان.
- سیاست های اخراج را بر اساس اهمیت کلیدی تنظیم کنید.
- گرم شدن حافظه نهان و حافظه پنهان.
5. پیام kafka تاخیر یا از دست دادن
سناریو:
مصرف کنندگان به دلیل حجم زیاد پیام عقب افتادند.
راه حل:
- تنظیم زمانبندی نظرسنجی مصرف کننده و حداکثر پارتیشن بایت.
- مصرف کنندگان چند رشته ای برای پردازش موازی استفاده شده است.
- تاخیر نظارت شده با استفاده از معیارهای تلاقی و پرومتئوس.
6
سناریو:
متغیرهای محیط اشتباه باعث خرابی اتصال DB شدند.
راه حل:
- اسکریپت های ورودی اضافه شده برای اعتبار سنجی متغیرهای محیط.
- اسرار Docker برای تنظیمات ایمن استفاده شده است.
- استراتژی برگشت برگشت برای استقرار معیوب.
7
سناریو:
کار دسته ای به دلیل نتایج بدون بسته منجر به نشت حافظه شد.
راه حل:
- زباله های پشته را با استفاده از Mat Eclipse تجزیه و تحلیل کرد.
- برای بسته شدن اتصالات DB ، بدون منابع را تضمین می کند.
- محدودیت های حافظه JVM را در ظروف Docker تنظیم کنید.
8. تصادف برنامه پس از استقرار
سناریو:
ورودی مورد لبه باعث خراب شدن برنامه شد.
راه حل:
- الگوی قطع کننده مدار (Resilience4J).
- اعتبار سنجی و رسیدگی به استثنا اضافه شده است.
- آزمایش واحد تقویت شده و آزمایش هرج و مرج را معرفی کرد.
9. خطاهای پیکربندی YAML
سناریو:
پیکربندی تایپی باعث خرابی اتصال Redis شد.
راه حل:
- از پروفایل های بهاری برای تنظیمات خاص محیط استفاده می شود.
- YAML معتبر در طول CI/CD.
- Ansible برای مدیریت پیکربندی.
10. بازگشت در هنگام خرابی استقرار
سناریو:
استقرار جدید باعث ایجاد مشکلات شد. بازگشت سریع مورد نیاز است.
راه حل:
- استقرار آبی-سبز استفاده شده است.
- نسخه تصویر Docker Docker قبلی را حفظ کرده است.
- ویژگی های کاربردی برای کنترل ویژگی ها.
11. حالت متناقض به دلیل عدم موفقیت در دفترچه بازی
سناریو:
کتاب پخش Ansible تا حدی شکست خورده و باعث ناسازگاری سیستم می شود.
راه حل:
- idempotency را در کارهای غیرقابل اطمینان تضمین کرد.
- کتابهای بازی آزمایش شده با حالت اجرای خشک.
- کتابهای پخش برگشت برای بازگشت.
12. نظارت پس از استقرار
رویکرد:
- محرک های بوت بهار برای سلامت و معیارهای کاربردی.
- پرومتئوس و گرافانا برای نظارت در زمان واقعی.
- Elk Stack برای ورود به سیستم متمرکز.
- هشدارها را از طریق Prometheus یا PagerDuty تنظیم کنید.
13. مسائل همزمانی
سناریو:
شرایط مسابقه در حین به روزرسانی های ضد پیشخوان.
راه حل:
- از عملیات اتمی redis مانند inc استفاده می شود.
- قفل های توزیع شده با Redis.
14. بزرگترین مثال چالش تولید
سناریو:
فرسودگی استخر اتصال پایگاه داده در طول یک کمپین بازاریابی باعث خرابی شد.
راه حل:
- افزایش اندازه استخر Hikaricp به صورت پویا.
- ذخیره سازی Redis.
- نمایش داده های بهینه شده با استفاده از شاخص ها.
- بار قبل از وقایع آینده با jmeter آزمایش شده است.
غذای اصلی برای مصاحبه:
- روی مسائل مربوط به تولید در دنیای واقعی تمرکز کنید.
- تأکید بر تجزیه و تحلیل علت ریشه (RCA).
- راه حل های نظارت فعال را برجسته کنید.
- در مورد همکاری با DevOps ، QA و DBAS بحث کنید.
این راهنما به شما کمک می کند تا با اطمینان به سؤالات مربوط به تولید در مصاحبه ها پاسخ دهید. تمرین و درک این سناریوها را عمیقاً ادامه دهید!