۴ چالش اساسی در معماری میکروسرویس

۱۹ مهر ۱۳۹۸

معماری میکروسرویس به زبان ساده

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

یک برنامه با استفاده از API با سایر برنامه‌ها یا سرویس‌ها ارتباط برقرار می کند.

۱٫ استفاده نکردن از پایگاه داده مشترک در معماری میکروسرویس

هر میکروسرویس باید بانک اطلاعاتی خود را داشته باشد و داده‌ها نباید از طریق یک پایگاه داده به اشتراک گذاشته شوند. استفاده از این قانون، از کار افتادن کامل خدمات شبکه به دلیل یک ایراد مشترک را برطرف می کند. به عنوان مثال، اگر دو سرویس در یک بانک اطلاعاتی یکسان مشترک باشند، اگر سرویس اول شما پایگاه داده را تغییر داده باشد، سرویس دوم از کار می‌افتد. سپس تیمها مجبور هستند قبل از تغییر دیتابیس ،با یکدیگر ارتباط برقرار کنند و همین امر منجر به تاخیر شده و ما را به عقب برمی‌گردانند. به طور کلی این قانون بسیارخوبی است و نباید شکسته شود. با این حال، یک مشکل وجود دارد. آن هم زمانی است که دو سرویس، داده های یکسانی را به اشتراک می گذارند (به عنوان مثال داده های حساب بانکی، سبد خرید) و نیاز به به روزرسانی داده ها، با استفاده از معاملات بانک اطلاعاتی، برای اجرای ثبات دارند.

۲٫ رسیدگی به امنیت میکروسرویس

یک برنامه با استفاده از API با سایر برنامه‌ها یا سرویس‌ها ارتباط برقرار می کند. داده ها، پایه و اساس یک برنامه هستند، پس باید با استفاده از مکانیسم های امنیتی محافظت و امن شوند. به طور قطع امنیت پارامتری محسوب می‌شود که شاید وجودش به چشم نیاید، ولی قطعا نبود یا حتی کوچکترین نقضی در ساختار آن، کل معماری میکروسرویس را زیر سوال خواهد برد. بنابراین نیاز دارید تا توجه ویژه‌ای به آن داشته باشید. یک راه کار خسته کننده این است که امنیت در هر سطحی از میکروسرویس رعایت شده و تمام عملیات امنیتی زیر نظر مدیریت یک سرویس متمرکز در کنار این سرویس‌ها باشد.
راه کار بهتر، استفاده از روش‌های استاندارد امنیتی مبتنی بر API است. در یکی از این روش ها، مشتری با یک سرور هویت یا SSO صحبت می کند، خود را تأیید می کند، یک نشانه (Token) مخصوص که کاربر و نقش های او را با SAML یا OpenIDConnect توصیف می کند دریافت کرده و با هر درخواست، نشانه را به میکرو سرویس‌ها می فرستد. هر میکروسرویس نشانه را تأیید کرده و تماس‌ها را بر اساس نقش کاربر در توضیحات، در توکن مجاز می کند. این مدل، احراز هویت را به مشتری سوق داده و ضمن ساده کردن وابستگی، کنترل دسترسی را در میکروسرویس انجام می دهد. شایان ذکر است که مشتری می تواند یک بار نشانه یا توکن را دریافت کرده و از آن استفاده مجدد کند.

۳٫ رسیدگی به ترکیب میکروسرویس

در اینجا، ترکیب به معنای چگونگی اتصال چندین خدمت یا سرویس کوچک به یک جریان، برای ارائه آنچه کاربر نهایی نیاز دارد است. بیشتر ترکیباتی که با معماری سرویس گرا (SOA) کار می‌کنند، به شکل زیر ظاهر می شوند. یک سرور مرکزی وجود دارد که گردش کار را مدیریت می کند.

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

۴٫ جلوگیری از وابستگی در میکروسرویس

هدف میکروسرویس ایجاد امکان آزادسازی و استقرار خدمات به صورت مستقل است. برای این کار باید از جهنم وابستگی دوری کنید. اگر خدمات به طور مستقل منتشر نشوند، تمام تلاش شما برای ساخت میکروسرویس به هدر می رود. به عنوان مثال، می توانید یک قاعده داشته باشید که هیچ میکروسرویسی اجازه ندارد از API هایی که بیش از سه ماه عمر دارند، استفاده کند. این امر به توسعه دهندگان میکروسرویس اجازه می دهد، تا سرانجام از دست نسخه های قدیمی که برخی از مسیرهای کد را پشتیبانی می‌کنند، رها شوند.

0
برچسب ها :
نویسنده مطلب سمانه رحیمی

بدون دیدگاه

لینک های مفید