سعید صفایی | SAEED SAFAEE
کدام معماری انتخاب درستی برای تجارت شماست Monolithic یا Microservice
کدام معماری انتخاب درستی برای تجارت شماست Monolithic یا Microservice
انتخاب میکروسرویس(Microservice)
در واقع، رویکرد خدمات خرد مزایای ملموسی از جمله افزایش مقیاس پذیری، انعطاف پذیری، چابکی و سایر مزایای قابل توجه را دارد.
در همین حال، بسیاری از شرکت ها پیروی از این مثال را به عنوان کارآمدترین راه برای رشد تجارت می دانند.
انتخاب مدل یکپارچه(Monolith)
برعکس، رویکرد یکپارچه یک مدل پیش فرض برای ایجاد یک برنامه نرم افزاری است.
روند آن رو به کاهش است زیرا ساخت یک برنامه یکپارچه تعدادی از چالش های مربوط به مدیریت کد، انتخاب یک فناوری جدید، مقیاس گذاری، استقرار، اجرای تغییرات جدید و سایر مشکلات را به وجود می آورد.
معماری میکروسرویس در یک نگاه
مزایای میکروسرویس
مرزهای قوی ماژول: میکروسرویس ها ساختار مدولار را تقویت می کنند، که به ویژه برای تیم های بزرگتر مهم است.
استقرار مستقل: استقرار سرویسهای ساده آسانتر است، و از آنجایی که مستقل هستند، احتمال کمتری دارد که باعث خرابی سیستم شوند.
تنوع فناوری: با میکروسرویس ها می توانید چندین زبان، چارچوب های توسعه و فناوری های ذخیره سازی داده را با هم ترکیب کنید.
برنامه نویسان تنها بر سرویس مشخصی متمرکز هستند. بنابراین کد کوچکتر خواهد بود و توسعه دهنده کد را بسیار خوب خواهد شناخت و توسعه و نگهداری آن راحتر است
هر سرویس میتواند پایگاه داده مستقل خود را داشته باشد(هرپروژه نیازمندی خود را دارد)
معایب میکروسرویس
هر بخشی از سیستم یک سرویس جداگانه است پس در یک پروژهی بزرگ سرویسهای بسیار زیادی وجود دارد. مانیتور کردن این سرویسها باعث افزایش سربار میشود.
سرویسها با یکدیگر به صورت مداوم در ارتباط و در نتیجه ردیابی مسیر و عیب یابی را دشوار میکند
پیچیدگی عملیاتی: شما به یک تیم عملیاتی بالغ برای مدیریت بسیاری از خدمات نیاز دارید که مرتباً مجدداً مستقر می شوند.
SOA(Service-Oriented Architecture)معماری سرویسگرا
.ساخت سرویس های توزیعشده که کارکردهای نرمافزاری را در قالب سرویس ارائه میکند
معماری سرویسگرا مجموعهای انعطافپذیر از اصول طراحی است که در مراحل توسعهٔ سامانهها و یکپارچگی در سیستم های ابری استفاده میشود.
معماری و طراحی نرم افزار چه تفاوت هایی دارد
معماری نرم افزار طرح کلی و اسکلت نرم افزار، ویژگی های نرم افزار، از قبیل انعطاف پذیری، مقایس پذیری، قابلیت استفاده ی مجدد و امنیت و در نظر گرفتن تکنولوژهای مختلف پیاده سازی و معایب و مزایای آنها و نیز زیرساختهای مورد نیاز همچنین محدودیت ها و امکانات موجود را مورد بررسی و پیاده سازی میکنیم
در معماری نرم افزار باید از الگوهای معماری استفاده کرد که از قبیل میکروسرویس یا مونولیتیک و یا معماری سرورلس
طراحی نرم افزار
طراحی سطح کد و ارتباط های بین سرویس ها و نرم افزار را برعهده دارد
(SOLID)باید به عنوان توسعه دهنده باید قاعده سالید را بدانید
باید طراحی لایه ای را مسلط باشید
OOP (شی گرایی) تسلط کافی داشتن بر
DI(Dependenci Injection)اصل جدایی اینترفیس
و سایر الگوهای طراحی که به مهم ترین آنها اشاره کردم
دیدگاه های پست
طراحی معماری همیشه ثبات است؟