روش شکستن یک سیستم به چندین میکروسرویس

چطور می توان یک پلتفرم آماده به منظور اجرا در بستر وب را به چندین میکروسرویس شکست ؟

منظور شما شکستن monolith به میکروسرویس هستش؟

2 پسندیده

بله دقیقا

شکستن مونولیت ها و در واقع مهاجرت از یکپارچگی به سمت میکروها

این موضوعی هست که برای تز ارشد انتخاب کردم و دنبال یه نمونه عملی برای اندازه گیری می گردم تا بهتر درکش کنم. مقالات زیادی رو هم خوندم و اخیرا به کتاب Sam Newman رسیدم کتاب Building Microservices

کتاب بسیار خوبیه من از تجربه خودم میگم
سخت ترین قسمت این کار ریفاکتور کردن کد monolithic به قسمت های منطقی جدا با محدوده مشخصه داشتن تست اینجا ضروری هستش
در مرحله اول باید به زبان کتاب domain driven design محدوده یا bounded context ها رو مشخص کرد و به هرکدام یک مسئولیت مشخص داد
برای مثال اگر ما یک برنامه فروش کالا داریم قسمت کاربر ها با قسمت کالا ها و فروش جداست قسمت کمک به مشتری یک محدوده دیگه هستش
هر کدام از این محدوده ها میتونن یک میکروسرویس باشن با دیتابیس جدا
وقتی این محدوده ها مشخص شد و کد اینا بصورت کامل از هم جداشد
میتونید به ساختن میکروسرویس شروع کنید
این پروسه باید به طور حساب شده و با یک میکروسرویس هر دفعه انجام بشه وقتی میکروسرویس درست شد کلاینت شو با app اصلی ترکیب می‌کنیم ولی کد قبلی و پاک نمیکنیم برای مدتی سیستم قبلی و میکروسرویس کنار هم کار می‌کنند و وقتی مطمئن شدیم سیستم به تمام عملکرد قبلی وفا داره کد قبلی میکروسرویس پاک میکنیم

3 پسندیده

نکته ای که باید به اون دقت کنید اینکه میکروسرویس ها احتمال خطا زیاد دارند و شبکه microservice ها پیچیده هستش تا زمانی که میتونید در دنیای monolith بمونید

5 پسندیده

خیلی ممنون از توضیحات تکمیلیت سام عزیز

شنیده بودم که ابتدا باید DDD رو مطالعه داشت و درکش کرد

دقیقا

مارتین فولر هم که یه جورایی پدر میکروسرویس هاست گفته سمتش نرید مگه اینکه مجبور شین

نمیدونم واسه موضوع تز میتونم باهاش پیش برم یا نه ! …

1 پسندیده

DDD حتما بخوانید به درد طراحی برنامه های پیچیده میخوره ساختارش طرز فکرتان و عوض میکنه

1 پسندیده

سام عزیز بنظرت DDD واسه ULS ها یا SOS هم مفیده ؟

برای تز که سهله تا فوق دکترا هم میتونی بری چون در واقع موضوع distributed system هستش

2 پسندیده

نمیدونم ULS و SOS مخفف چی هستند

دقیقا درست میگی، با یکی از دوستان در کارنگی ملون صحبت میکردم تاکید بر آینده دار بودن میکرو ها داشت ولی از طرفی گفتن “موضوع بسیار فنی و تجربی است”

1 پسندیده

Ultra large scale System و System of Systems

درسهای ما در ارشد معماری سازمانی هستند این دو تا

2 پسندیده

بله بدرد این سیستم ها میخوره

2 پسندیده

سام عزیز، شما که در آمریکا هستی فکر میکنم تب مهاجرت به میکروها در اون سمت زیاد باشه

نت فلیکس هم که پیشتازه به گمانم

2 پسندیده

بله اینجا همه شرکت ها با scale بالا از service oriented architecture استفاده میکنند

1 پسندیده

مساله ای هم هست اینکه بحث جدیدی با عنوان Capability مطرح شده که یک قدم پیش تر از SOA به قابلیت در سازمانها اشاره داره

چیزی که در Digital Transformation شاهدش خواهیم بود

1 پسندیده

سلام
منم برای پایان نامه ارشد موضوع مهاجرت از monolith به میکروسرویس انتخاب کردم اما مشکل اصلیم رسیدن به نوآوریه که اساتید گیر دادن. میخواستم ببینم شما چی کار کردید که استاد موضوع رو قبول کرده؟ و پیشنهادی دارین

در تئوری هرچیزی ممکنه سخت یا ساده بنظر بیاد، اما در دنیای واقعی همه چیز متفاوته. در بیشتر مواقع نمیتونیم یک سیستم یکپارچه رو یک دفعه تبدیل به مایکروسرویسز کنیم, بخصوص اگر با یک هیولای پیچیده سر و کار داشته باشیم. اگر مایکروسرویسز تصمیم کبرا باشه, احتمالا راهی که در اکثر مواقع به سمتش میریم اینه که اول بررسی کنیم و ببینیم که کدوم قسمت ها از سیستم قابلیت این رو دارند که راحت تر از بدنه منولیتیک جدا بشند. همچنین بعد از تبدیل شدن به یک سرویس جدا، چطور قراره با بخش های دیگه ارتباط پیدا کنند و data structure به چه تغییراتی نیاز داره. احتمالا بعد یواش یواش هرچی از پیچیدگی legacy کم شد، وظایف بیشتری به سرویس های کوچک تبدیل میشن.

3 پسندیده

سلام.
بنده حوزه کاری و پژوهشی ام رو به سمت دیتا ساینس پیش بردم خاصه SNA ولی یک مقاله در حوزه میکروسرویس نوشتم و تو یک کنفرانس ارایه کردم که می تونید مطالعه کنید ولی نمیدونم چقدر به دردتون بخوره.
لینک مقاله در ریسرچ گیت

1 پسندیده