میکروسرویس ها، سرویس های ابری و سرویس های همه منظوره ابزارهای توسعه فوق العاده ای هستند که گاهی اوقات بیش از حد مورد استفاده قرار می گیرند. در اینجا چند نشانه وجود دارد که شما بیش از حد پیش رفته اید.
توسعه سرویسمحور قدیمیتر از آن چیزی است که اکثر مردم تصور میکنند. بله، مفهوم میکروسرویس یک روند نسبتاً جدید است. با این حال، توسعهدهندگان سالها از سرویسها برای ایجاد برنامهها و هماهنگسازیها از سرویسهای موجودی که شما توسعه نمیدهید یا سرویسهای جدیدی که توسعه میدهید، استفاده کردهاند.
برای دسترسی به رفتار و/یا دادهها، فرقی نمیکند که یک سرویس را میکروسرویس، سرویس دقیق، سرویس ابزار (مانند APIها یا سرویسهای ذخیرهسازی ابری)، یا یک API برنامه معمولی صدا کنید. استفاده از سرویسها معمولاً به این معنی است که شما از معماری سرویسگرا استفاده میکنید که بر ساخت برنامههای کاربردی از اجزای جدید یا از قبل موجود تمرکز دارد.
تکنولوژی برای محدود کردن تعداد سرویسهایی که میتوانید در یک برنامه کاربردی واحد استفاده کنید و آن سرویسها چه کار میکنند استفاده میشود. در گذشته، استفاده از بسیاری از سرویسهای دقیق (سرویسهایی که کارهای مجزایی مانند بهروزرسانی پایگاه داده با نوع خاصی از دادهها را انجام میدادند) در صورت استفاده بیش از حد در یک برنامه، باعث مشکلات عملکردی میشد.
این روزها میتوانیم مشکلات عملکرد را با پرتاب کردن سیستمهای محاسباتی، شبکه و ذخیرهسازی ارزان قیمت پنهان کنیم. ناکارآمدی هنوز وجود دارد، اما توسط نسلهای جدید پردازش برنامههای پیشرفته که مشکلات عملکرد را برطرف میکنند، انتزاع شده است. اگر می توانید استفاده از خدمات دیگر موضوعی نیست. در عوض، این سوال مطرح می شود که چقدر باید از خدمات استفاده کنید؟ آیا در وهله اول باید از آنها استفاده کنید؟
استفاده بیش از حد از سرویسهایی که اکنون میبینم معمولاً شامل ریزسرویسها میشود، تا جایی که برنامه بیش از حد پیچیده میشود و خدمات زیادی را تحت تأثیر قرار میدهد که رمزگشایی قصد اصلی توسعهدهنده اصلی غیرممکن است. چیزی که اغلب اتفاق می افتد، شکستن یک جنبه از برنامه به سرویس ها است، حتی اگر این سرویس فقط یک بار در طول پردازش استفاده شود و هرگز توسط برنامه های دیگر استفاده نمی شود.
این یکی از آن موقعیتهایی است که در آن برنامه کاربردی نهایی کار میکند، و حتی الزامات تجاری اصلی اختصاص داده شده به پروژه را حل میکند. با این حال، استفاده بیش از حد برنامه از انواع سرویسها، آن را پیچیدهتر میکند، که با توجه به تعداد دفعاتی که به سرویسهای خارجی که معمولاً در جاهای دیگر اجرا میشوند، میتواند باعث مشکلات عملکرد شود. استفاده بیش از حد از خدمات همچنین به این معنی است که ساخت، آزمایش و استقرار برنامه دو برابر بیشتر طول می کشد.
قبل از اینکه افراد متنفر من را در مورد استفاده مناسب از خدمات دعوت کنند، اینجا را تعمیم می دهم. استفاده یا عدم استفاده از خدمات هرگز یک پاسخ باینری نخواهد بود. من استفاده از خدمات را به عنوان بهترین رویکرد برای ساخت برنامه های کاربردی پویاتر و چابک تر، معمولاً با چرخه های توسعه سریع تر و کیفیت بهتر، تبلیغ می کنم. با این حال، من همچنین می بینم که توسعه دهندگان با استفاده بیش از حد از خدمات، از صخره ای خارج می شوند. باز هم، نتیجه بسیار مکرر پیچیدگی بیش از حد، مشکلات عملکرد، و حتی برنامههای کاربردی ناپایدار در طولانی مدت است.
بنابراین، قوانین کلی برای جلوگیری از معایب خدمات چیست؟
ابتدا، مراقب سرویسهایی باشید که فقط یک بار با آنها تماس میگیرید—خدماتی که دیگر برنامهها هرگز با آنها تماس نخواهند گرفت. بهطور کلی، بهتر است آنها را به خدمات تبدیل نکنید.
دوم، با طرز فکر بهینه سازی بسازید. به تعداد منابعی که هنگام اجرای برنامه در یک ابر عمومی استفاده می شود نگاه کنید. به یاد داشته باشید، هر استفاده از یک منبع ابری به صورتحسابهای ابری بالاتر تبدیل میشود. بدون معیار بهینه سازی در ذهن، برنامه ها به راحتی می توانند از خدمات بیش از حد استفاده کنند و هزینه های شبکه، محاسبات و سایر خدمات را افزایش دهند. هنگامی که بهینه سازی منابع برنامه را در نظر می گیرید، پلت فرم توسعه، سیستم عامل ها و استفاده از سرویس های بومی ابری باید مورد توجه قرار گیرند.
در نهایت، از سر خود استفاده کنید. اینها قوانین اساسی و کلی هستند. شما راهنمای نهایی برای نحوه اعمال آنها در پلتفرم خاص خود خواهید بود. اکثر توسعه دهندگان متوجه می شوند که وقتی بیش از حد از خدمات استفاده می کنند، برنامه بدتر خواهد شد. پیام اصلی من این است که وقتی نوبت به توسعه ابری متمرکز بر خدمات میرسد، دور زدن یک چیز خوب آسان است.
پست های مرتبط
بیش از حد توسعه ابر متمرکز بر خدمات
بیش از حد توسعه ابر متمرکز بر خدمات
بیش از حد توسعه ابر متمرکز بر خدمات