میرکوسرویس ها بدهی فنی هستند… اینطور نیست؟

Summarize this content to 400 words in Persian Lang به عنوان یک مهندس نرم افزار، من همیشه معتقد بودم که میکروسرویس ها هستند پیش فرض روشی برای ساخت برنامه های کاربردی مدرن و مقیاس پذیر. برای من، یکپارچهها مانند یک یادگار منسوخ از گذشته به نظر میرسیدند – چیزی که باید به نفع انعطافپذیری و نوآوریهای ریز سرویسهای وعده داده شده حذف شود.
اما اخیراً با دیدگاهی مواجه شدم که این باور را به چالش کشید. این از یک مصاحبه روشنگرانه (لینک به مصاحبه اصلی) و یک بررسی بعدی (لینک به بررسی) بود که جرقه یک تجدید نظر جدی از سوی من شد.
من نمی توانم استدلال ها را بهتر از دیوید (گوینده در مصاحبه) بیان کنم، بنابراین توصیه می کنم خودتان آن را تماشا کنید. در اینجا چند نکته کلیدی آورده شده است:
میکروسرویس ها واقعاً درباره چه هستند
همسویی سازمانی و پویا: ریزسرویس ها اغلب بیشتر در مورد نحوه عملکرد تیم ها و سازمان ها هستند تا معماری نرم افزاری خالص.
چالش های میکروسرویس ها
اینها چالشهایی هستند که در هنگام پذیرش میکروسرویسها در تلاش برای تسریع توسعه با آنها مواجه میشویم:
افزایش پیچیدگی شبکه: مدیریت ارتباط بین سرویس ها می تواند نقاط تأخیر و خرابی را معرفی کند.
اصطکاک بین تیمی: وابستگی بین سرویس ها اغلب به معنای وابستگی بین تیم ها است.
مانیتورینگ و رفع اشکال: ماهیت توزیع شده ردیابی مسائل و نظارت بر سیستم را بسیار سخت تر می کند.
مصرف منابع: هر سرویس به زمان اجرا خود نیاز دارد که اغلب منجر به استفاده ناکارآمد از منابع می شود.
پیچیدگی سیستم: تعداد زیادی از خدمات به هم پیوسته بار شناختی را برای توسعه دهندگان افزایش می دهد.
خرابی های آبشاری: شکست در یک سرویس می تواند به روش های غیرقابل پیش بینی در سیستم منتشر شود.
اثر سیلو: تیم ها می توانند منزوی شوند زیرا آنها فقط روی خدمات خود تمرکز می کنند و تصویر بزرگتر را از دست می دهند.
توسعه محلی سخت تر: اجرای چندین سرویس به صورت محلی می تواند دست و پا گیر باشد.
Schema/API Evolution: بهروزرسانی طرحوارهها یا APIها به هماهنگی دقیق بین سرویسها نیاز دارد.
معاملات توزیع شده: مدیریت تراکنش های بین سرویس ها یک چالش بدنام است.
… و لیست ادامه دارد.
آیا واقعا ارزشش را دارد؟
بر اساس تجربه شرکتهای موفق، اتخاذ ریزسرویسها میتواند راهی قدرتمند برای افزایش سرعت توسعه و در برخی موارد تنها راه برای تضمین بقای یک شرکت باشد.
سوالی که از شما می پرسم این است: آیا باید همیشه با میکروسرویس ها شروع کنیم یا بهتر است در صورت نیاز بعداً آنها را اتخاذ کنیم؟
PS مزایای مقیاسپذیری که معمولاً به میکروسرویسها نسبت داده میشود، اغلب بیشتر در مورد تقسیم و تقسیم مؤثر دادهها است تا خود معماری میکروسرویسها.
به عنوان یک مهندس نرم افزار، من همیشه معتقد بودم که میکروسرویس ها هستند پیش فرض روشی برای ساخت برنامه های کاربردی مدرن و مقیاس پذیر. برای من، یکپارچهها مانند یک یادگار منسوخ از گذشته به نظر میرسیدند – چیزی که باید به نفع انعطافپذیری و نوآوریهای ریز سرویسهای وعده داده شده حذف شود.
اما اخیراً با دیدگاهی مواجه شدم که این باور را به چالش کشید. این از یک مصاحبه روشنگرانه (لینک به مصاحبه اصلی) و یک بررسی بعدی (لینک به بررسی) بود که جرقه یک تجدید نظر جدی از سوی من شد.
من نمی توانم استدلال ها را بهتر از دیوید (گوینده در مصاحبه) بیان کنم، بنابراین توصیه می کنم خودتان آن را تماشا کنید. در اینجا چند نکته کلیدی آورده شده است:
میکروسرویس ها واقعاً درباره چه هستند
همسویی سازمانی و پویا: ریزسرویس ها اغلب بیشتر در مورد نحوه عملکرد تیم ها و سازمان ها هستند تا معماری نرم افزاری خالص.
چالش های میکروسرویس ها
اینها چالشهایی هستند که در هنگام پذیرش میکروسرویسها در تلاش برای تسریع توسعه با آنها مواجه میشویم:
افزایش پیچیدگی شبکه: مدیریت ارتباط بین سرویس ها می تواند نقاط تأخیر و خرابی را معرفی کند.
اصطکاک بین تیمی: وابستگی بین سرویس ها اغلب به معنای وابستگی بین تیم ها است.
مانیتورینگ و رفع اشکال: ماهیت توزیع شده ردیابی مسائل و نظارت بر سیستم را بسیار سخت تر می کند.
مصرف منابع: هر سرویس به زمان اجرا خود نیاز دارد که اغلب منجر به استفاده ناکارآمد از منابع می شود.
پیچیدگی سیستم: تعداد زیادی از خدمات به هم پیوسته بار شناختی را برای توسعه دهندگان افزایش می دهد.
خرابی های آبشاری: شکست در یک سرویس می تواند به روش های غیرقابل پیش بینی در سیستم منتشر شود.
اثر سیلو: تیم ها می توانند منزوی شوند زیرا آنها فقط روی خدمات خود تمرکز می کنند و تصویر بزرگتر را از دست می دهند.
توسعه محلی سخت تر: اجرای چندین سرویس به صورت محلی می تواند دست و پا گیر باشد.
Schema/API Evolution: بهروزرسانی طرحوارهها یا APIها به هماهنگی دقیق بین سرویسها نیاز دارد.
معاملات توزیع شده: مدیریت تراکنش های بین سرویس ها یک چالش بدنام است.
… و لیست ادامه دارد.
آیا واقعا ارزشش را دارد؟
بر اساس تجربه شرکتهای موفق، اتخاذ ریزسرویسها میتواند راهی قدرتمند برای افزایش سرعت توسعه و در برخی موارد تنها راه برای تضمین بقای یک شرکت باشد.
سوالی که از شما می پرسم این است: آیا باید همیشه با میکروسرویس ها شروع کنیم یا بهتر است در صورت نیاز بعداً آنها را اتخاذ کنیم؟
PS مزایای مقیاسپذیری که معمولاً به میکروسرویسها نسبت داده میشود، اغلب بیشتر در مورد تقسیم و تقسیم مؤثر دادهها است تا خود معماری میکروسرویسها.