آموزش رایگان مقدماتی معماری میکروسرویسی آن، یکی دیگر از آموزش های متنی رایگان از گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این آموزش نیز یک دوره آموزشی دیگر، در حوزه ی فارسی سازی آموزش های انگلیسی می باشد.
معماری مایکروسرویس ها (Microservices Architecture) چیست؟
معماری مایکروسرویس ها که به آن Microservices Architecture نیز می گوییم یک سبک معماری و یا architectural style می باشد که طبق آن یک برنامه در قالب مجموعهای از سرویس ها ایجاد می شود. این سرویس ها باید دارای شرایط زیر باشند:
- قابلیت نگهداری و تست پذیری بسیار بالا
- loosely coupled بودن
- به طور مستقل از یکدیگر قابل develop و deploy کردن باشند
معماری مایکروسرویس ها باعث می شود که توسعه و تحویل نرم افزارهای پیچیده و بسیار بزرگ به روشی سریع و قابل اطمینان انجام پذیرد. در پیاده سازی معماری مایکروسرویس ها، سرویس ها می توانند هم با پروتکل های از قبیل HTTP/REST و هم پروتکل های asynchronous از قبیل AMQP با یکدیگر ارتباط برقرار کنند. علاوه بر این، سرویس ها می توانند به صورت مستقل از یکدیگر develop و deploy بشوند. هر سرویس دیتابیس انحصاری خودش را دارد و این موضوع باعث میشود که سرویس ها از یکدیگر decoupled بشوند. علاوه بر این، data consistency بین سرویس ها با استفاده از الگوی saga پیاده سازی می شود.
مقایسه کردن اپلیکیشن های منولوفیک و معماری مایکروسرویس ها
اگر تمامی عملیات یک پروژه در قالب یک Codebase تک پیاده سازی شود به آن نرمافزار و معماری آن اصطلاحاً منولوفیک میگوییم. تمامی افرادی که به برنامه نویسی مشغول هستند در روند کار خود برنامه هایی با معماری منولوفیک ایجاد کردهاند. در این نوع از برنامه ها کل کد شما در یک پروژه تک قرار خواهند گرفت. البته میتوان در این نوع از پروژهها از لایه بندی های مختلف استفاده کرد. در این رابطه نیز توصیه می کنیم از آموزش برنامه نویسی چند لایه N-Tier در سی شارپ سری اول و آموزش برنامه نویسی چند لایه (N-Tier) در سی شارپ سری دوم دیدن کنید. اپلیکیشنهای منولوفیک مزیت های خاص خود را دارند اما معایب این نوع از اپلیکیشن ها بیشتر از مزیت آنها می باشد. برای مثال رشد بیش از حد Codebase در مدت زمانی کوتاه و در نتیجه کاهش سطح نگهداری آن از مهمترین معایب این روش به حساب میآیند. نیاز به Deploy کردن دوباره یک اپلیکیشن پس از یک تغییر کوچک نیز جزء معایب این نوع از اپلیکیشن ها هستند. زمان مورد نیاز به منظور توسعه این اپلیکیشن ها در ابتدای کار زیاد است و این موضوع با افزایش روند کار کردن پروژه بیشتر نیز میشود علی رغم معایبی که برای این معماری در نظر گرفته میشود موضوعاتی نیز وجود دارند که این معماری را از دیگر معماری های مشابه متمایز می کند برای مثال استفاده کردن از مفاهیم ساده در مقایسه با معماری مایکروسرویسی جزء مزایای مربوط به معماری منولوفیک به حساب می آیند کاهش پیچیدگی در حوزه هایی از قبیل امنیت نیز جزء مزیت های مربوط به معماری منولوفیک به حساب می آیند معماری مایکروسرویسی نیز در ساخت اپلیکیشن های پیچیده بسیار پرکاربرد است در این نوع از معماری ها برنامه به سرویس های کوچک و متعدد شکسته میشود که به طور مستقیم بر اساس پروتکل هایی از قبیل http با یکدیگر ارتباط برقرار می کنند. در این نوع از برنامه ها ارتباط بین مایکروسرویس ها می تواند موضوع بسیار مهمی به حساب بیاید هر مایکروسرویس دیتابیس منحصر به فرد خود را دارد و به صورت مشترک از دیتابیس خاصی استفاده نمیکند به همین دلیل ممکن است گاهی داده های تکراری در دیتابیس ها وجود داشته باشند که برای حل و فصل کردن این موضوع می بایست تمهیداتی اندیشیده شود. مباحثی از قبیل Luscapeling و یا حتی Sepration of Cencerns در این نوع از معماری ها به صورت بسیار جذابی پیادهسازی میشود بعضی از اصول مربوط به solid از قبیل Single responciblity principle در معماری مایکروسرویسی پیادهسازی میشود.
مخاطبین این دوره آموزشی
این دوره آموزشی برای تمامی متخصصین نرمافزار، معمارها و طراحان ارشد سیستمهای نرمافزاری تنظیم شده است. مدیران سیستم های نرم افزاری و تیمهای معماری نرم افزار نیز می توانند از مطالب مطرح شده در این آموزش، نهایت استفاده را ببرند.
پیش نیازها
برای این دوره آموزشی، بر روی وب سایت پرووید، هیچ پیش نیاز خاصی در نظر نگرفتیم. به عبارت دیگر؛ برای درک هرچه بهتر مطالب این مجموعه آموزشی نیازی ندارید که در حوزه نرم افزار تجربه قبلی داشته باشید. طبیعتاً برای بهتر استفاده کردن از مطالب مطرح شده، می بایست که دید توسعه نرم افزار و برنامه نویسی مناسبی را داشته باشید و بدانید که نرم افزارهای باکیفیت چگونه طراحی می شوند. در پایان این قسمت از شما دعوت میکنیم که از آموزش معماری مدرن نرم افزارها CQRS و Domain Model و Event Sourcing از وب سایت پرووید نیز دیدن کنید.