مزایای معماری میکروسرویس (Micro service)

8,751

مزایای معماری میکروسرویس ها نسب به معماری یکپارچه (مانلیتیک) چیست؟ توسعه دهندگان برای مواجهه با «مقیاس پذیری و مشکلات نگهداری»  سعی می‏کنند تا از ساختار یکپارچه به سمت ساختار میکروسرویس حرکت کنند. اما واقعا ضرورتی در این کار وجود دارد؟ معماری میکروسرویس، چه مشکلاتی را می‏تواند حل کند؟  در این مطلب از اَپی اِکو به بررسی مزایای معماری میکروسرویس با ترجمه مقاله‌ای از rubygarage می‌پردازیم.


مزایای معماری میکروسرویس


مقیاس پذیری سرویس، یک دغدغه مهم در آینده!

برخی توسعه دهندگان، از اول به فکر ساختار میکروسرویس نیستند. شاید به دلیل ارزان‏تر بودن، سرعت بیشتر و نیاز به مهارت کمتر «مدل مانلیتیک» آن را ترجیح دهند. گرچه،  در زمان ارائه محصول و یا ارتقاء آن، توسعه دهنده باید با مسائل مختلفی دست و پنجه نرم کند. مانند کاری که تیم Airbnb  کرد.

باتوجه به فروشگاه آنلاین بزرگی مانند Airbnb ، که با ساختار مانلیتیک متکی بر رابی و رایلز بنا شده، در ابتدا، این ساختار بسیار مفید واقع شد.

طبق تحقیقات جسیکا تای – به‏ عنوان یک توسعه ‏گر در Airbnb – با توجه مرجوعیات و غیره، تاخیر در کدگذاری محصولات، به ۱۵ ساعت در هفته رسید. اوج کار، زمانی بود که پلتفرم به ۵۰۰،۰۰۰ خط کدگذاری شده رسید بود. در این زمان، Airbnb متوجه شد که مشکل اصلی، ساختار یکپارچه ه‏ای است که با سرویس مانیلیتیک خود، در کدگذاری دچار مشکل است. وقتی مشکلی ایجاد می‏شد، بررسی آن در هر کد، کار آسانی نبود، در نتیجه مسئول هر کد باید به بررسی آن کد و واکاوی مشکل می‏پرداخت.

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

امروزه Airbnb، هر هفته ۳،۵۰۰ ساختار میکروسرویس ارائه می‏ کند که مشتمل بر ۱۰۰۰ نرم‏ افزار مهندسی است (بجای ۲۰۰ تا در هفته) و صفحات تولیدات آن‏ها به بیش از ۱۰ برابر رسید که با ۱۰۰ درصد کاربرهای فعال و تولیدات ۱۰۰ درصدی همراه است.

 

عملکرد سریع تر، از مزایای معماری میکروسرویس !

همانطور که می دانید هر میکروسرویس، به‏ صورت «جداگانه» کار کرده و با تکنولوژی‏‌های مجزا قابل نوشتن هستند. این نکته در مورد ساختار میکروسرویس، از اهمیت بالایی برخوردار است.

ساختار میکروسرویس، این اجازه را به آمازون داد تا تیم ساختاری سه لایه ا‏ی خود را (UI، دیتابیس و تیم مهندسان) به تیم کوچکتر و مفیدتری تبدیل کند که متناسب با قابلیت تیم، به تولیدات ادامه دهند. تیم‏ های کوچک، مسئول هر سرویس، ساخت و اداره آن می ‏باشند.

هر تیم در آمازون، از قانون «دو پیتزا» پیروی می ‏کند: هر دو پیتزا باید بتواند یک تیم را سیر کند. این قانون توسط مدیر آمازون، جف بزوس ابداع شد.

 

ارتقاء مقیاس پذیری

از مزایای معماری میکروسرویس نسبت به ساختار به هم پیوسته مانلیتیک، این است که به بخش ‏های مختلف اجازه می‏دهد تا در هر میزانی، سرویس ارائه کنند. در حالی که ساختار مانیلیتیک، تنها می‏تواند کل نرم‏ افزار را مقیاس بندی کند. انعطاف پذیری میکروسرویس، به سیستم اجازه می‏دهد تا با سرعت بیشتری، بدون نیاز به افزایش بیش از حد منابع، گسترش پیدا کند.

این دقیقا همانی بود که نتفیلیکس در رویارویی با گسترش بیشتر کابران – در مقیاس بندی سریع‏تر- احتیاج داشت. در این شرایط، ساعت‏ ها و حتی روزها طول می‏ کشید تا تیم آن، ظرفیت مرکز داده ‏ها را افزایش دهند. با ساختار میکروسرویس، صدها سرور مجزا برای درخواست‏ های سرویس ‏ها، می‏توانند به‏طور همزمان راه اندازی شوند، به این معنی که تیم می‏تواند در صورت نیاز، در کمتر از چند دقیقا، ظرفیت خود را افزایش و یا کاهش دهد.

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

 

همکاری مستقل تیم‏‌های اجرایی

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

با تقسیم سیستم یکپارچه به سرویس‏ های مجزا و کوچک‏تر، نتفیلیکس هم به ۳۰ تیم مهندسی کوچک‏تر تقسیم شد که اکنون، هرکدام به‏ صورت مجزا در حال فعالیت می ‏باشند.


مزایای ساختار میکروسرویس


انعطاف‏ پذیری اجزا یکی از مزایای معماری میکروسرویس

تولیدات ساختار یکپارچه، در هنگام جابجایی با محصولات کاربردی‏ تر و یا تغییر، دارای سختی بیشتری می ‏باشند. وقتی مهندسان قصد اصلاح برخی از آنان را داشته باشند، ممکن است دچار تاثیرات موجی، باگ و یا خطا در کل سیستم شوند.

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

امروزه، گاردین می‏تواند متناسب با نیاز خود، به آسانی بخشی را به وب سایت خود افزوده و یا حذف کند. این امر، در بخش رویدادها، از اهمیت بالایی برخوردار است. زمانی که رویدادی به اتمام می‏رسد، توسعه‏ گرها می‏توانند به آسانی آن را حذف کنند، بدون اینکه به دیگر بخش ‏ها آسیبی برساند و یا ساختار اصلی سایت را تغییر دهند. بنابراین، گاردین توانست تا توانایی خود را در جایگذاری و تجهیز سیستم خود، با مهاجرت به ساختار میکروسرویس، ارتقا دهد.

 

افزایش رضایتمندی مشتریان !

برای خرده‏ فروش بزرگی مانند وال‌مارت، بازه زمانی پاسخ ‏دهی، نقش مهمی در موفقیت آن بازی می ‏کند. زمانی که شرکت به ۶ میلیون بازدید از صفحات خود رسید، مهندسان آن به این نتیجه رسیدند که ساختار یکپارچه، توان پاسخ به این رشد را ندارد و بدتر از آن، زمان مورد نیازی بود که آن‏ ها برای پاسخگویی احتیاج داشتند. این همان دلیلی است که در سال ۲۰۱۲، وال‌مارت تصمیم گرفت تا به سیستم میکروسرویس مهاجرت کند.

نتایج آن شگفت انگیز بود. بازه زمانی پاسخ‏ دهی به حداقل رسیده بود. وال‌مارت، با عدم استفاده از سخت‏ افزارهای گران‏ قیمت و مهاجرت به سرورهای مجازی، توانست تا مخارج خود را تا سقف ۵۰ درصد کاهش دهد.

ساختار میکروسرویس، برای تولیدات در حال رشد و تیم حرفه ‏ای، راه حل مناسبی است. اگر همچنان، برای مهاجرت به ساختار میکروسرویس دچار تردید هستید، به توضیحات زیر سر بزنید. این توضیحات محتوی بسیاری از دیگر مزایای این ساختار می‏ باشند.

 

آماده‏ ی درک بهتر از معماری میکروسرویس هستید؟

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

 

اِی پی آی (API) چیست؟!


منبع: rubygarage.org

مزایای معماری میکروسرویس

نویسنده: داریا آر –  شانزدهم آپریل ۲۰۱۹

مترجم: حمیدرضا نقلی

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.