علی قایینی
علی قایینی
خواندن ۴ دقیقه·۵ سال پیش

۵ اشتباه در یادگیری میکروسرویس (Microservice)

هنگامی که ما در حال یادگیری یک تکنولوژی جدید هستیم. ما همیشه به آنچه که قبلا در پروژه‌های گذشته تجربه کرده‌ایم تکیه می کنیم. به همین دلیل با پیش فرض ذهنی خودمون بعضی چیز ها رو نتیجه گیری میکنیم که عمدتا درست از کار در نمیاد مخصوصا زمانی که در حال یادگیری یکی از جدیدترین و مهم ترین مفاهیم در حال حاضر هستیم یعنی میکروسرویس.

در این مطلب ، ما در مورد پنج اشتباه اصلی که هنگام یادگیری موضوع میکروسرویس مرتکب می شویم بحث خواهیم کرد.

اشتباه شماره ۱ : "شبیه هم پنداشتن SOA و میکروسرویس"

اگرچه SOA و Microservice هر دو سبک معماری هستند ولی تفاوت های زیادی با هم دارند.

معماری سرویس گرا (SOA)

  • رویکرد آن، اتصال اپلیکشن های موجود از طریق یک نمونه ESB، از طریق پروتکل‌های ارتباطی مختلف است.
  • اتصال و تحویل پیام بین نقاط نهایی باید در درون ESB انجام شود.
  • سرویس داخل ESB باید با یک زبان نوشته شود و از پروتکل های ارتباطی HTTP استفاده کند. مانند: (rest, soap, ...)
  • هزینه زیاد انتقال داده های بزرگ بین بخش ها با توجه به کد کردن و دیکد کردن آن ها.
  • مقیاس پذیری عمودی (Vertically scalable)
  • وابستگی کل سیستم به ESB

معماری میکروسرویس (Microservice)

  • رویکرد آن ایجاد یک اپلیکشن است که می تواند در یک محیط جدا شده با بانک اطلاعاتی خود اجرا شود.
  • سرویس ها به طور مستقیم باهم ارتباط برقرار می کنند از این طریق میکروسرویس می تواند به یک رویداد خاص دریافت شده پاسخ دهد.
  • میکروسرویس را می توان به هر زبان برنامه نویسی (جاوا ، پایتون ، جاوا اسکریپت و پی اچ پی و ...) نوشت.
  • قرارداد های Rest را دنبال می کند و امکان استفاده از پروتکل های ارتباطی باینری مثل Google protobuf یا Twitter Finagle وجود دارد.
  • مطابقت با فیچر های پروژه مونولتیک فعلی.
  • تاب‌آوری در رویداد خطا (Fault tolerance).
  • مقیاس پذیری افقی (Horizontally scalable).
  • میکروسرویس ها خود را در API Gateway ثبت می کنند و بطور خودکار توسط میکرو سرویس های دیگر پیدا می شوند.

اشتباه شماره ۲: "اگر من از REST استفاده کنم، پس میکروسرویس دارم"

در معماری میکروسرویس رویکرد ارتباط با rest تنها یکی از ویژگی های اصلی است. برای اینکه یک برنامه به عنوان یک راه حل میکروسرویس ارائه شود باید تمام خصوصیات توصیف شده با ۱۲ عامل را داشته باشد.

اشتباه شماره ۳: "میکروسرویس ها می توانند در همان کانتینر اجرا شوند"

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

  • با تمام منابع لازم در محیط خود کاملاً منزوی کار کند.
  • کاملا مستقل عمل کند.
  • امکان دنبال کردن و trace کردن را داشته باشد.
  • میکروسرویس های دیگر باید به صورت خودکار آن را پیدا کنند.

این ها برای حفظ مقیاس پذیری مناسب و تاب‌آوری در رویداد خطا ضروری هستند.

اشتباه ۴: "همه میکروسرویس باید با یک زبان برنامه‌نویسی نوشته شوند"

هنگامی که میکروسرویس ها روی کانتینر های مختلف کار می کنند و کار های مربوط به خودشان را انجام می دهند نیازی به اجرای کار های خرد به یک زبان برنامه نویسی خاص نیست و با توجه به نیاز هر میکروسرویس میتوان یک زبان برنامه نویسی را انتخاب کرد.

با توجه به این موضوع، می‌توانید تیم‌های کوچک‌تر، هر یک با تخصص خاص از عملکرد کسب‌وکار و زبان‌های برنامه‌نویسی، برای تسهیل در تکامل راه‌حل های کسب‌ و کار به طور مستقل فعالیت داشته باشند.

اشتباه شماره ۵: "میکروسرویس ، همانطور که از نام آن پیداست ، باید کوچک باشد"

میکرو در میکروسرویس منطق کسب‌ و کار را که امروزه در برنامه مونولتیک وجود دارد ، نشان می دهد.

کلمه میکرو راجب اندازه صحبت نمی کند راجب حداقل منطق کسب کار هست در مقایسه با کل منطق کسب و کار در مونولتیک.

مشکلات کسب و کار به قطعات کوچکتر تقسیم می شود تا به راحتی کلیه درخواست های مربوط به هر مشکل کسب و کار مشخص شود.


در این مطلب ۵ اشتباه را بررسی کردیم. آیا شما با اشتباهات دیگری برخورد کرده اید؟‌

برنامه نویسیمیکروسرویسmicroserviceمعماری نرم افزار
یه بک اند دولوپر :)
شاید از این پست‌ها خوشتان بیاید