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

Microservice Architecture یک الگوی طراحی خاص از معماری سرویس گرا است. این یک روش منبع باز است. در این نوع معماری سرویس، تمامی فرآیندها با کمترین دانه بندی برای پیاده سازی یک سیستم یا سرویس بزرگ با یکدیگر ارتباط برقرار می کنند. این آموزش در مورد عملکردهای اساسی معماری Microservice به همراه مثال های مرتبط برای درک آسان بحث می کند.این آموزش برای مبتدیان آماده شده است تا به آنها در درک مفاهیم اولیه معماری میکروسرویس کمک کند.پیش نیازهااین یک آموزش بسیار ابتدایی است و برای استفاده حداکثری از آن، دانش معقولی از برنامه نویسی کامپیوتر اولیه و معماری سرویس گرا لازم است.معماری میکروسرویس - مقدمهMicroservice یک متدولوژی توسعه اپلیکیشن مبتنی بر سرویس است. در این روش، برنامه های کاربردی بزرگ به کوچکترین واحدهای خدمات مستقل تقسیم می شوند. میکروسرویس فرآیند پیاده‌سازی معماری سرویس‌گرا (SOA) با تقسیم کل برنامه به عنوان مجموعه‌ای از خدمات به هم پیوسته است که در آن هر سرویس تنها به یک نیاز تجاری پاسخ می‌دهد.مفهوم رفتن به میکرودر معماری سرویس گرا، کل بسته های نرم افزاری به واحدهای تجاری کوچک و به هم پیوسته تقسیم می شوند. هر یک از این واحدهای تجاری کوچک با استفاده از پروتکل های مختلف با یکدیگر ارتباط برقرار می کنند تا کسب و کار موفقی را به مشتری ارائه دهند. حال سوال این است که معماری میکروسرویس (MSA) چه تفاوتی با SOA دارد؟ در یک کلام SOA یک الگوی طراحی و Microservice یک متدولوژی پیاده سازی برای پیاده سازی SOA یا می توان گفت Microservice نوعی SOA است.در زیر قوانینی وجود دارد که باید هنگام توسعه یک برنامه کاربردی Microservice-oriented در نظر داشته باشیم.مستقل - هر میکروسرویس باید به طور مستقل قابل استقرار باشد.کوپلینگ - همه ریزسرویس ها باید به طور آزاد با یکدیگر جفت شوند به طوری که تغییرات در یکی روی دیگری تأثیر نگذارد.هدف تجاری - هر واحد خدماتی از کل برنامه باید کوچکترین واحد باشد و قادر به ارائه یک هدف تجاری خاص باشد.اجازه دهید نمونه ای از پورتال خرید آنلاین را برای درک عمیق میکروسرویس در نظر بگیریم. اکنون، اجازه دهید کل این پورتال تجارت الکترونیک را به واحدهای تجاری کوچک مانند مدیریت کاربر، مدیریت سفارش، ورود، مدیریت پرداخت، مدیریت تحویل و غیره تقسیم کنیم. یک سفارش موفق باید از طریق همه این ماژول ها در یک زمان خاص انجام شود. راه حل های تجارت الکترونیکهر یک از این ماژول های کسب و کار باید منطق تجاری و ذینفعان خاص خود را داشته باشند. آنها با سایر نرم افزارهای فروشنده شخص ثالث برای برخی نیازهای خاص و همچنین با یکدیگر ارتباط برقرار می کنند. به عنوان مثال، مدیریت سفارش ممکن است با مدیریت کاربر برای دریافت اطلاعات کاربر ارتباط برقرار کند.اکنون، با توجه به اینکه شما در حال اجرای یک پورتال خرید آنلاین با تمام این واحدهای تجاری هستید که قبلاً ذکر شد، به برنامه‌ای در سطح سازمانی متشکل از لایه‌های مختلف مانند front-end، back-end، پایگاه داده و غیره نیاز دارید. اگر برنامه شما مقیاس‌پذیر نیست. و به طور کامل در یک فایل جنگی توسعه یافته است، سپس به عنوان یک برنامه یکپارچه معمولی نامیده می شود. طبق گفته IBM، یک برنامه یکپارچه معمولی باید ساختار ماژول زیر را در داخل داشته باشد که در آن تنها یک نقطه پایانی یا برنامه مسئول رسیدگی به تمام درخواست‌های کاربر باشد.واحد تجاری به تغییراتی در ماژول "جستجو" نیاز دارد. سپس، باید کل فرآیند جستجو را تغییر دهید و برنامه خود را مجدداً مستقر کنید. در این صورت، شما واحدهای دیگر خود را بدون هیچ تغییری مجدداً مستقر می کنید.واحد تجاریاکنون مجدداً واحد تجاری شما نیاز به تغییراتی در ماژول "Check out" دارد تا گزینه "کیف پول" را نیز در بر گیرد. اکنون باید ماژول "Check out" خود را تغییر دهید و همان را دوباره در سرور قرار دهید. توجه داشته باشید، شما ماژول‌های مختلف بسته‌های نرم‌افزاری خود را مجدداً مستقر می‌کنید، در حالی که ما هیچ تغییری در آن ایجاد نکرده‌ایم. در اینجا مفهوم معماری سرویس گرا به معماری Microservice اختصاص دارد. ما می‌توانیم برنامه یکپارچه خود را به گونه‌ای توسعه دهیم که هر یک از ماژول‌های نرم‌افزار به عنوان یک واحد مستقل رفتار کنند که قادر به انجام یک کار تجاری به طور مستقل باشد.مثال زیر را در نظر بگیرید.در معماری فوق، ما هیچ فایل گوش با سرویس پایان به پایان فشرده ایجاد نمی کنیم. در عوض، ما بخش‌های مختلف نرم‌افزار را با نمایش آنها به عنوان یک سرویس تقسیم می‌کنیم. هر بخشی از نرم افزار به راحتی می تواند با مصرف سرویس های مربوطه با یکدیگر ارتباط برقرار کند. به این ترتیب است که میکروسرویس نقش بزرگی در برنامه های وب مدرن ایفا می کند.اجازه دهید نمونه سبد خرید خود را در خط میکروسرویس مقایسه کنیم. ما می‌توانیم سبد خرید خود را در ماژول‌های مختلف مانند «جستجو»، «فیلتر»، «تسویه‌حساب»، «سبد خرید»، «توصیه» و غیره تجزیه کنیم. اگر می‌خواهیم یک پورتال سبد خرید بسازیم، باید آن را بسازیم. ماژول های فوق به گونه ای که می توانند به یکدیگر متصل شوند تا تجربه خرید خوبی را در 24x7 به شما ارائه دهند.مزایا و معایبدر زیر نکاتی در مورد مزایای استفاده از میکروسرویس به جای استفاده از یک برنامه یکپارچه آورده شده است.مزایایاندازه کوچک - Microservices پیاده سازی الگوی طراحی SOA است. توصیه می شود تا جایی که می توانید خدمات خود را حفظ کنید. اساساً، یک سرویس نباید بیش از یک کار تجاری را انجام دهد، از این رو به وضوح از نظر اندازه کوچک و نگهداری آن نسبت به هر برنامه یکپارچه دیگری آسان است.متمرکز - همانطور که قبلا ذکر شد، هر میکروسرویس برای ارائه تنها یک وظیفه تجاری طراحی شده است. در هنگام طراحی یک میکروسرویس، معمار باید به نقطه کانونی سرویس، که قابل ارائه آن است، توجه داشته باشد. طبق تعریف، یک میکروسرویس باید ماهیت کامل داشته باشد و باید متعهد به ارائه تنها یک ملک تجاری باشد.مستقل - هر میکروسرویس باید یک واحد تجاری مستقل از کل برنامه باشد. از این رو، برنامه به صورت سست تر متصل می شود که به کاهش هزینه تعمیر و نگهداری کمک می کندناهمگونی فناوری - Microservice از فناوری‌های مختلف برای برقراری ارتباط با یکدیگر در یک واحد تجاری پشتیبانی می‌کند، که به توسعه‌دهندگان کمک می‌کند تا از فناوری صحیح در مکان صحیح استفاده کنند. با پیاده سازی یک سیستم ناهمگن، می توان به حداکثر امنیت، سرعت و یک سیستم مقیاس پذیر دست یافت.انعطاف پذیری - انعطاف پذیری ویژگی ایزوله کردن یک واحد نرم افزار است. میکروسرویس در روش‌شناسی ساختمان از انعطاف‌پذیری بالایی پیروی می‌کند، از این رو هرگاه یک واحد با شکست مواجه شود، کل کسب‌وکار را تحت تأثیر قرار نمی‌دهد. انعطاف پذیری یکی دیگر از ویژگی هایی است که سیستم بسیار مقیاس پذیر و کم کوپل شده را پیاده سازی می کند.سهولت استقرار - از آنجایی که کل برنامه به قطعات کوچکی از واحدها تقسیم می شود، هر جزء باید ماهیت کامل پشته داشته باشد. همه آنها را می توان در هر محیطی بسیار آسان با پیچیدگی زمانی کمتر بر خلاف سایر برنامه های کاربردی یکپارچه از همان نوع مستقر کرد.در ادامه نکاتی در مورد معایب معماری میکروسرویس آورده شده است.معایبسیستم توزیع شده - به دلیل ناهمگونی فنی، فناوری های مختلفی برای توسعه بخش های مختلف یک میکروسرویس استفاده خواهد شد. مجموعه عظیمی از متخصصان ماهر برای پشتیبانی از این نرم افزار توزیع ناهمگن بزرگ مورد نیاز است. از این رو، توزیع شده و ناهمگونی به عنوان نقطه ضعف شماره یک استفاده از میکروسرویس است.هزینه – Microservice پرهزینه است، زیرا شما باید فضای سرور متفاوتی را برای کارهای مختلف تجاری حفظ کنید.آمادگی سازمانی - معماری میکروسرویس را می توان به عنوان مجموعه ای از فناوری های مختلف در نظر گرفت، زیرا فناوری روز به روز در حال پیشرفت است. از این رو، ایجاد یک شرکت برنامه کاربردی میکروسرویس برای مقایسه با مدل توسعه نرم افزار معمولی بسیار دشوار است.