ویرگول
ورودثبت نام
حمزه قائم پناه
حمزه قائم پناهمهندس نرم‌افزار و عاشق توسعه فردی - تکنیکال لید - اکس هم بنیان‌گذار و مدیرفنی و پرداکت استارتاپ کشمون
حمزه قائم پناه
حمزه قائم پناه
خواندن ۱ دقیقه·۱۲ روز پیش

نقشه راه انتخاب بین مونولیتیک یا مایکروسرویس

معماری مونولیتیک همیشه به چند دلیل اولین انتخاب می‌تونه باشه: توسعه، تست، استقرار و رشد دادنش خیلی ساده است که این ویژگی‌ها در مراحل اولیه ایده (early-stage) خیلی مفیده.

اما چطور معماری مونولیتیک می‌تونه تبدیل به جهنم بشه:

  • پیچیدگی‌هایی که برنامه‌نویس رو پیر می‌کنه: کد بیس اونقد بزرگ بشه که دیگه واقعا نشه یک برنامه‌نویس همه‌شو به طور کامل بفهمه. اون موقع‌اس که تغییرات کند و ریسکی میشه.

  • توسعه و استقرار کند بشه: اونقدر کدبیس بزرگ شده که، زمان توسعه و راه‌اندازی زیاد شده، در حدی که دیگه نسخه‌های جدید ماهانه بالا میان و خبری از استقرار مستمر (continuous deployment) نیست و تست‌های دستی گلوگاه (bottleneck) شدن.

  • مشکلات رشد دادن پیش بیاد: درون یک کدبیس مونولیتیک، بین نیازهای منابع مثل CPU و RAM تداخل پیش بیاد.

  • اطمینان به سیستم کم بشه و مدیریت خطاها سخت بشه: یک باگ توی یک بخش می‌تونه کل سیستم رو مختل کنه.

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

توجه داشته باشیم که Microservicef با Service Oriented Architecture متفاوته، دیتابیسش مشترکه، پروتکل ارتباطیش متفاوته و سیستم‌هایی با سایز بزرگ هستن.

معایب مایکروسرویس:

  • پیچیدگی سیستم‌های توزیع شده: Network latency, eventual consistency, debugging

  • چالشِ تقسیم‌بندی سیستم: ریسک تولید سیستم‌های مونولیتیکِ توزیع شده :))

  • سربار عملیاتی: DevOps automation (orchestration, monitoring)

  • پیچیدگی در تست: تست End-to-end سخت‌تر خواهد شد

مایکروسرویس
۰
۰
حمزه قائم پناه
حمزه قائم پناه
مهندس نرم‌افزار و عاشق توسعه فردی - تکنیکال لید - اکس هم بنیان‌گذار و مدیرفنی و پرداکت استارتاپ کشمون
شاید از این پست‌ها خوشتان بیاید